Fix previous commit, otherwise -show <window> matching goes wrong.

This commit is contained in:
Dave Davenport 2014-07-22 18:19:00 +02:00
parent 8cecc27992
commit b1800fdf50
1 changed files with 8 additions and 5 deletions

View File

@ -123,12 +123,17 @@ SwitcherMode script_switcher_dialog ( char **input, void *data )
SwitcherMode retv = MODE_EXIT; SwitcherMode retv = MODE_EXIT;
unsigned int length = 0; unsigned int length = 0;
char **list = get_script_output ( options->script_path, &length ); char **list = get_script_output ( options->script_path, &length );
char *prompt = NULL;
if(asprintf(&(prompt), "%s:", options->name) <= 0) {
fprintf(stderr, "Failed to allocate string.\n");
abort();
}
do { do {
unsigned int new_length = 0; unsigned int new_length = 0;
char **new_list = NULL; char **new_list = NULL;
int mretv = menu ( list, length, input, options->name, NULL, NULL, int mretv = menu ( list, length, input, prompt, NULL, NULL,
token_match, NULL, &selected_line ); token_match, NULL, &selected_line );
if ( mretv == MENU_NEXT ) { if ( mretv == MENU_NEXT ) {
@ -162,6 +167,7 @@ SwitcherMode script_switcher_dialog ( char **input, void *data )
} }
} while ( list != NULL ); } while ( list != NULL );
free(prompt);
return retv; return retv;
} }
@ -185,10 +191,7 @@ ScriptOptions *script_switcher_parse_setup ( const char *str )
// TODO: This is naive and can be improved. // TODO: This is naive and can be improved.
for ( char *token = strtok_r ( parse, ":", &endp ); token != NULL; token = strtok_r ( NULL, ":", &endp ) ) { for ( char *token = strtok_r ( parse, ":", &endp ); token != NULL; token = strtok_r ( NULL, ":", &endp ) ) {
if ( index == 0 ) { if ( index == 0 ) {
if(asprintf(&(sw->name), "%s:", token) <= 0) { sw->name = strdup(token);
fprintf(stderr, "Failed to allocate string.\n");
abort();
}
} }
else if ( index == 1 ) { else if ( index == 1 ) {
sw->script_path = strdup ( token ); sw->script_path = strdup ( token );