about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-07-27 10:09:04 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-07-27 10:09:04 +0000
commit796a9cdcce57f194fc88a55279e96d1e8cbff421 (patch)
treebbada012cb55c03cc682de06f187b0dec08afdbb
parentaae8a82a31e298d7adbb90982f1dd5405d49ad05 (diff)
downloadzsh-796a9cdcce57f194fc88a55279e96d1e8cbff421.tar.gz
zsh-796a9cdcce57f194fc88a55279e96d1e8cbff421.tar.xz
zsh-796a9cdcce57f194fc88a55279e96d1e8cbff421.zip
zsh-workers:7292
-rw-r--r--Completion/User/_cvs51
1 files changed, 21 insertions, 30 deletions
diff --git a/Completion/User/_cvs b/Completion/User/_cvs
index bf744a24b..9700aed38 100644
--- a/Completion/User/_cvs
+++ b/Completion/User/_cvs
@@ -182,21 +182,14 @@ _cvsrepositories () {
 }
 
 _cvsprefix () {
-  local f
-  qpref=$PREFIX
-  if [[ $qpref != */ ]]; then
-    if [[ $qpref = */* ]]; then
-      qpref=$qpref:h
-    else
-      qpref=
-    fi
-  fi
-  pref=$~qpref
-  if [[ ! -d "$pref" ]]; then
+  #if [[ -prefix */ ]]; then
+  if [[ x"$PREFIX" == x*/* ]]; then
+    qpref="${PREFIX%/*}/"
+    pref=$~qpref
+  else
     qpref=
-    pref=
+    pref=./
   fi
-  [[ -n "$pref" && "$pref" != */ ]] && qpref=$qpref/ pref=$pref/
 }
 
 _cvsdirentries () {
@@ -247,68 +240,66 @@ _cvsentries_modified () {
 }
 
 _cvsdirs () {
-  local qpref pref entries
-  _cvsprefix
   if [[ -d ${pref}CVS ]]; then
     _cvsdirentries
-    compadd -fP "$qpref" -W "$pref" - $entries
+    compadd -fW "$pref" - $entries
   else
-    _files
+    _files -W "$pref"
   fi
 }
 
 _cvstargets () {
   local qpref pref entries
-  _cvsprefix
+  _cvsprefix; compset -P '*/'
   if [[ -d ${pref}CVS ]]; then
     _cvsentries
-    compadd -fP "$qpref" -W "$pref" - $entries
+    compgen -W "$pref" -g "(${(j:|:)entries})"
   else
-    _files
+    _files -W "$pref"
   fi
 }
 
 _cvstargets_modified () {
   local qpref pref entries
-  _cvsprefix
+  _cvsprefix; compset -P '*/'
   if [[ -d ${pref}CVS ]]; then
     _cvsentries_modified
-    compadd -fP "$qpref" -W "$pref" - $entries
+    compgen -W "$pref" -g "(${(j:|:)entries})"
   else
-    _files
+    _files -W "$pref"
   fi
 }
 
 _cvsremovep () {
   local qpref pref entries
-  _cvsprefix
+  _cvsprefix; compset -P '*/'
   if [[ -d ${pref}CVS ]]; then
     _cvsentries
     setopt localoptions unset
     local omit
     omit=( ${pref}*(D:t) )
-    eval 'compadd -fP "$qpref" -W "$pref" - ${entries:#('${(j:|:)omit}')}' ||
+    eval 'compadd -fW "$pref" - ${entries:#('${(j:|:)omit}')}' ||
     _cvsdirs
   else
-    _files
+    _files -W "$pref"
   fi
 }
 
 _cvsaddp () {
   local qpref pref entries
-  _cvsprefix
+  _cvsprefix; compset -P '*/'
   if [[ -d ${pref}CVS ]]; then
     _cvsentries
     setopt localoptions unset
     local all omit
     all=( ${pref}*~${pref}CVS(D:t) )
-    omit=( $entries ${=cvsignore} )
+    omit=( CVS $entries ${=cvsignore} )
     [[ -r ~/.cvsignore ]] && omit=( $omit $(<~/.cvsignore) )
     [[ -r ${pref}.cvsignore ]] && omit=( $omit $(<${pref}.cvsignore) )
-    eval 'compadd -fP "$qpref" -W "$pref" - ${all:#('${(j:|:)omit}')}' ||
+    compgen -W "$pref" -g "*~*/(${(j:|:)omit})" ||
     _cvsdirs
   else
-    _files
+    _files -W "$pref"
   fi
 }