fish-shell/tests/checks
Johannes Altmanninger 83b0294fc9 ctrl-l to scroll content instead of erasing screen
On ctrl-l we send `\e[2J` (Erase in Display).  Some terminals interpret
this to scroll the screen content instead of clearing it. This happens
on VTE-based terminals like gnome-terminal for example.

The traditional behavior of ctrl-l erasing the screen (but not the
rest of the scrollback) is weird because:

1. `ctrl-l` is the easiest and most portable way to push the prompt
   to the top (and repaint after glitches I guess). But it's also a
   destructive action, truncating scrollback. I use it for scrolling
   and am frequently surprised when my scroll back is missing
   information.
2. the amount of lines erased depends on the window size.
   It would be more intuitive to erase by prompts, or erase the text
   in the terminal selection.

Let's use scrolling behavior on all terminals.

The new command could also be named "push-to-scrollback", for
consistency with others. But if we anticipate a want to add other
scrollback-related commands, "scrollback-push" is better.

This causes tests/checks/tmux-history-search.fish to fail; that test
seems pretty broken; M-d (alt-d) is supposed to delete the current
search match but there is a rogue "echo" that is supposed to invalidate
the search match.  I'm not sure how that ever worked.

Also, pexepect doesn't seem to support cursor position reporting,
so work around that.

Ref: https://codeberg.org/dnkl/foot/wiki#how-do-i-make-ctrl-l-scroll-the-content-instead-of-erasing-it
as of wiki commit b57489e298f95d037fdf34da00ea60a5e8eafd6d

