aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cmdline.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmdline.cpp')
-rw-r--r--src/cmdline.cpp15
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':