diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2002-07-02 14:06:44 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2002-07-02 14:06:44 +0000 |
commit | f5c8907ec58c21dcf59b01c45716ca780697861f (patch) | |
tree | eb4d11828ece98487828b73c8933d39c1e10fb30 /Completion/Unix | |
parent | 1a1b108b341885da0a70d550384c9ec32a627615 (diff) | |
download | zsh-f5c8907ec58c21dcf59b01c45716ca780697861f.tar.gz zsh-f5c8907ec58c21dcf59b01c45716ca780697861f.tar.xz zsh-f5c8907ec58c21dcf59b01c45716ca780697861f.zip |
keep globbing quiet in _path_files; check if group/user exists in _chown (17393)
Diffstat (limited to 'Completion/Unix')
-rw-r--r-- | Completion/Unix/Command/_chown | 7 | ||||
-rw-r--r-- | Completion/Unix/Type/_path_files | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/Completion/Unix/Command/_chown b/Completion/Unix/Command/_chown index 599e09d14..e194677d2 100644 --- a/Completion/Unix/Command/_chown +++ b/Completion/Unix/Command/_chown @@ -1,6 +1,6 @@ #compdef chown chgrp -local suf usr grp req expl line +local suf usr grp req line line=( "${(@)words[2,CURRENT-1]:#-*}" ) @@ -33,6 +33,9 @@ else req=( ${usr:+\^u$usr} ${grp:+\^g$grp} ) (( EUID )) && req=( u$EUID$^req ) req=( -$^req ) + req="*(${(j:,:)req})" - _wanted files expl file _files -g "*(${(j:,:)req})" && return 0 + ( : $~req ) 2> /dev/null || req='*' + + _files -g "$req" && return 0 fi diff --git a/Completion/Unix/Type/_path_files b/Completion/Unix/Type/_path_files index dd1089e67..75933e623 100644 --- a/Completion/Unix/Type/_path_files +++ b/Completion/Unix/Type/_path_files @@ -338,7 +338,7 @@ for prepath in "$prepaths[@]"; do else compfiles -p$cfopt tmp1 accex "$skipped" "$_matcher $matcher[2]" '' fake "$pats[@]" fi - tmp1=( $~tmp1 ) + tmp1=( $~tmp1 ) 2> /dev/null if [[ -n "$PREFIX$SUFFIX" ]]; then # See which of them match what's on the line. |