From a4f44972076ac86bde7f8b96c18b10807d580965 Mon Sep 17 00:00:00 2001 From: Matthew Martin Date: Mon, 22 Apr 2019 22:04:24 -0500 Subject: 44242: Completion: Use _pick_variant -b to detect builtins --- Completion/Unix/Command/_mv | 86 ++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 37 deletions(-) (limited to 'Completion/Unix/Command/_mv') diff --git a/Completion/Unix/Command/_mv b/Completion/Unix/Command/_mv index 3592efee6..2f0f844d4 100644 --- a/Completion/Unix/Command/_mv +++ b/Completion/Unix/Command/_mv @@ -1,42 +1,54 @@ #compdef mv gmv -local args -if _pick_variant gnu=GNU unix --version; then - args=( - '(-b --backup -n --no-clobber)--backup=[make a backup of each existing destination file]: : _values "backup type" - {none,off}"[never make backups]" - {numbered,t}"[make numbered backups]" - {existing,nil}"[numbered backups, if they already exist]" - {simple,never}"[always make simple backups]"' - '(-b --backup -n --no-clobber)-b[make a backup of each existing destination file]' - '(-f --force -i --interactive -n --no-clobber)'{-f,--force}"[don't prompt before overwriting]" - '(-f --force -i --interactive -n --no-clobber)'{-i,--interactive}'[prompt before overwriting existing file]' - '--strip-trailing-slashes[remove any trailing slashes from each source argument]' - '(-S --suffix)'{-S+,--suffix=}'[specify the backup suffix]:backup suffix [~]' - '(-t --target-directory)'{-t+,--target-directory=}'[move all source arguments into specified directory]:directory:_directories' - '(-T --no-target-directory)'{-T,--no-target-directory}'[treat final argument as a normal file]' - '(-u --update)'{-u,--update}'[move only when destination file is older or missing]' - '(-v --verbose)'{-v,--verbose}'[show file names after they are moved]' - '(- *)--help[display usage information]' - '(- *)--version[display version information]' - ) - [[ $OSTYPE = linux* ]] && args+=( - '(-Z --context)'{-Z,--context}'[set SELinux security context of destination file to default type]' - ) -else - local pattern arg - args=( - "(-i -n)-f[don't prompt before overwriting]" - '(-f -n)-i[prompt before overwriting existing file]' - ) - for pattern arg in \ - '(darwin|dragonfly|freebsd)*' "(-f -i)-n[don't overwrite existing file]" \ - '(darwin|dragonfly|*bsd)*' '-v[show file names after they are moved]' \ - '(dragonfly|freebsd)*' "-h[if target is a symlink to a directory, don't follow it]" - do - [[ $OSTYPE = $~pattern ]] && args+=( $arg ) - done -fi +local args variant + +_pick_variant -r variant -b zsh gnu=GNU $OSTYPE --version +case $variant; in + gnu) + args=( + '(-b --backup -n --no-clobber)--backup=[make a backup of each existing destination file]: : _values "backup type" + {none,off}"[never make backups]" + {numbered,t}"[make numbered backups]" + {existing,nil}"[numbered backups, if they already exist]" + {simple,never}"[always make simple backups]"' + '(-b --backup -n --no-clobber)-b[make a backup of each existing destination file]' + '(-f --force -i --interactive -n --no-clobber)'{-f,--force}"[don't prompt before overwriting]" + '(-f --force -i --interactive -n --no-clobber)'{-i,--interactive}'[prompt before overwriting existing file]' + '--strip-trailing-slashes[remove any trailing slashes from each source argument]' + '(-S --suffix)'{-S+,--suffix=}'[specify the backup suffix]:backup suffix [~]' + '(-t --target-directory)'{-t+,--target-directory=}'[move all source arguments into specified directory]:directory:_directories' + '(-T --no-target-directory)'{-T,--no-target-directory}'[treat final argument as a normal file]' + '(-u --update)'{-u,--update}'[move only when destination file is older or missing]' + '(-v --verbose)'{-v,--verbose}'[show file names after they are moved]' + '(- *)--help[display usage information]' + '(- *)--version[display version information]' + ) + [[ $OSTYPE = linux* ]] && args+=( + '(-Z --context)'{-Z,--context}'[set SELinux security context of destination file to default type]' + ) + ;; + *) + args=( + "(-i -n)-f[don't prompt before overwriting]" + '(-f -n)-i[prompt before overwriting existing file]' + ) + ;| + darwin*|dragonfly*|freebsd*) + args+=( + "(-f -i)-n[don't overwrite existing file]" + ) + ;| + darwin*|dragonfly*|*bsd*) + args+=( + '-v[show file names after they are moved]' + ) + ;| + dragonfly*|freebsd*) + args+=( + "-h[if target is a symlink to a directory, don't follow it]" + ) + ;; +esac _arguments -s -S $args \ '*:file:_files' -- cgit 1.4.1