Commit faa09ff6 authored by Rafaël Carré's avatar Rafaël Carré

fix zsh completion

add needed header to fix build
process all config items
process all items of config lists (off by one)
fix display of lists: some option have a space in their name
parent a103aafe
...@@ -39,6 +39,7 @@ typedef std::pair<int, std::string> mcpair; ...@@ -39,6 +39,7 @@ typedef std::pair<int, std::string> mcpair;
#include <vlc_common.h> #include <vlc_common.h>
#include <vlc/vlc.h> #include <vlc/vlc.h>
#include <vlc_modules.h>
/* evil hack */ /* evil hack */
#undef __PLUGIN__ #undef __PLUGIN__
...@@ -145,7 +146,7 @@ void ParseModules( mumap &mods, mcmap &mods2 ) ...@@ -145,7 +146,7 @@ void ParseModules( mumap &mods, mcmap &mods2 )
if( p_item->i_type & CONFIG_ITEM ) if( p_item->i_type & CONFIG_ITEM )
ParseOption( p_item, mods, mods2 ); 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 ); module_list_free( p_list );
...@@ -268,7 +269,7 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 ) ...@@ -268,7 +269,7 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 )
int i = p_item->i_list -1; int i = p_item->i_list -1;
char *psz_list; char *psz_list;
if( p_item->ppsz_list_text ) 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] ); p_item->ppsz_list_text[i] );
else else
psz_list = strdup(p_item->ppsz_list[i]); psz_list = strdup(p_item->ppsz_list[i]);
...@@ -276,10 +277,10 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 ) ...@@ -276,10 +277,10 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 )
while( i>1 ) while( i>1 )
{ {
if( p_item->ppsz_list_text ) 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 ); p_item->ppsz_list_text[i-1], psz_list );
else 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 ); psz_list );
free( psz_list ); free( psz_list );
...@@ -308,18 +309,18 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 ) ...@@ -308,18 +309,18 @@ void ParseOption( module_config_t *p_item, mumap &mods, mcmap &mods2 )
int i = p_item->i_list -1; int i = p_item->i_list -1;
char *psz_list; char *psz_list;
if( p_item->ppsz_list_text ) 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] ); p_item->ppsz_list_text[i] );
else else
psz_list = strdup(p_item->ppsz_list[i]); psz_list = strdup(p_item->ppsz_list[i]);
char *psz_list2; char *psz_list2;
while( i>1 ) while( i > 0 )
{ {
if( p_item->ppsz_list_text ) 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 ); p_item->ppsz_list_text[i-1], psz_list );
else 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 ); psz_list );
free( psz_list ); free( psz_list );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment