From fa5a496629325dee166a0601879797bb0805cded Mon Sep 17 00:00:00 2001 From: Qball Cow Date: Sat, 1 Feb 2014 14:39:49 +0100 Subject: [PATCH] Fix a few minor bugs --- Makefile | 2 +- source/mark-dialog.c | 9 ++++----- source/run-dialog.c | 7 ++++--- source/simpleswitcher.c | 1 - source/ssh-dialog.c | 7 ++++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 6d2cc541..8ae4d095 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ QUIET?=@ -CFLAGS?=-Wall -Wextra -O3 +CFLAGS?=-Wall -Wextra -O3 VERSION?=0.14.1 PROGRAM=simpleswitcher diff --git a/source/mark-dialog.c b/source/mark-dialog.c index 6495fa64..0e91abb5 100644 --- a/source/mark-dialog.c +++ b/source/mark-dialog.c @@ -187,7 +187,7 @@ static char ** get_mark ( ) if ( t == sizeof( head ) ) { char *result = malloc( sizeof( char )*( head.size+1 ) ); ssize_t index = 0; - + t = 0; // Grab results. while ( index < ( ssize_t )head.size ) { t= recv( s, &result[index], ( head.size-t ), 0 ); @@ -273,7 +273,6 @@ SwitcherMode mark_switcher_dialog ( char **input ) int shift=0; int selected_line = 0; int mretv = menu( cmd_list, input, "mark:", NULL, &shift,token_match,NULL, &selected_line ); - if ( mretv == MENU_NEXT ) { retv = NEXT_DIALOG; } else if ( mretv == MENU_OK && cmd_list[selected_line] != NULL ) { @@ -281,12 +280,12 @@ SwitcherMode mark_switcher_dialog ( char **input ) } else if ( mretv == MENU_CUSTOM_INPUT && *input != NULL && *input[0] != '\0' ) { exec_mark( *input ); } - - for ( int i=0; cmd_list[i] != NULL; i++ ) { + for ( int i=0; cmd_list != NULL && cmd_list[i] != NULL; i++ ) { free( cmd_list[i] ); } - free( cmd_list ); + if (cmd_list) free( cmd_list ); + return retv; } diff --git a/source/run-dialog.c b/source/run-dialog.c index 5f9eeacb..41b37b6b 100644 --- a/source/run-dialog.c +++ b/source/run-dialog.c @@ -118,7 +118,7 @@ static pid_t exec_cmd( const char *cmd, int run_in_term ) fclose( fd ); } - for ( int i=0; retv[i] != NULL; i++ ) { + for ( int i=0; retv != NULL && retv[i] != NULL; i++ ) { free( retv[i] ); } @@ -179,7 +179,7 @@ static void delete_entry( const char *cmd ) fclose( fd ); } - for ( int i=0; retv[i] != NULL; i++ ) { + for ( int i=0; retv != NULL && retv[i] != NULL; i++ ) { free( retv[i] ); } @@ -318,9 +318,10 @@ SwitcherMode run_switcher_dialog ( char **input ) exec_cmd( *input, shift ); } else if ( mretv == MENU_ENTRY_DELETE && cmd_list[selected_line] ) { delete_entry ( cmd_list[selected_line] ); + retv = RUN_DIALOG; } - for ( int i=0; cmd_list[i] != NULL; i++ ) { + for ( int i=0; cmd_list != NULL && cmd_list[i] != NULL; i++ ) { free( cmd_list[i] ); } diff --git a/source/simpleswitcher.c b/source/simpleswitcher.c index 7929a73f..c7f8a03f 100644 --- a/source/simpleswitcher.c +++ b/source/simpleswitcher.c @@ -1095,7 +1095,6 @@ MenuReturn menu( char **lines, char **input, char *prompt, Time *time, int *shif release_keyboard(); if ( *input != NULL ) free( *input ); - *input = strdup( text->text ); diff --git a/source/ssh-dialog.c b/source/ssh-dialog.c index 32cafe6e..2cd54087 100644 --- a/source/ssh-dialog.c +++ b/source/ssh-dialog.c @@ -115,7 +115,7 @@ static pid_t exec_ssh( const char *cmd ) fclose( fd ); } - for ( int i=0; retv[i] != NULL; i++ ) { + for ( int i=0; retv != NULL && retv[i] != NULL; i++ ) { free( retv[i] ); } @@ -176,7 +176,7 @@ static void delete_ssh( const char *cmd ) fclose( fd ); } - for ( int i=0; retv[i] != NULL; i++ ) { + for ( int i=0; retv != NULL && retv[i] != NULL; i++ ) { free( retv[i] ); } @@ -307,7 +307,6 @@ SwitcherMode ssh_switcher_dialog ( char **input ) int shift=0; int selected_line = 0; int mretv = menu( cmd_list, input, "ssh", NULL, &shift,token_match, NULL , &selected_line ); - if ( mretv == MENU_NEXT ) { retv = NEXT_DIALOG; } else if ( mretv == MENU_OK && cmd_list[selected_line] != NULL ) { @@ -316,6 +315,8 @@ SwitcherMode ssh_switcher_dialog ( char **input ) exec_ssh( *input ); } else if ( mretv == MENU_ENTRY_DELETE && cmd_list[selected_line] ) { delete_ssh ( cmd_list[selected_line] ); + // Stay + retv = SSH_DIALOG; } for ( int i=0; cmd_list[i] != NULL; i++ ) {