fish-shell/share/functions/__fish_not_contain_opt.fish
2017-04-13 23:14:36 -07:00

49 lines
1.1 KiB
Fish

function __fish_not_contain_opt -d "Checks that a specific option is not in the current command line"
set -l next_short
set -l short_opt
set -l long_opt
for i in $argv
if test -n "$next_short"
set next_short
set short_opt $short_opt $i
else
switch $i
case -s
set next_short 1
case '-*'
echo __fish_not_contains_opt: Unknown option $i >&2
return 1
case '*'
set long_opt $long_opt $i
end
end
end
for i in $short_opt
if test -z "$i"
continue
end
if string match -qr -- "^-$i|^-[^-]*$i" (commandline -cpo)
return 1
end
if string match -qr -- "^-$i|^-[^-]*$i" (commandline -ct)
return 1
end
end
for i in $long_opt
if test -z "$i"
continue
end
if contains -- --$i (commandline -cpo)
return 1
end
end
return 0
end