]> git.sesse.net Git - vlc/blobdiff - extras/analyser/zsh.cpp
Merge branch 'master' into lpcm_encoder
[vlc] / extras / analyser / zsh.cpp
index 249f812f44631446aeb692fa4ee5f872b06e0013..609568a882adcb4f7a9fd469c8b57adb20c0d42f 100644 (file)
@@ -39,6 +39,7 @@ typedef std::pair<int, std::string> mcpair;
 
 #include <vlc_common.h>
 #include <vlc/vlc.h>
+#include <vlc_modules.h>
 
 /* evil hack */
 #undef __PLUGIN__
@@ -56,23 +57,18 @@ int main( int i_argc, const char **ppsz_argv )
     mumap mods;
     mcmap mods2;
     /* Create a libvlc structure */
-
-    libvlc_exception_t ex;
-    libvlc_exception_init(&ex);
-
     const char *argv[i_argc + 1];
     argv[0] = "vlc";
     for( int i = 0; i < i_argc; i++ )
         argv[i+1] = ppsz_argv[i];
-    libvlc_instance_t *p_libvlc_instance = libvlc_new(i_argc+1, argv, &ex);
+    libvlc_instance_t *p_libvlc_instance = libvlc_new(i_argc+1, argv);
 
-    if( !p_libvlc_instance || libvlc_exception_raised(&ex) )
+    if( !p_libvlc_instance )
     {
-        libvlc_exception_clear(&ex);
         return 1;
     }
 
-    printf("#compdef vlc\n\n"
+    printf("#compdef vlc cvlc rvlc svlc mvlc qvlc nvlc\n\n"
 
            "#This file is autogenerated by zsh.cpp\n"
            "typeset -A opt_args\n"
@@ -91,7 +87,6 @@ int main( int i_argc, const char **ppsz_argv )
     printf( "  \"(-H)--longhelp[print detailed help]\"\\\n" );
     printf( "  \"(--list)-l[print a list of available modules]\"\\\n" );
     printf( "  \"(-l)--list[print a list of available modules]\"\\\n" );
-    printf( "  \"--save-config[save the current command line options in the config file]\"\\\n" );
     printf( "  \"--reset-config[reset the current config to the default values]\"\\\n" );
     printf( "  \"--config[use alternate config file]\"\\\n" );
     printf( "  \"--reset-plugins-cache[resets the current plugins cache]\"\\\n" );
@@ -151,7 +146,7 @@ void ParseModules( mumap &mods, mcmap &mods2 )
             if( p_item->i_type & CONFIG_ITEM )
                 ParseOption( p_item, mods, mods2 );
         }
-        while( i_items++ < p_module->i_config_items && p_item++ );
+        while( ++i_items < p_module->confsize && p_item++ );
 
     }
     module_list_free( p_list );
@@ -274,7 +269,7 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 )
             int i = p_item->i_list -1;
             char *psz_list;
             if( p_item->ppsz_list_text )
-                asprintf( &psz_list, "%s\\:%s", p_item->ppsz_list[i],
+                asprintf( &psz_list, "%s\\:\\\"%s\\\"", p_item->ppsz_list[i],
                           p_item->ppsz_list_text[i] );
             else
                 psz_list = strdup(p_item->ppsz_list[i]);
@@ -282,10 +277,10 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 )
             while( i>1 )
             {
                 if( p_item->ppsz_list_text )
-                    asprintf( &psz_list2, "%s\\:%s %s", p_item->ppsz_list[i-1],
+                    asprintf( &psz_list2, "%s\\:\\\"%s\\\" %s", p_item->ppsz_list[i-1],
                               p_item->ppsz_list_text[i-1], psz_list );
                 else
-                    asprintf( &psz_list2, "%s %s", p_item->ppsz_list[i-1],
+                    asprintf( &psz_list2, "\\\"%s\\\" %s", p_item->ppsz_list[i-1],
                               psz_list );
 
                 free( psz_list );
@@ -314,18 +309,18 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 )
             int i = p_item->i_list -1;
             char *psz_list;
             if( p_item->ppsz_list_text )
-                asprintf( &psz_list, "%d\\:%s", p_item->pi_list[i],
+                asprintf( &psz_list, "%d\\:\\\"%s\\\"", p_item->pi_list[i],
                           p_item->ppsz_list_text[i] );
             else
                 psz_list = strdup(p_item->ppsz_list[i]);
             char *psz_list2;
-            while( i>1 )
+            while( i > 0 )
             {
                 if( p_item->ppsz_list_text )
-                    asprintf( &psz_list2, "%d\\:%s %s", p_item->pi_list[i-1],
+                    asprintf( &psz_list2, "%d\\:\\\"%s\\\" %s", p_item->pi_list[i-1],
                               p_item->ppsz_list_text[i-1], psz_list );
                 else
-                    asprintf( &psz_list2, "%s %s", p_item->ppsz_list[i-1],
+                    asprintf( &psz_list2, "\\\"%s\\\" %s", p_item->ppsz_list[i-1],
                               psz_list );
 
                 free( psz_list );
@@ -441,7 +436,8 @@ void PrintOption( char *psz_option, char i_short, char *psz_exclusive,
             printf( ":%s:%s\"\\\n", psz_longtext, psz_args );
         else
             printf( "\"\\\n" );
-        printf( "  \"(--%s%s)-%c[%s]", psz_option, psz_exclusive,
+
+        printf( "  \"(--%s%s)-%c[%s]", psz_option, psz_exclusive ? psz_exclusive : "",
                 i_short, psz_text );
         if( psz_args )
             printf( ":%s:%s\"\\\n", psz_longtext, psz_args );