diff options
Diffstat (limited to 'src/cmdline.cpp')
| -rw-r--r-- | src/cmdline.cpp | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/src/cmdline.cpp b/src/cmdline.cpp index 668638c..f6d7831 100644 --- a/src/cmdline.cpp +++ b/src/cmdline.cpp @@ -206,8 +206,18 @@ process_edit_cmd(gchar key)  	case '\t':  		if (States::is_file()) {  			gchar complete = escape_char == '{' ? ' ' : escape_char; -			gchar *new_chars = filename_complete(strings[0], -							     complete); +			gchar *new_chars = filename_complete(strings[0], complete); + +			*insert = '\0'; +			if (new_chars) +				g_stpcpy(insert, new_chars); +			g_free(new_chars); +		} else if (States::current == &States::executecommand) { +			/* +			 * In the EC command, <TAB> completes files just like ^T +			 */ +			const gchar *filename = last_occurrence(strings[0]); +			gchar *new_chars = filename_complete(filename);  			*insert = '\0';  			if (new_chars) @@ -225,6 +235,7 @@ process_edit_cmd(gchar key)  				g_stpcpy(insert, new_chars);  			g_free(new_chars);  		} +  		break;  	case '\x1B':  | 
