1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-04 22:51:42 +02:00

42330: ln -L and -P are POSIX, but not supported by Darwin or NetBSD

This commit is contained in:
Matthew Martin 2018-01-27 13:06:07 -06:00 committed by Oliver Kiddle
parent 0c324124d0
commit 0236d9c5f1
2 changed files with 37 additions and 20 deletions

View file

@ -1,5 +1,8 @@
2018-02-07 Oliver Kiddle <okiddle@yahoo.co.uk>
* Matthew Martin: 42330: Completion/Unix/Command/_ln:
-L and -P are POSIX, but not supported by Darwin or NetBSD
* wgh@torlan.ru: 42336: Completion/Unix/Command/_adb: force
single column output when getting filenames with adb ls command

View file

@ -3,19 +3,11 @@
local curcontext="$curcontext" state line ret=1
local -A opt_args
local -a args bsd
local -a args opts
args=(
'-f[remove existing destination files]'
'(-i)-f[remove existing destination files]'
'-s[create symbolic links instead of hard links]'
)
bsd=(
'-F[remove existing destination directories]'
{-h,-n}'[do not dereference destination]'
'-i[prompt before removing destination files]'
'-v[print name of each linked file]'
)
local -a opts
local variant
_pick_variant -r variant gnu=gnu unix --help
@ -50,18 +42,40 @@ elif (( ${+builtins[ln]} )); then
args+=(
'-d[attempt to hard link directories]'
{-h,-n}'[do not dereference destination]'
'-i[prompt before removing destination files]')
elif [[ $OSTYPE == darwin* ]]; then
args+=( $bsd )
elif [[ $OSTYPE == freebsd* ]]; then
args+=( $bsd
'(-L)-P[create hard links directly to symbolic links]'
'(-P)-L[create hard links to symbolic link references]'
"-w[warn if source of a symbolic link doesn't currently exist]"
)
'(-f)-i[prompt before removing destination files]')
else
case $OSTYPE in
darwin*|dragonfly*|freebsd*|netbsd*|openbsd*)
args+=(
{-h,-n}'[do not dereference destination]'
)
;|
darwin*|dragonfly*|freebsd*|netbsd*)
args+=(
'(-f)-i[prompt before removing destination files]'
'-v[print name of each linked file]'
)
;|
darwin*|dragonfly*|freebsd*)
args+=(
'-F[remove existing destination directories]'
)
;|
dragonfly*|freebsd*|openbsd*)
args+=(
'(-L)-P[create hard links directly to symbolic links]'
'(-P)-L[create hard links to symbolic link references]'
)
;|
dragonfly*|freebsd*)
args+=(
"-w[warn if source of a symbolic link doesn't currently exist]"
)
;;
esac
fi
_arguments -C -s $opts \
_arguments -C -s $opts : \
$args \
':link target:_files' \
'*:: :->files' && ret=0