about summary refs log tree commit diff
path: root/Completion/Unix/Command/_cvs
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_cvs')
-rw-r--r--Completion/Unix/Command/_cvs14
1 files changed, 6 insertions, 8 deletions
diff --git a/Completion/Unix/Command/_cvs b/Completion/Unix/Command/_cvs
index 3a8775c5e..839075f64 100644
--- a/Completion/Unix/Command/_cvs
+++ b/Completion/Unix/Command/_cvs
@@ -6,14 +6,9 @@ _cvs() {
   local extra
 
   # "+Qqrwtnlvb:T:e:d:Hfz:s:xa"
-  case $OSTYPE in
-  freebsd*|openbsd*|dragonfly*)
-    extra='-R[read only access]'
-    ;;
-  esac
 
   _arguments -s \
-    $extra \
+    '-R[read only access]' \
     '-a[authenticate]' \
     '-f[disable .cvsrc]' \
     '(-n)-l[disable logging]' \
@@ -868,8 +863,11 @@ _cvs_modified_entries() {
     : ${PREFIX:#(#b)(*/)(*)}
     linedir="$match[1]"
     realdir=${(e)~linedir}
-    [[ -f "$realdir"CVS/Entries ]] &&
-    [[ -n ${pat::="${(@j:|:)${(@)${(@)${(@)${(@)${(@)${(@M)${(@f)"$(<"$realdir"CVS/Entries)"}:#/*}#/}/${slash}[^${slash}]#${slash}//}%/[^/]#/[^/]#}:#${(j:|:)~${${${${(f)"$(LC_ALL=C builtin stat -gn +mtime -F '%a %b %e %T %Y' ${realdir}*(D) 2>/dev/null)"}##*/}/ //}//(#m)[][*?()<|^~#\\]/\\$MATCH}}}%%/*}//(#m)[][*?()<|^~#\\]/\\$MATCH}"} ]] &&
+    [[ -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
+      [[ -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"
   else
     _cvs_existing_entries