diff options
author | axel <axel@liljencrantz.se> | 2006-02-17 20:13:39 +1000 |
---|---|---|
committer | axel <axel@liljencrantz.se> | 2006-02-17 20:13:39 +1000 |
commit | 343cafef346543282b5b6e825bc8f9dd10028a48 (patch) | |
tree | 1bcf221ecb525c7aeadc8325e7b780d3656e544b /share/functions/__fish_contains_opt.fish | |
parent | 95a01f3c8f15034433ffce368d8f2d13d925139c (diff) |
Redo installation file structure, move lots of things to $PREFIX/share/fish
darcs-hash:20060217101339-ac50b-d93d2c620a4b7f75f05ff461a6edbee001da7613.gz
Diffstat (limited to 'share/functions/__fish_contains_opt.fish')
-rw-r--r-- | share/functions/__fish_contains_opt.fish | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/share/functions/__fish_contains_opt.fish b/share/functions/__fish_contains_opt.fish new file mode 100644 index 00000000..5b06007e --- /dev/null +++ b/share/functions/__fish_contains_opt.fish @@ -0,0 +1,53 @@ + +function __fish_contains_opt -d "Checks if a specific option has been given in the current commandline" + set -l next_short + + set -l short_opt + set -l long_opt + + for i in $argv + if test $next_short + set next_short + set -- short_opt $short_opt $i + else + switch $i + case -s + set next_short 1 + case '-*' + echo __fish_contains_opt: Unknown option $i + return 1 + + case '**' + set -- long_opt $long_opt $i + end + end + end + + for i in $short_opt + + if test -z $i + continue + end + + if commandline -cpo | grep -- "^-"$i"\|^-[^-]*"$i >/dev/null + return 0 + end + + if commandline -ct | grep -- "^-"$i"\|^-[^-]*"$i >/dev/null + return 0 + end + end + + for i in $long_opt + if test -z $i + continue + end + + if contains -- --$i (commandline -cpo) + return 0 + end + end + + return 1 +end + |