mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-26 10:43:47 +08:00
8bf8b10f68
See the changelog additions for user-visible changes. Since we enable/disable terminal protocols whenever we pass terminal ownership, tests can no longer run in parallel on the same terminal. For the same reason, readline shortcuts in the gdb REPL will not work anymore. As a remedy, use gdbserver, or lobby for CSI u support in libreadline. Add sleep to some tests, otherwise they fall (both in CI and locally). There are two weird failures on FreeBSD remaining, disable them for now https://github.com/fish-shell/fish-shell/pull/10359/checks?check_run_id=23330096362 Design and implementation borrows heavily from Kakoune. In future, we should try to implement more of the kitty progressive enhancements. Closes #10359
48 lines
1.6 KiB
Fish
48 lines
1.6 KiB
Fish
# Explicitly overriding HOME/XDG_CONFIG_HOME is only required if not invoking via `make test`
|
|
# RUN: %fish -C 'set -g fish %fish' %s | %filter-ctrlseqs
|
|
|
|
mkdir -p $XDG_CONFIG_HOME/fish
|
|
|
|
# fish_variables
|
|
set -l target_file $XDG_CONFIG_HOME/fish/target_fish_variables
|
|
set -l fish_variables $XDG_CONFIG_HOME/fish/fish_variables
|
|
set -l backup_file $XDG_CONFIG_HOME/fish/fish_variables_backup
|
|
|
|
echo >$target_file
|
|
cp $target_file $backup_file
|
|
ln -sf $target_file $fish_variables
|
|
$fish -c 'set -U variable value'
|
|
|
|
if not test -L $fish_variables
|
|
echo fish_variables has been overwritten
|
|
else if cmp $target_file $backup_file >/dev/null
|
|
echo fish_variables was never written
|
|
else
|
|
echo fish_variables is still a symlink
|
|
end
|
|
# CHECK: fish_variables is still a symlink
|
|
|
|
|
|
# fish_history
|
|
set -l history_file $XDG_DATA_HOME/fish/fish_history
|
|
set -l target_file $XDG_DATA_HOME/fish/target_fish_history
|
|
set -l backup_file $XDG_DATA_HOME/fish/fish_history_backup
|
|
|
|
echo '- cmd: echo I will be deleted from history
|
|
when: 1614577746' >$target_file
|
|
cp $target_file $backup_file
|
|
ln -sf $target_file $history_file
|
|
# The one way to ensure non-interactive fish writes to the history file
|
|
$fish -c 'echo all | history delete deleted | grep echo'
|
|
# CHECK: [1] echo I will be deleted from history
|
|
|
|
if not test -L $history_file
|
|
echo fish_history has been overwritten
|
|
else if cmp $target_file $backup_file &>/dev/null
|
|
# cmp writes to stderr when one file is empty, thus &> above
|
|
echo fish_history was never written
|
|
else
|
|
echo fish_history is still a symlink
|
|
end
|
|
# CHECK: fish_history is still a symlink
|