# vim: set filetype=fish: # Test that conditions that add or remove completions don't deadlock, etc. # We actually encountered some case that was effectively like this (Issue 2 in github) complete --command AAAA -l abcd --condition 'complete -c AAAA -l efgh' echo "AAAA:" complete -C'AAAA -' | sort echo "AAAA:" complete -C'AAAA -' | sort complete --command BBBB -l abcd --condition 'complete -e --command BBBB -l abcd' echo "BBBB:" complete -C'BBBB -' echo "BBBB:" complete -C'BBBB -' # Test that erasing completions works correctly echo function sort # GNU sort is really stupid, a non-C locale seems to make it assume --dictionary-order # If I wanted --dictionary-order, I would have specified --dictionary-order! env LC_ALL=C sort $argv end complete -c CCCC -l bar complete -c CCCC -l baz complete -c CCCC -o bar complete -c CCCC -o foo complete -c CCCC -s a complete -c CCCC -s b echo "CCCC:" complete -C'CCCC -' | sort complete -c CCCC -l bar -e echo "CCCC:" complete -C'CCCC -' | sort complete -c CCCC -o foo -e echo "CCCC:" complete -C'CCCC -' | sort complete -c CCCC -s a -e echo "CCCC:" complete -C'CCCC -' | sort complete -c CCCC -e echo "CCCC:" complete -C'CCCC -' | sort # Test that directory completions work correctly if begin; rm -rf test6.tmp.dir; and mkdir test6.tmp.dir; end pushd test6.tmp.dir set -l dir (mktemp -d XXXXXXXX) if complete -C$dir | grep "^$dir/.*Directory" >/dev/null echo "implicit cd complete works" else echo "no implicit cd complete" end if complete -C"command $dir" | grep "^$dir/.*Directory" >/dev/null echo "implicit cd complete incorrect after 'command'" else echo "no implicit cd complete after 'command'" end popd if begin set -l PATH $PWD/test6.tmp.dir $PATH ^/dev/null complete -C$dir | grep "^$dir/.*Directory" >/dev/null end echo "incorrect implicit cd from PATH" else echo "PATH does not cause incorrect implicit cd" end rm -rf test6.tmp.dir else echo "error: could not create temp environment" >&2 end