summary refs log tree commit diff
path: root/Completion/Unix
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/_chown7
-rw-r--r--Completion/Unix/Type/_path_files2
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.