summaryrefslogtreecommitdiffstats
path: root/Completion/User/_cvs
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-08-13 15:27:23 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-08-13 15:27:23 +0000
commit5de60daa2aff45bd1e9cdc7abd1f464b2c35be8e (patch)
tree23145a56a8d1ee6927328f56a2b939089cb65b4d /Completion/User/_cvs
parentzsh-workers/7431 (diff)
downloadzsh-5de60daa2aff45bd1e9cdc7abd1f464b2c35be8e.tar
zsh-5de60daa2aff45bd1e9cdc7abd1f464b2c35be8e.tar.gz
zsh-5de60daa2aff45bd1e9cdc7abd1f464b2c35be8e.tar.bz2
zsh-5de60daa2aff45bd1e9cdc7abd1f464b2c35be8e.tar.lz
zsh-5de60daa2aff45bd1e9cdc7abd1f464b2c35be8e.tar.xz
zsh-5de60daa2aff45bd1e9cdc7abd1f464b2c35be8e.tar.zst
zsh-5de60daa2aff45bd1e9cdc7abd1f464b2c35be8e.zip
zsh-workers/7432
Diffstat (limited to 'Completion/User/_cvs')
-rw-r--r--Completion/User/_cvs82
1 files changed, 40 insertions, 42 deletions
diff --git a/Completion/User/_cvs b/Completion/User/_cvs
index 811d1c232..65fa87904 100644
--- a/Completion/User/_cvs
+++ b/Completion/User/_cvs
@@ -47,14 +47,14 @@ _cvs () {
commit|ci|com) # "+nlRm:fF:r:"
_complete_opts n '' l '' R '' m: "$complete_m" f '' F: _files \
r: "$complete_r" ||
- _cvstargets_modified
+ _cvsmodified
;;
diff|di|dif) # "+abcdefhilnpstuw0123456789BHNRC:D:F:I:L:U:V:W:k:r:"
_complete_opts a '' b '' c '' d '' e '' f '' h '' i '' l '' n '' p '' \
s '' t '' u '' w '' 0 '' 1 '' 2 '' 3 '' 4 '' 5 '' 6 '' 7 '' 8 '' \
9 '' B '' H '' N '' R '' C: '' D: "$complete_D" F: '' I: '' L: '' \
U: '' V: '' W: '' k: "$complete_k" r: "$complete_r" ||
- _cvstargets_modified || _cvstargets
+ _cvsmodified || _cvstargets
;;
edit) # "+lRa:"
_complete_opts l '' R '' a: 'compadd edit unedit commit all none' ||
@@ -174,8 +174,7 @@ _cvsrepositories () {
}
_cvsprefix () {
- #if [[ -prefix */ ]]; then
- if [[ x"$PREFIX" == x*/* ]]; then
+ if [[ -prefix */ ]]; then
qpref="${PREFIX%/*}/"
pref=$~qpref
else
@@ -184,56 +183,55 @@ _cvsprefix () {
fi
}
-_cvsdirentries () {
- setopt localoptions nullglob unset
- if [[ -f ${pref}CVS/Entries ]]; then
- entries=(${${${(M)${(f)"$(<${pref}CVS/Entries)"}:#D/*}#D/}%%/*})
- else
- entries=()
- fi
+_cvsentries_dir () {
+ entries=($entries ${${${(M)rawentries:#D/*}#D/}%%/*})
}
-_cvsentries () {
- setopt localoptions nullglob unset
- if [[ -f ${pref}CVS/Entries ]]; then
- entries=(${${${${(f)"$(<${pref}CVS/Entries)"}:#D}#(D|)/}%%/*})
- else
- entries=()
- fi
+_cvsentries_plain () {
+ entries=($entries ${${${(M)rawentries:#/*}#/}%%/*})
}
_cvsentries_modified () {
if (( $+_cvsentries_modified_disable_stat )) ||
! { zmodload -e stat || zmodload stat }; then
- _cvsentries
+ _cvsentries_plain
return
fi
- entries=()
- local line Entries
- typeset -A mtime
+ local ents pats
+ ents=(${${${${(M)rawentries:#/*}#/}/\\/[^\\/]#\\///}%/[^/]#/[^/]#})
+ pats=(${${${(f)"$(LANG=C builtin stat -gn +mtime -F '%a %b %e %T %Y' ${pref}*(D))"}##*/}/ //})
+ eval 'ents=(${ents:#('${(j:|:)pats:q}')})'
+ entries=($entries ${ents%%/*})
+}
- if [[ -f "${pref}CVS/Entries" ]]; then
- Entries="$(<${pref}CVS/Entries)"
- else
- return
+_cvsdirentries () {
+ entries=()
+ if [[ -f ${pref}CVS/Entries ]]; then
+ local rawentries
+ rawentries=(${(f)"$(<${pref}CVS/Entries)"})
+ _cvsentries_dir
fi
+}
- local LANG=C
- local OLDTZ="$TZ"; if ! (( $+TZ )); then unset OLDTZ; fi; export TZ=GMT
-
- mtime=(${(s:/:)${(j:/:)${${${${(M)${(f)Entries}:#/*}#/}%/*/*}/\\/*\\///}}})
- entries=(${${${(M)${(f)Entries}:#D/*}#D/}%%/*})
- builtin stat -n +mtime -F '%a %b %e %T %Y' "$pref${(@k)^mtime}" |
- while read line
- do
- line=${line#$pref}
- if [[ x"$mtime[${line%% *}]" != x"${line#* }" ]]; then
- entries=($entries "${line%% *}")
- fi
- done
+_cvsentries () {
+ entries=()
+ if [[ -f ${pref}CVS/Entries ]]; then
+ local rawentries
+ rawentries=(${(f)"$(<${pref}CVS/Entries)"})
+ _cvsentries_plain
+ _cvsentries_dir
+ fi
+}
- if (( $+OLDTZ )); then TZ="$OLDTZ"; else unset TZ; fi
+_cvsmodentries () {
+ entries=()
+ if [[ -f ${pref}CVS/Entries ]]; then
+ local rawentries
+ rawentries=(${(f)"$(<${pref}CVS/Entries)"})
+ _cvsentries_modified
+ _cvsentries_dir
+ fi
}
_cvsdirs () {
@@ -264,11 +262,11 @@ _cvstargets () {
fi
}
-_cvstargets_modified () {
+_cvsmodified () {
local qpref pref entries
_cvsprefix
if [[ -d ${pref}CVS ]]; then
- _cvsentries_modified
+ _cvsmodentries
case $#entries in
0) false;;
1) compgen -g "${entries:q}";;