about 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/_chmod10
-rw-r--r--Completion/Unix/Command/_chown12
-rw-r--r--Completion/Unix/Command/_cvs9
-rw-r--r--Completion/Unix/Type/_list_files15
4 files changed, 13 insertions, 33 deletions
diff --git a/Completion/Unix/Command/_chmod b/Completion/Unix/Command/_chmod
index 3df93fd64..84013d591 100644
--- a/Completion/Unix/Command/_chmod
+++ b/Completion/Unix/Command/_chmod
@@ -54,13 +54,9 @@ case "$state" in
   ;;
   files)
     if [[ -n $opt_args[--reference] ]]; then
-      if zstyle -t ":completion:${curcontext}:" disable-stat; then
-	_files && ret=0
-      else
-	zmodload -i zsh/stat 2>/dev/null
-	typeset -i8 ref=$(stat +mode $opt_args[--reference])
-	_wanted files expl file _files -g "*(-.^f${ref#??})" && ret=0
-      fi
+      zmodload -F zsh/stat zstat 2>/dev/null
+      typeset -i8 ref=$(zstat +mode $opt_args[--reference])
+      _wanted files expl file _files -g "*(-.^f${ref#??})" && ret=0
     elif [[ $words[2] = [0-7]## ]]; then
       _wanted files expl file _files -g "*(-.^f$words[2])" && ret=0
     else
diff --git a/Completion/Unix/Command/_chown b/Completion/Unix/Command/_chown
index 3371e8ea4..9246db42c 100644
--- a/Completion/Unix/Command/_chown
+++ b/Completion/Unix/Command/_chown
@@ -50,14 +50,10 @@ case $state in
   files)
     (( $+opt_args[-h] || $+opt_args[--no-dereference] )) || deref="-"
     if (( $+opt_args[--reference] )); then
-      if zstyle -t ":completion:${curcontext}:" disable-stat; then
-	_files && ret=0
-      else
-	zmodload -i zsh/stat 2>/dev/null
-	usr=$(stat +uid $opt_args[--reference])
-	grp=$(stat +gid $opt_args[--reference])
-	_wanted files expl file _files -g "*($deref^u$usr,$deref^g$grp)" && ret=0
-      fi
+      zmodload -F zsh/stat zstat 2>/dev/null
+      usr=$(zstat +uid $opt_args[--reference])
+      grp=$(zstat +gid $opt_args[--reference])
+      _wanted files expl file _files -g "*($deref^u$usr,$deref^g$grp)" && ret=0
       return ret
     fi
     if [[ $service = chgrp ]]; then
diff --git a/Completion/Unix/Command/_cvs b/Completion/Unix/Command/_cvs
index 839075f64..c5fd75050 100644
--- a/Completion/Unix/Command/_cvs
+++ b/Completion/Unix/Command/_cvs
@@ -550,11 +550,10 @@ _cvs_watchers() {
 
 (( $+functions[_cvs_loadstat] )) ||
 _cvs_loadstat() {
-  zstyle -t ":completion:${curcontext}:" disable-stat && return 1
   (( $+_cvs_loadstat_status )) && return $_cvs_loadstat_status
 
-  zmodload -i zsh/stat 2>/dev/null
-  (( _cvs_loadstat_status = ! $+builtins[stat] ))
+  zmodload -F zsh/stat zstat 2>/dev/null
+  (( _cvs_loadstat_status = ! $+builtins[zstat] ))
   return $_cvs_loadstat_status
 }
 
@@ -566,7 +565,7 @@ _cvs_root() {
 
   if [[ -f "${cvspassfile::=${CVS_PASSFILE:-$HOME/.cvspass}}" ]]; then
     if _cvs_loadstat; then
-      id="$(LC_ALL=C builtin stat -g +mtime -F '%Y/%m/%d-%T' "$cvspassfile")"
+      id="$(LC_ALL=C builtin zstat -g +mtime -F '%Y/%m/%d-%T' "$cvspassfile")"
     else
       id="$(LC_ALL=C ls -l "$cvspassfile")"
     fi
@@ -865,7 +864,7 @@ _cvs_modified_entries() {
     realdir=${(e)~linedir}
     [[ -f "$realdir"CVS/Entries ]] && {
       local -a mtime
-      LC_ALL=C builtin stat -A mtime -gn +mtime -F $'%a %b %e %T %Y\n' ${realdir}*(D) 2>/dev/null
+      LC_ALL=C builtin zstat -A mtime -gn +mtime -F $'%a %b %e %T %Y\n' ${realdir}*(D) 2>/dev/null
       [[ -n ${pat::="${(@j:|:)${(@)${(@)${(@)${(@)${(@)${(@M)${(@f)"$(<"$realdir"CVS/Entries)"}:#/*}#/}/${slash}[^${slash}]#${slash}//}%/[^/]#/[^/]#}:#${(j:|:)~${(f)${(j:/:)${mtime##*/}}//(#m)[][*?()<|^~#\\]/\\$MATCH}#/}}%%/*}//(#m)[][*?()<|^~#\\]/\\$MATCH}"} ]]
     } &&
     _wanted files expl 'modified file' _path_files -g "$pat"
diff --git a/Completion/Unix/Type/_list_files b/Completion/Unix/Type/_list_files
index 8475d2056..bcb42907d 100644
--- a/Completion/Unix/Type/_list_files
+++ b/Completion/Unix/Type/_list_files
@@ -46,15 +46,7 @@ done
 
 (( ok )) || return 1
 
-zmodload -i zsh/stat 2>/dev/null || return 1
-
-{
-# Enable stat temporarily if disabled to avoid clashes.
-integer disable_stat
-if [[ ${builtins[stat]} != defined ]]; then
-  (( disable_stat = 1 ))
-  enable stat
-fi
+zmodload -F zsh/stat zstat 2>/dev/null || return 1
 
 dir=${2:+$2/}
 dir=${(Q)dir}
@@ -66,7 +58,7 @@ for f in ${(PQ)1}; do
   fi
 
   # Borrowed from Functions/Example/zls
-  stat -s -H stat -F "%b %e %H:%M" - "$dir$f" >/dev/null 2>&1
+  zstat -s -H stat -F "%b %e %H:%M" - "$dir$f" >/dev/null 2>&1
 
   listfiles+=("$stat[mode] ${(l:3:)stat[nlink]} ${(r:8:)stat[uid]} \
  ${(r:8:)stat[gid]} ${(l:8:)stat[size]} $stat[mtime] $f")
@@ -74,7 +66,4 @@ done
 
 (( ${#listfiles} )) && listopts=(-d listfiles -l -o)
 
-} always {
-  (( disable_stat )) && disable stat
-}
 return 0