Closes #10934
2024-12-30 10:50:38 +01:00
..
broken-config/fish Port config tests to littlecheck 2019-06-25 22:31:06 +02:00
abbr.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
alias.fish Support quoted escaping also when ' or \ is present 2024-04-13 15:33:05 +02:00
andandoror.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
andor.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
argparse.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
bad-option.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
basic.fish Use strongly typed Pid for job control 2024-11-14 13:02:03 -06:00
bind.fish Escape nonprintable characters when reporting invalid key name 2024-04-18 23:27:05 +02:00
braces.fish Stop using comma from command substitution in brace expansion 2024-04-26 18:15:47 +02:00
broken-config.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
buildinfo.fish Add status buildinfo (#10896) 2024-12-29 13:37:28 +01:00
builtinbuiltin.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
caller-exit.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
caller-observer.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
cd.fish Skip cd-without-read tests on NetBSD 2024-08-15 17:38:04 +02:00
check-all-fish-files.fish tests: Disable some slow tests under ASAN 2024-04-25 21:52:13 +02:00
check-completions.fish tests: Disable some slow tests under ASAN 2024-04-25 21:52:13 +02:00
check-translations.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
cmdsub-limit.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
cmdsub.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
colon-delimited-var.fish Clean up how PATH and CDPATH munging occurs 2019-11-02 16:48:08 -07:00
command-1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
command-2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
command-not-found.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
command-vars-persist.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
commandline.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
complete-group-order.fish complete: Sort --keep-order completions smaller 2024-10-05 13:53:02 +02:00
complete.fish Fix replacing completions with a -foo prefix 2024-12-14 09:31:20 +01:00
complete_directories.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
completion-autoload-tombstone.fish Make "complete -e" prevent completion autoloading 2024-08-24 08:30:52 +02:00
contains_opt.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
count.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
create-base-directories.fish Create new base directories with mode 0700 2024-12-28 12:13:48 -08:00
deep-cmdsub.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
default-setup-path.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
directory-redirect.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
disown-parent.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
empty.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
env.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
eval.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
exec.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
exit-status-with-closing-stderr.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
expansion.fish Expand tilde after brace expansion 2024-07-23 11:47:58 +02:00
fds.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-ampersand-nobg-in-token1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-nocaret1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-nocaret2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-nocaret3.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-nocaret4.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-percent-self1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-percent-self2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-qmark1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-qmark2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-string-backslashes-off.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
features-string-backslashes.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
fish_add_path.fish fish_add_path: Be more informative in verbose mode 2024-06-06 16:47:39 +02:00
fish_exit.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
fish_user_paths.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
for.fish Push and pop for-block every run through the loop 2024-05-25 13:20:05 +02:00
function-definition.fish functions: Fix --argument-names display 2024-05-06 17:00:45 +02:00
function.fish function: Error out for read-only variables 2024-11-11 17:56:57 +01:00
functions.fish Fix test_functions.fish for Ubuntu Noble Numbat Docker build 2024-04-28 10:38:26 +02:00
git.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
glob.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
history.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
indent.fish fish_indent: Truncate file to the size of the text 2024-09-16 21:08:53 +02:00
init-command-2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
init-command-mix-ordering.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
init-command-mix.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
init-command.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
init-unreadable-cwd.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
invocation.fish Remove errant profiling enabling 2024-05-26 10:32:28 +02:00
job-control-noninteractive.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
job-control-not-a-tty.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
job-ids.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
jobs-are-escaped.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
jobs.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
line-continuation.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
line-number.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
locale-numeric.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
locale.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
loops.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
math.fish math: Nicer error for non-ascii-lowercase identifiers 2024-09-18 22:27:00 +02:00
no-config.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
no-execute.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
noshebang.fish tests: Fix noshebang test 2024-04-25 21:52:56 +02:00
not.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
nuls.fish Support quoted escaping also when ' or \ is present 2024-04-13 15:33:05 +02:00
path.fish Add path basename -E tests 2024-05-26 22:06:11 -05:00
pipeline-pgroup.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
pipestatus.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
print-help.fish tests: Remove skipped tests hack for Cmake < 3.9.0 2024-06-11 16:55:11 +02:00
printf.fish Fix crash when sprintf width argument overflows u64 2024-11-09 08:16:08 +01:00
prompt.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
psub.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
random.fish builtin random: Be less strict about arguments 2024-12-02 19:06:14 +01:00
rc-returned.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
read.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
realpath.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
redirect.fish Add <? input redirection 2024-04-21 14:35:13 +02:00
regex-import.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
return.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
scoping.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
self-signal-usr1.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
set.fish Remove usage of env -u 2024-05-30 12:14:43 -05:00
setenv.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
sigint.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
sigint2.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
signal.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
slices.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
source.fish Allow builtin source to read from non-regular files 2024-10-13 10:44:38 +02:00
stack-overflow.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
status-command.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
status-value.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
status.fish Deprecate builtin test's one- and zero-argument modes (#10365) 2024-04-21 14:25:54 +02:00
string-advanced.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
string.fish string: Also escape new lines with --style=regex 2024-07-16 17:05:11 -05:00
switch.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
symlinks-not-overwritten.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
syntax-error-location.fish Check for unsupported "time &" in the proper place 2024-05-03 09:37:56 +02:00
test-posix.fish Deprecate builtin test's one- and zero-argument modes (#10365) 2024-04-21 14:25:54 +02:00
test.fish Deprecate builtin test's one- and zero-argument modes (#10365) 2024-04-21 14:25:54 +02:00
threads.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
time.fish Swap variable overrides and time in not statement 2024-12-16 06:33:47 +01:00
tmux-abbr.fish Fix regression spuriously expanding abbr with cursor outside token 2024-05-03 08:39:05 +02:00
tmux-autosuggestion.fish Clean up the accept-autosuggestion code path a little bit 2024-11-16 13:05:44 +01:00
tmux-bind.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
tmux-bind2.fish bind: Remove "c-" and "a-" shortcut notation 2024-11-13 17:48:15 +01:00
tmux-commandline.fish Limit command line rendering to $LINES lines 2024-10-25 17:35:42 +02:00
tmux-complete.fish ctrl-l to scroll content instead of erasing screen 2024-12-30 10:50:38 +01:00
tmux-complete2.fish Fix replacing completions spuriously quoting ~ 2024-12-08 15:27:08 +01:00
tmux-history-search.fish ctrl-l to scroll content instead of erasing screen 2024-12-30 10:50:38 +01:00
tmux-job.fish Work around more spurious test failures 2024-05-07 17:55:29 +02:00
tmux-multiline-prompt.fish Fix tmux-multiline-prompt check 2024-12-27 21:02:38 +01:00
tmux-prompt.fish Re-enable tmux-prompt test under FreeBSD 2024-11-14 13:44:49 -06:00
tmux-signal.fish Send repaint requests through the input queue again 2024-04-19 12:05:27 +02:00
tmux-transient.fish Prevent out-of-order execution following repaint 2024-05-13 10:44:12 +02:00
trace.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
trap.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
trap_print.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
type.fish checks/type: Relax sh path even more 2024-12-29 22:11:34 +01:00
ulimit.fish ulimit: Fix multiplication overflow 2024-11-30 15:40:48 +01:00
umask.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
variable-assignment.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
vars_as_commands.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
version.fish tests/version: Update for "-beta" 2024-12-17 16:44:34 +01:00
wait.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
wildcard.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
wraps.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00
zero_based_array.fish tests: filter control sequences only when interactive 2024-04-12 12:28:22 +02:00