function contains_seq --description 'Return true if array contains a sequence' set -l printnext switch $argv[1] case --printnext set printnext[1] 1 set -e argv[1] end set -l pattern set -l string set -l dest pattern for i in $argv if test "$i" = -- set dest string continue end set $dest $$dest $i end set -l nomatch 1 set -l i 1 for s in $string if set -q printnext[2] return 0 end if test "$s" = "$pattern[$i]" set -e nomatch[1] set i (math $i + 1) if not set -q pattern[$i] if set -q printnext[1] set printnext[2] 1 continue end return 0 end else if not set -q nomatch[1] set nomatch 1 set i 1 end end end if set -q printnext[1] echo '' end set -q printnext[2] end