diff --git a/share/functions/__fish_seen_subcommand_from.fish b/share/functions/__fish_seen_subcommand_from.fish index 92e14213e..117607a85 100644 --- a/share/functions/__fish_seen_subcommand_from.fish +++ b/share/functions/__fish_seen_subcommand_from.fish @@ -1,16 +1,10 @@ # # Test to see if we've seen a subcommand from a list. # This logic may seem backwards, but the commandline will often be much shorter -# than the list +# than the list # function __fish_seen_subcommand_from - set -l cmd (commandline -pxc) - set -e cmd[1] - for i in $cmd - if contains -- $i $argv - return 0 - end - end - return 1 + set regex (string escape --style=regex -- (commandline -pxc)[2..] | string join '|') + string match -rq -- '^'$regex'$' $argv end