Changeset aa41414dc52cedb89876e475ef6e9bdadef7a7ed

Show
Ignore:
Timestamp:
26/03/04 10:35:10 (5 years ago)
Author:
Gildas Bazin <gbazin@videolan.org>
git-committer:
Gildas Bazin <gbazin@videolan.org> 1080293710 +0000
git-parent:

[0880ea2e685b7d3140c932925b9878121ab7c490]

git-author:
Gildas Bazin <gbazin@videolan.org> 1080293710 +0000
Message:

* src/input/control.c: fixed INPUT_DEL_BOOKMARK.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/input/control.c

    r36b86f5 raa41414  
    8686 
    8787        case INPUT_DEL_BOOKMARK: 
    88             p_bkmk = (seekpoint_t *)va_arg( args, seekpoint_t * ); 
    89             if( p_input->i_bookmarks ) 
     88            i_bkmk = (int)va_arg( args, int ); 
     89            if( i_bkmk < p_input->i_bookmarks ) 
    9090            { 
    9191                int i; 
     92                p_bkmk = p_input->pp_bookmarks[i_bkmk]; 
     93                TAB_REMOVE( p_input->i_bookmarks, p_input->pp_bookmarks, 
     94                            p_bkmk ); 
     95                vlc_seekpoint_Delete( p_bkmk ); 
     96 
     97                /* Reflect the changes on the object var */ 
     98                var_Change( p_input, "bookmark", VLC_VAR_CLEARCHOICES, 0, 0 ); 
    9299                for( i = 0; i < p_input->i_bookmarks; i++ ) 
    93100                { 
    94                     if( ( p_bkmk->i_byte_offset && 
    95                           p_input->pp_bookmarks[i]->i_byte_offset == 
    96                             p_bkmk->i_byte_offset ) || 
    97                         ( p_bkmk->i_time_offset && 
    98                           p_input->pp_bookmarks[i]->i_time_offset == 
    99                             p_bkmk->i_time_offset ) || 
    100                         ( !p_bkmk->i_byte_offset && !p_bkmk->i_time_offset && 
    101                           p_input->pp_bookmarks[i]->i_byte_offset == 
    102                             p_bkmk->i_byte_offset ) ) 
    103                     { 
    104                         p_bkmk = p_input->pp_bookmarks[i]; 
    105                         break; 
    106                     } 
     101                    val.i_int = i; 
     102                    text.psz_string = p_input->pp_bookmarks[i]->psz_name; 
     103                    var_Change( p_input, "bookmark", VLC_VAR_ADDCHOICE, 
     104                                &val, &text ); 
    107105                } 
    108                 if( i < p_input->i_bookmarks ) 
    109                 { 
    110                     TAB_REMOVE( p_input->i_bookmarks, p_input->pp_bookmarks, 
    111                                 p_bkmk ); 
    112                     vlc_seekpoint_Delete( p_bkmk ); 
    113  
    114                     /* Reflect the changes on the object var */ 
    115                     var_Change( p_input, "bookmark", VLC_VAR_CLEARCHOICES, 
    116                                 0, 0 ); 
    117                     for( i = 0; i < p_input->i_bookmarks; i++ ) 
    118                     { 
    119                         val.i_int = i; 
    120                         text.psz_string = p_input->pp_bookmarks[i]->psz_name; 
    121                         var_Change( p_input, "bookmark", VLC_VAR_ADDCHOICE, 
    122                                     &val, &text ); 
    123                     } 
    124                 } 
     106                i_ret = VLC_SUCCESS; 
    125107            } 
    126             i_ret = VLC_SUCCESS
     108            else i_ret = VLC_EGENERIC
    127109            break; 
    128110 
     
    164146                    vlc_seekpoint_Delete( p_bkmk ); 
    165147                } 
     148                var_Change( p_input, "bookmark", VLC_VAR_CLEARCHOICES, 0, 0 ); 
    166149            } 
    167150            i_ret = VLC_SUCCESS;