fish-shell/tests/pexpects
Johannes Altmanninger c3cd68dda5 Process shell commands from bindings like regular char events
A long standing issue is that bindings cannot mix special input functions
and shell commands. For example,

    bind x end-of-line "commandline -i x"

silently does nothing. Instead we have to do lift everything to shell commands

    bind x "commandline -f end-of-line; commandline -i x"

for no good reason.

Additionally, there is a weird ordering difference between special input
functions and shell commands. Special input functions are pushed into the
the queue whereas shell commands are executed immediately.

This weird ordering means that the above "bind x" still doesn't work as
expected, because "commandline -i" is processed before "end-of-line".

Finally, this is all implemented via weird hack to allow recursive use of
a mutable reference to the reader state.

Fix all of this by processing shell commands the same as both special input
functions and regular chars. Hopefully this doesn't break anything.

Fixes #8186
Fixes #10360
Closes #9398
2024-03-23 10:06:11 +01:00
..
abbrs.py abbr: stop parsing option after first expansion token 2022-12-13 01:39:31 +01:00
bind.py reader: Fix infinite loop for up/downcase bindings 2024-01-16 18:13:18 +01:00
bind_mode_events.py Restyle codebase 2022-06-16 18:43:28 +02:00
cancel_event.py Control-C to simply clear commandline buffer again 2024-01-17 19:54:57 +01:00
commandline.py completion: adopt commandline -x replacing deprecated -o 2024-01-27 09:28:06 +01:00
complete-group-order.py Restyle fishscript and python 2023-06-01 18:20:19 +02:00
complete.py completion: adopt commandline -x replacing deprecated -o 2024-01-27 09:28:06 +01:00
cursor_selection.py Restyle fishscript and python 2023-06-01 18:20:19 +02:00
disable_mouse.py Simplify event_queue_peeker_t 2021-04-17 16:43:27 -07:00
eval-stack-overflow.py Restyle fishscript and python 2023-06-01 18:20:19 +02:00
exit.py Reformat 2020-11-22 14:39:48 +01:00
exit_handlers.py Add a test that fish_exit handlers run on receipt of SIGHUP 2020-08-30 15:09:34 -07:00
exit_nohang.py tests: Increase a sleep 2023-11-15 17:58:42 +01:00
fg.py Restyle codebase 2022-06-16 18:43:28 +02:00
fkr.py fish_key_reader: fix off-by-one crash 2024-02-01 21:42:55 +01:00
generic.py pexpects: Fix spurious failure in generic.py 2023-08-15 19:14:33 +02:00
histfile.py Another formatting run 2020-06-24 20:43:56 +02:00
history.py Allow deciding if a command should be saved to history (#10302) 2024-03-09 12:04:16 +01:00
isatty.py Reformat 2020-11-22 14:39:48 +01:00
job_summary.py tests: Skip job_summary under ASAN in CI 2023-11-19 19:46:05 +01:00
nullterm.py Be careful to not touch curses variables if cur_term is null 2022-04-16 13:26:56 -07:00
pipeline.py Improve error for redirections to invalid paths 2021-11-20 17:44:05 +01:00
postexec.py Reformat 2020-11-22 14:39:48 +01:00
private_mode.py Restyle fishscript and python 2023-06-01 18:20:19 +02:00
read.py Restyle codebase 2022-06-16 18:43:28 +02:00
set_color.py set_color: Print the given colors with --print-colors 2022-07-01 21:28:35 +02:00
sigint.py Add missing expect_prompt to test_sigint.py 2024-01-07 00:54:22 +01:00
signals.py Retry open_cloexec for signals other than SIGINT 2024-01-25 11:14:31 +01:00
status.py Restyle fishscript and python 2023-06-01 18:20:19 +02:00
stdin_nonblocking.py stdin_nonblocking.py test to not leave background processes 2022-02-12 11:48:55 -08:00
terminal.py Restyle codebase 2022-06-16 18:43:28 +02:00
torn_escapes.py Fix stale references to getch() 2022-09-16 18:26:49 -05:00
tty_ownership.py Claim the tty unconditionally in reader_data_t::readline 2022-09-09 13:43:29 -07:00
undo.py Process shell commands from bindings like regular char events 2024-03-23 10:06:11 +01:00
wait.py share/config.fish: Quit if job expansion hack errors 2023-06-10 15:36:36 +02:00
wildcard_tab.py Restyle fishscript and python 2023-06-01 18:20:19 +02:00