aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-02 21:20:25 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-09 20:29:53 +0100
commit3c1125cb80fff83daeb8e385362c74b82cb41e20 (patch)
tree1148d52deba61fc4904875183ddac4565357c4c4 /src
parent7746480307e003c5b94cff0af12952f1ab1bfe98 (diff)
downloadsciteco-3c1125cb80fff83daeb8e385362c74b82cb41e20.tar.gz
TAB-completion for EC command
behaves just like ^T in string arguments. later we might add special Bash-completion support
Diffstat (limited to 'src')
-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':