diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-07-27 11:48:15 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-07-27 11:48:15 +0000 |
commit | d393a4b8bdd6392560ed0363714df3ee7c5288fc (patch) | |
tree | d7c7fb09f08433384f775285c8ec4714c0e2b9f5 | |
parent | 796a9cdcce57f194fc88a55279e96d1e8cbff421 (diff) | |
download | zsh-d393a4b8bdd6392560ed0363714df3ee7c5288fc.tar.gz zsh-d393a4b8bdd6392560ed0363714df3ee7c5288fc.tar.xz zsh-d393a4b8bdd6392560ed0363714df3ee7c5288fc.zip |
zsh-workers:7293
-rw-r--r-- | Completion/User/_cvs | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/Completion/User/_cvs b/Completion/User/_cvs index 9700aed38..d5cc52d7d 100644 --- a/Completion/User/_cvs +++ b/Completion/User/_cvs @@ -196,6 +196,8 @@ _cvsdirentries () { setopt localoptions nullglob unset if [[ -f ${pref}CVS/Entries ]]; then entries=( ${${${(M)${(f)"$(<${pref}CVS/Entries)"}:#D/*}#D/}%%/*} ) + else + entries=() fi } @@ -203,6 +205,8 @@ _cvsentries () { setopt localoptions nullglob unset if [[ -f ${pref}CVS/Entries ]]; then entries=( ${${${${(f)"$(<${pref}CVS/Entries)"}:#D}#(D|)/}%%/*} ) + else + entries=() fi } @@ -213,6 +217,7 @@ _cvsentries_modified () { return fi + entries=() local line Entries typeset -A mtime @@ -242,52 +247,59 @@ _cvsentries_modified () { _cvsdirs () { if [[ -d ${pref}CVS ]]; then _cvsdirentries - compadd -fW "$pref" - $entries + if (( $#entries )); then + compgen "$@" -g '('${(j:|:)entries:q}')' + fi else - _files -W "$pref" + _files fi } _cvstargets () { local qpref pref entries - _cvsprefix; compset -P '*/' + _cvsprefix if [[ -d ${pref}CVS ]]; then _cvsentries - compgen -W "$pref" -g "(${(j:|:)entries})" + if (( $#entries )); then + compgen -g '('${(j:|:)entries:q}')' + fi else - _files -W "$pref" + _files fi } _cvstargets_modified () { local qpref pref entries - _cvsprefix; compset -P '*/' + _cvsprefix if [[ -d ${pref}CVS ]]; then _cvsentries_modified - compgen -W "$pref" -g "(${(j:|:)entries})" + if (( $#entries )); then + compgen -g '('${(j:|:)entries:q}')' + fi else - _files -W "$pref" + _files fi } _cvsremovep () { local qpref pref entries - _cvsprefix; compset -P '*/' + _cvsprefix if [[ -d ${pref}CVS ]]; then _cvsentries setopt localoptions unset local omit omit=( ${pref}*(D:t) ) - eval 'compadd -fW "$pref" - ${entries:#('${(j:|:)omit}')}' || + eval 'entries=( ${entries:#('${(j:|:)omit:q}')} )' + compadd -P "$qpref" - ${entries:q} || _cvsdirs else - _files -W "$pref" + _files fi } _cvsaddp () { local qpref pref entries - _cvsprefix; compset -P '*/' + _cvsprefix if [[ -d ${pref}CVS ]]; then _cvsentries setopt localoptions unset @@ -296,10 +308,10 @@ _cvsaddp () { omit=( CVS $entries ${=cvsignore} ) [[ -r ~/.cvsignore ]] && omit=( $omit $(<~/.cvsignore) ) [[ -r ${pref}.cvsignore ]] && omit=( $omit $(<${pref}.cvsignore) ) - compgen -W "$pref" -g "*~*/(${(j:|:)omit})" || - _cvsdirs + compgen -g '*~(*/|)('${(j:|:)omit:q}')' || + { _cvsdirentries; compgen -g '('${(j:|:)entries:q}')' } else - _files -W "$pref" + _files fi } |