]> git.sesse.net Git - vlc/blobdiff - modules/gui/ncurses.c
Updated qt4 to use intf-event.
[vlc] / modules / gui / ncurses.c
index c09377ed06b3f864e63bed8bb963da3f77c0dcdd..b850e2832e25f3610e806394b4b579373def3f7e 100644 (file)
@@ -121,16 +121,16 @@ static void start_color_and_pairs ( intf_thread_t * );
     "This option allows you to specify the directory the ncurses filebrowser " \
     "will show you initially.")
 
-vlc_module_begin();
-    set_shortname( "Ncurses" );
-    set_description( N_("Ncurses interface") );
-    set_capability( "interface", 10 );
-    set_category( CAT_INTERFACE );
-    set_subcategory( SUBCAT_INTERFACE_MAIN );
-    set_callbacks( Open, Close );
-    add_shortcut( "curses" );
-    add_directory( "browse-dir", NULL, NULL, BROWSE_TEXT, BROWSE_LONGTEXT, false );
-vlc_module_end();
+vlc_module_begin ()
+    set_shortname( "Ncurses" )
+    set_description( N_("Ncurses interface") )
+    set_capability( "interface", 10 )
+    set_category( CAT_INTERFACE )
+    set_subcategory( SUBCAT_INTERFACE_MAIN )
+    set_callbacks( Open, Close )
+    add_shortcut( "curses" )
+    add_directory( "browse-dir", NULL, NULL, BROWSE_TEXT, BROWSE_LONGTEXT, false )
+vlc_module_end ()
 
 /*****************************************************************************
  * intf_sys_t: description and status of ncurses interface
@@ -305,28 +305,23 @@ static int Open( vlc_object_t *p_this )
     p_sys->b_need_update = false;
 
     /* Initialize search chain */
-    p_sys->psz_search_chain = (char *)malloc( SEARCH_CHAIN_SIZE + 1 );
+    p_sys->psz_search_chain = malloc( SEARCH_CHAIN_SIZE + 1 );
     p_sys->psz_old_search = NULL;
     p_sys->i_before_search = 0;
 
     /* Initialize open chain */
-    p_sys->psz_open_chain = (char *)malloc( OPEN_CHAIN_SIZE + 1 );
+    p_sys->psz_open_chain = malloc( OPEN_CHAIN_SIZE + 1 );
 
     /* Initialize browser options */
-    var_Create( p_intf, "browse-dir", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
-    var_Get( p_intf, "browse-dir", &val);
-
-    if( val.psz_string && *val.psz_string )
-    {
-        p_sys->psz_current_dir = strdup( val.psz_string );
-    }
+    char* psz_tmp = var_CreateGetString( p_intf, "browse-dir" );
+    if( psz_tmp && *psz_tmp )
+        p_sys->psz_current_dir = psz_tmp;
     else
     {
         p_sys->psz_current_dir = strdup( config_GetHomeDir() );
+        free( psz_tmp );
     }
 
-    free( val.psz_string );
-
     p_sys->i_dir_entries = 0;
     p_sys->pp_dir_entries = NULL;
     p_sys->b_show_hidden_files = false;
@@ -778,12 +773,9 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
             case ' ':
                 if( p_sys->pp_dir_entries[p_sys->i_box_bidx]->b_file || i_key == ' ' )
                 {
-                    int i_size_entry = strlen( "directory://" ) +
-                                       strlen( p_sys->psz_current_dir ) +
-                                       strlen( p_sys->pp_dir_entries[p_sys->i_box_bidx]->psz_path ) + 2;
-                    char *psz_uri = (char *)malloc( sizeof(char)*i_size_entry);
-
-                    sprintf( psz_uri, "directory://%s/%s", p_sys->psz_current_dir, p_sys->pp_dir_entries[p_sys->i_box_bidx]->psz_path );
+                    char* psz_uri;
+                    if( asprintf( &psz_uri, "directory://%s/%s", p_sys->psz_current_dir, p_sys->pp_dir_entries[p_sys->i_box_bidx]->psz_path ) == -1 )
+                        psz_uri = NULL;
 
                     playlist_item_t *p_parent = p_sys->p_node;
                     if( !p_parent )
@@ -805,15 +797,9 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
                 }
                 else
                 {
-                    int i_size_entry = strlen( p_sys->psz_current_dir ) +
-                                       strlen( p_sys->pp_dir_entries[p_sys->i_box_bidx]->psz_path ) + 2;
-                    char *psz_uri = (char *)malloc( sizeof(char)*i_size_entry);
-
-                    sprintf( psz_uri, "%s/%s", p_sys->psz_current_dir, p_sys->pp_dir_entries[p_sys->i_box_bidx]->psz_path );
-
-                    p_sys->psz_current_dir = strdup( psz_uri );
-                    ReadDir( p_intf );
-                    free( psz_uri );
+                    if( asprintf( &(p_sys->psz_current_dir), "%s/%s", p_sys->psz_current_dir,
+                                  p_sys->pp_dir_entries[p_sys->i_box_bidx]->psz_path ) != -1 )
+                        ReadDir( p_intf );
                 }
                 break;
             default: