fish-shell/src
Fabian Homborg 93d40f9143 [input] Only timeout if the last character was escape
There really is no need to

- Timeout just because the _first_ character was a control character

- Timeout because of any control character other than escape

The reason to timeout because the '\e' sequence can appear by itself (signifying
pressing the escape key) and still make
sense - e.g. vi-mode has it bound to a rather important function!

But a \c can't appear by itself, so we can just block.

This allows binding sequences like \cx\ce and inputting them at a
leisurely pace rather than the frantic escape_timeout one.

It should also improve sequences that _include_ escape somewhere else.

E.g. something like a\eb ("a, then alt+b") should now time out for the "\eb" part,
allowing users to bind a\e ("a, then escape") to something else. Why you'd want to do
that, I have no idea. But it's more consistent, and that's nice!
2018-05-29 18:40:29 +02:00
..
wcwidth9 Switch to Unicode 9 savvy wcwidth 2018-02-25 23:12:37 -08:00
autoload.cpp Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
autoload.h Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
builtin.cpp Convert list of builtins from sorted array to unordered_set 2018-04-03 15:47:21 -05:00
builtin.h Convert list of builtins from sorted array to unordered_set 2018-04-03 15:47:21 -05:00
builtin_argparse.cpp Use move semantics instead of swap in env_set 2017-08-30 00:59:45 -07:00
builtin_argparse.h implement argparse builtin 2017-07-12 22:38:24 -07:00
builtin_bg.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_bg.h split builtin bg into its own module 2017-06-16 21:01:56 -07:00
builtin_bind.cpp Add -s to builtin_bind's allowed parameter list 2017-10-03 11:20:17 +02:00
builtin_bind.h Silence bind errors in default key bindings 2017-10-03 11:20:17 +02:00
builtin_block.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_block.h split builtin block into its own module 2017-06-16 21:01:56 -07:00
builtin_builtin.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_builtin.h split builtin builtin into its own module 2017-06-16 21:01:56 -07:00
builtin_cd.cpp env_var_t to forget its name 2018-01-30 12:36:50 -08:00
builtin_cd.h split builtin cd into its own module 2017-06-16 21:01:56 -07:00
builtin_command.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_command.h split builtin command into its own module 2017-06-16 21:01:56 -07:00
builtin_commandline.cpp [commandline] Change "--selection" to "--current-selection" 2018-05-05 21:41:03 +02:00
builtin_commandline.h restyle builtin modules to match project style 2016-04-26 21:58:59 -07:00
builtin_complete.cpp Remove unused vars identified by lint 2017-08-18 16:52:39 -07:00
builtin_complete.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_contains.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_contains.h split builtin contains into its own module 2017-06-16 21:01:56 -07:00
builtin_disown.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_disown.h split builtin disown into its own module 2017-06-16 21:01:56 -07:00
builtin_echo.cpp use the UNUSED(); pattern for the prev change 2017-07-09 19:55:04 -07:00
builtin_echo.h split builtin echo into its own module 2017-06-16 21:01:56 -07:00
builtin_emit.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_emit.h split builtin emit into its own module 2017-06-16 21:01:56 -07:00
builtin_exit.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_exit.h split builtin exit into its own module 2017-06-16 21:01:56 -07:00
builtin_fg.cpp Deprecate $_ in favor of (status current-command) 2018-03-24 11:58:19 -05:00
builtin_fg.h split builtin fg into its own module 2017-06-16 21:01:56 -07:00
builtin_function.cpp function: restore '%self' functionality for --on-process-exit 2018-05-08 11:17:07 +02:00
builtin_function.h Functions to store nodes 2018-02-12 10:49:22 -08:00
builtin_functions.cpp Clean up and document functions --handlers 2018-03-10 02:27:25 -08:00
builtin_functions.h split builtin functions into its own module 2017-06-16 21:01:56 -07:00
builtin_history.cpp Tweak the error message for history delete --exact foo 2018-04-14 21:59:18 -07:00
builtin_history.h split builtin history into its own module 2017-06-16 21:01:56 -07:00
builtin_jobs.cpp Support job expansion for jobs builtin 2018-04-14 16:47:05 -05:00
builtin_jobs.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_math.cpp [math] Add tests for runtime errors 2018-03-07 18:13:26 +01:00
builtin_math.h Implement bare minimum builtin math command 2017-08-23 14:43:45 -07:00
builtin_printf.cpp fix 'printf "%o"' handling on powerpc64 2017-10-03 04:17:56 +03:00
builtin_printf.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_pwd.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_pwd.h split builtin pwd into its own module 2017-06-16 21:01:56 -07:00
builtin_random.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_random.h split builtin random into its own module 2017-06-16 21:01:56 -07:00
builtin_read.cpp Support multiple read --line variable outputs 2018-04-17 21:34:22 -05:00
builtin_read.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_realpath.cpp Change wrealpath to return a maybe_t 2017-10-11 00:08:26 -07:00
builtin_realpath.h split builtin realpath into its own module 2017-06-16 21:01:56 -07:00
builtin_return.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_return.h split builtin return into its own module 2017-06-16 21:01:56 -07:00
builtin_set.cpp Don't corrupt memory when setting a slice with wrong # of args 2018-04-10 21:09:31 +08:00
builtin_set.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_set_color.cpp [cmake] Clean up curses vs ncurses includes 2018-02-04 03:11:22 -06:00
builtin_set_color.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_source.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_source.h split builtin source into its own module 2017-06-16 21:01:56 -07:00
builtin_status.cpp Add a feature_test() function 2018-05-06 11:20:15 -07:00
builtin_status.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_string.cpp [string] Be explicit about nextstr() type 2018-05-28 12:10:40 +02:00
builtin_string.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_test.cpp Mark overriding virtual functions as override instead of virtual 2018-02-18 19:12:45 -08:00
builtin_test.h restyle builtin modules to match project style 2016-04-26 21:58:59 -07:00
builtin_ulimit.cpp standardize on builtin_missing_argument() 2017-07-01 14:03:47 -07:00
builtin_ulimit.h implement our own assert() function 2017-02-14 18:48:27 -08:00
builtin_wait.cpp Fix warnings when compiling under clang 2018-05-11 11:11:53 -05:00
builtin_wait.h add wait command 2017-11-16 10:48:21 -08:00
color.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
color.h implement our own assert() function 2017-02-14 18:48:27 -08:00
common.cpp Fix escape_string_var for UTF-16 2018-05-28 12:10:40 +02:00
common.h Clean up complete.cpp code 2018-05-12 11:23:43 -05:00
complete.cpp Remove an unused variable 2018-05-27 15:46:30 -07:00
complete.h Clean up complete.cpp code 2018-05-12 11:23:43 -05:00
env.cpp Clean up some env.cpp export code 2018-05-27 15:45:30 -07:00
env.h Add and use new exit code for env_remove() when var doesn't exist 2018-03-31 22:12:52 -05:00
env_universal_common.cpp Fix the Linux build 2018-04-01 17:59:42 -07:00
env_universal_common.h Remove MAC address from universal variables file 2018-04-01 17:43:12 -07:00
event.cpp Clean up and document functions --handlers 2018-03-10 02:27:25 -08:00
event.h Clean up and document functions --handlers 2018-03-10 02:27:25 -08:00
exec.cpp Iron out situation with setpgid() calls after posix_spawn() 2018-05-16 19:34:56 -05:00
exec.h implement limits on command substitution output 2017-08-03 17:40:25 -07:00
expand.cpp Feature flag support for ? wildcard 2018-05-06 11:20:15 -07:00
expand.h Handle whitespace within parameter expansion tokens 2018-03-11 22:02:43 -05:00
fallback.cpp Fix some unused variable warnings 2018-03-31 17:06:13 -07:00
fallback.h Add fish_emoji_width variable to control computed emoji width 2018-02-25 23:38:10 -08:00
fish.cpp Set features from the environment 2018-05-06 11:20:14 -07:00
fish_indent.cpp Teach fish_indent about escaped newlines 2018-05-07 21:40:53 -07:00
fish_key_reader.cpp Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
fish_tests.cpp Feature flag support for ? wildcard 2018-05-06 11:20:15 -07:00
fish_version.cpp [cmake] Untangle the CMake versioning 2018-01-08 22:28:10 -08:00
fish_version.h Revert "Generate FISH_BUILD_VERSION info for cmake builds" 2018-01-08 22:28:10 -08:00
function.cpp Source : function without any C++ hacks 2018-03-15 18:19:08 -05:00
function.h Source : function without any C++ hacks 2018-03-15 18:19:08 -05:00
future_feature_flags.cpp Add a qmark-noglob feature flag 2018-05-06 11:20:15 -07:00
future_feature_flags.h Add a feature_test() function 2018-05-06 11:20:15 -07:00
highlight.cpp Add a feature_test() function 2018-05-06 11:20:15 -07:00
highlight.h implement our own assert() function 2017-02-14 18:48:27 -08:00
history.cpp Add && and || support to tokenizer 2018-03-05 12:20:56 -08:00
history.h Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
input.cpp [input] Only timeout if the last character was escape 2018-05-29 18:40:29 +02:00
input.h lint cleanup 2017-06-16 21:01:56 -07:00
input_common.cpp Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
input_common.h Add new pager-toggle-search input function 2018-01-30 09:58:08 -08:00
intern.cpp Remove custom lock types in favor of native C++11 mutexes 2017-08-18 23:09:31 -05:00
intern.h restyle intern module to match project style 2016-05-01 20:28:46 -07:00
io.cpp Mark trivial constructors/destructors as default 2018-02-18 19:12:45 -08:00
io.h Mark overriding virtual functions as override instead of virtual 2018-02-18 19:12:45 -08:00
iothread.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
iothread.h lint cleanups 2017-02-11 21:30:38 -08:00
kill.cpp fix random lint issues 2016-05-29 22:24:29 -07:00
kill.h restyle kill module to match project style 2016-05-01 22:18:59 -07:00
lru.h Removed XXHash and converted some wchar_t* to wcstring 2017-08-19 18:27:24 -05:00
maybe.h Add acquire() to maybe_t 2018-04-01 16:10:59 -07:00
output.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
output.h change env_var_t to a vector of strings 2017-08-18 16:24:30 -07:00
pager.cpp Make pager background cover the entire candidate 2018-03-31 13:04:30 +02:00
pager.h implement our own assert() function 2017-02-14 18:48:27 -08:00
parse_constants.h Rename $pid (née %self) to $fish_pid 2018-03-24 11:54:27 -05:00
parse_execution.cpp Execute the conditions of if and while statements outside of their block 2018-03-31 14:57:24 -07:00
parse_execution.h Execute the conditions of if and while statements outside of their block 2018-03-31 14:57:24 -07:00
parse_grammar.h Add support for ! as an analog to 'not' 2018-03-05 14:04:49 -08:00
parse_grammar_elements.inc Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
parse_productions.cpp Fix some unused variable warnings 2018-03-31 17:06:13 -07:00
parse_productions.h style cleanups 2017-05-01 22:05:35 -07:00
parse_tree.cpp Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
parse_tree.h Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
parse_util.cpp Add a feature_test() function 2018-05-06 11:20:15 -07:00
parse_util.h Teach parse_util_escape_string_with_quote about tildes 2018-02-17 15:18:43 -08:00
parser.cpp Mark trivial constructors/destructors as default 2018-02-18 19:12:45 -08:00
parser.h Remove parser_error 2018-02-18 20:29:28 -08:00
parser_keywords.cpp Reserve some builtin names 2018-02-25 21:29:24 +01:00
parser_keywords.h Make IWYU output in lint.cpp less messy 2016-06-23 17:26:08 -07:00
path.cpp Work around WSL access(2) EINVAL bug 2017-09-24 13:43:50 -05:00
path.h stop subclassing env_var_t from wcstring 2017-08-06 13:24:34 -07:00
postfork.cpp Sprinkle in some job control asserts 2018-03-04 20:17:26 -06:00
postfork.h Refactor job control to make functions act like their names imply 2018-02-14 19:08:12 -06:00
print_help.cpp lint: "collapsible if statements" warnings 2016-10-22 19:09:40 -07:00
print_help.h restyle proc module to match project style 2016-05-02 22:07:58 -07:00
proc.cpp Unify ellipsis_str[ing] with common variable set once 2018-03-09 14:40:35 -06:00
proc.h Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
reader.cpp Don't update CMD_DURATION if no command is requested 2018-05-27 11:37:36 -07:00
reader.h Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
sanity.cpp Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
sanity.h improve sanity check code 2017-01-24 15:24:13 -08:00
screen.cpp Fix clearing abandoned line with VTE (#4243) 2018-05-08 13:07:47 +02:00
screen.h Add prompt layout caching to layout_cache_t 2018-02-04 16:20:55 -08:00
signal.cpp Fix uninitialized sigaction.sa_flags valgrind error 2017-08-26 19:13:58 -05:00
signal.h Revert "Revert "finish cleanup of signal blocking code"" 2017-08-06 14:46:12 -07:00
tinyexpr.c [math] Better error for 2 + 2 4 2018-03-01 13:09:35 +01:00
tinyexpr.h [math] Better error for 2 + 2 4 2018-03-01 13:09:35 +01:00
tnode.cpp Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
tnode.h Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
tokenizer.cpp Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
tokenizer.h Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
utf8.cpp implement our own assert() function 2017-02-14 18:48:27 -08:00
utf8.h implement our own assert() function 2017-02-14 18:48:27 -08:00
util.cpp Fix the build on FreeBSD with Clang 2017-06-17 22:51:25 -07:00
util.h restyle remaining modules to match project style 2016-05-03 16:09:45 -07:00
wcstringutil.cpp Support multiple read --line variable outputs 2018-04-17 21:34:22 -05:00
wcstringutil.h Add line-delimited read presets with --line and --all-lines 2018-04-17 21:34:22 -05:00
wgetopt.cpp refactor wgetopt.cpp to reduce complexity 2017-06-17 17:09:01 -07:00
wgetopt.h Fix the build on FreeBSD ARM and ARM64 (#4593) 2017-12-12 22:45:17 -08:00
wildcard.cpp Add a feature_test() function 2018-05-06 11:20:15 -07:00
wildcard.h Feature flag support for ? wildcard 2018-05-06 11:20:15 -07:00
wutil.cpp Change wrealpath to return a maybe_t 2017-10-11 00:08:26 -07:00
wutil.h Change wrealpath to return a maybe_t 2017-10-11 00:08:26 -07:00