diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2014-11-02 21:20:25 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2014-11-09 20:29:53 +0100 |
commit | 3c1125cb80fff83daeb8e385362c74b82cb41e20 (patch) | |
tree | 1148d52deba61fc4904875183ddac4565357c4c4 /src | |
parent | 7746480307e003c5b94cff0af12952f1ab1bfe98 (diff) | |
download | sciteco-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.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': |