diff options
author | Axel Beckert <abe@deuxchevaux.org> | 2015-11-25 18:51:00 +0100 |
---|---|---|
committer | Axel Beckert <abe@deuxchevaux.org> | 2015-11-25 18:51:00 +0100 |
commit | 317ec32cb1cbd15b31e17bcb07f09c52cd37c44a (patch) | |
tree | 88a02c853dfafd82a2d551d862d8dfb056b1bee6 /Completion/Unix/Command/_head | |
parent | 1637291aaea12ddcfd549d50d49c480185995c1a (diff) | |
parent | cce4261a3c6f4bf78b483db61623c80e3c98d10b (diff) | |
download | zsh-317ec32cb1cbd15b31e17bcb07f09c52cd37c44a.tar.gz zsh-317ec32cb1cbd15b31e17bcb07f09c52cd37c44a.zip |
Merge tag 'zsh-5.1.1-test-1' into debian
Diffstat (limited to 'Completion/Unix/Command/_head')
-rw-r--r-- | Completion/Unix/Command/_head | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_head b/Completion/Unix/Command/_head new file mode 100644 index 000000000..4f956acdc --- /dev/null +++ b/Completion/Unix/Command/_head @@ -0,0 +1,45 @@ +#compdef head + +local curcontext=$curcontext state state_descr line expl opts args ret=1 +typeset -A opt_args + +if _pick_variant gnu=GNU unix --version; then + args=( + '(-n --lines -c --bytes)'{-c+,--bytes=}'[print the first (or with -, all but the last) specified bytes]:number of bytes:->number' + '(-n --lines -c --bytes)'{-n+,--lines=}'[print the first (or with -, all but the last) specified lines]:number of lines:->number' + '(-q --quiet --silent -v --verbose)'{-q,--quiet,--silent}'[never print headers giving file names]' + '(-q --quiet --silent -v --verbose)'{-v,--verbose}'[always print headers giving file names]' + '(- *)--help[display help and exit]' + '(- *)--version[output version information and exit]' + ) +else + opts=(-A '-*') + args=( '(-c)-n+[display the first specified lines]:number of lines' ) + case $OSTYPE in + (freebsd*|darwin*|dragonfly*|netbsd*) + args+=( '(-n)-c+[display the first specified bytes]:number of bytes' ) + ;; + esac +fi + +_arguments -C -s -S $opts : $args '*:file:_files' && return 0 + +case $state in + (number) + local mlt sign digit + mlt='multiplier:multiplier:((b\:512 K\:1024 KB\:1000 M\:1024\^2' + mlt+=' MB\:1000\^2 G\:1024\^3 GB\:1000\^3 T\:1024\^4 TB\:1000\^4))' + sign='sign:sign:((-\:"print all but the last specified bytes/lines"' + sign+=' +\:"print the first specified bytes/lines (default)"))' + digit='digits:digit:(0 1 2 3 4 5 6 7 8 9)' + if compset -P '*[0-9]'; then + _alternative $mlt $digit && ret=0 + elif [[ -z $PREFIX ]]; then + _alternative $sign $digit && ret=0 + elif compset -P '(+|-)'; then + _alternative $digit && ret=0 + fi + ;; +esac + +return ret |