mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-30 19:41:15 -03:00
Do not try the same (command, wraps) pair more than once when completing
This prevents runaway wrap chains. Fixes #5638.
This commit is contained in:
29
tests/checks/wraps.fish
Normal file
29
tests/checks/wraps.fish
Normal file
@@ -0,0 +1,29 @@
|
||||
#RUN: %fish %s
|
||||
# Validate some things about command wrapping.
|
||||
|
||||
# This tests that we do not trigger a combinatorial explosion - see #5638.
|
||||
# Ensure it completes successully.
|
||||
complete -c testcommand --wraps "testcommand x "
|
||||
complete -c testcommand --wraps "testcommand y "
|
||||
complete -c testcommand --no-files -a normal
|
||||
complete -C'testcommand '
|
||||
# CHECK: normal
|
||||
|
||||
# We get the same completion twice. TODO: fix this.
|
||||
# CHECK: normal
|
||||
|
||||
|
||||
# This tests that a call to complete from within a completion doesn't trigger
|
||||
# wrap chain explosion - #5638 again.
|
||||
function testcommand2_complete
|
||||
set -l tokens (commandline -opc) (commandline -ct)
|
||||
set -e tokens[1]
|
||||
echo $tokens 1>&2
|
||||
complete -C"$tokens"
|
||||
end
|
||||
|
||||
complete -c testcommand2 -x -a "(testcommand2_complete)"
|
||||
complete -c testcommand2 --wraps "testcommand2 from_wraps "
|
||||
complete -C'testcommand2 explicit '
|
||||
# CHECKERR: explicit
|
||||
# CHECKERR: from_wraps explicit
|
||||
Reference in New Issue
Block a user