summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Completion/compaudit8
-rw-r--r--Completion/compinstall14
-rw-r--r--Doc/Zsh/compsys.yo7
4 files changed, 23 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index bbb19d4d4..4889ec742 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2001-04-26 Sven Wischnowsky <wischnow@zsh.org>
+ * 14107: Completion/compaudit, Completion/compinstall,
+ Doc/Zsh/compsys.yo: handle sub-sub-directories of $_compdir as
+ in the CVS-layout
+
* 14105: Completion/Base/Utility/_arguments,
Completion/Base/Utility/_guard,
Completion/X/Utility/_x_arguments,
diff --git a/Completion/compaudit b/Completion/compaudit
index 9cab88bbf..f03949822 100644
--- a/Completion/compaudit
+++ b/Completion/compaudit
@@ -55,11 +55,11 @@ if [[ -n $_compdir ]]; then
# Too few files: we need some more directories, or we need to check
# that all directories (not just Base) are present.
_i_addfiles=()
- if [[ $_compdir = */Base ]]; then
- # Add all the Completion subdirectories
- _i_addfiles=(${_compdir:h}/*(/))
+ if [[ -d $_compdir/Base/Core ]]; then
+ # Add all the Completion subdirectories (CVS-layout)
+ _i_addfiles=(${_compdir}/*/*(/))
elif [[ -d $_compdir/Base ]]; then
- # Likewise
+ # Likewise (installation-layout)
_i_addfiles=(${_compdir}/*(/))
fi
for _i_line in {1..$#i_addfiles}; do
diff --git a/Completion/compinstall b/Completion/compinstall
index 971816ea8..b7b4a8412 100644
--- a/Completion/compinstall
+++ b/Completion/compinstall
@@ -190,7 +190,9 @@ __ci_set_compdir() {
__ci_set_compdir $fpath
-if [[ -d $compdir/Base ]]; then
+if [[ -d $compdir/Base/Core ]]; then
+ subdirs=2
+elif [[ -d $compdir/Base ]]; then
subdirs=1
### compdir=${compdir:h}
fi
@@ -229,12 +231,18 @@ initialised completion in this shell, you should do so, then run
compinstall again."
fi
fi
- if [[ -n $subdirs ]]; then
+ if [[ $subdirs = 2 ]]; then
+ fpath_line=($compdir/[A-Z]*/[A-Z]*)
+ fpath_line="fpath=($fpath ${(F)fpath_line})"
+ elif [[ -n $subdirs ]]; then
fpath_line=($compdir/[A-Z]*)
fpath_line="fpath=($fpath ${(F)fpath_line})"
fi
else
- if [[ -n $subdirs ]]; then
+ if [[ $subdirs = 2 ]]; then
+ print "Completion directories $compdir/*/*
+are already in your \$fpath, good."
+ elif [[ -n $subdirs ]]; then
print "Completion directories $compdir/*
are already in your \$fpath, good."
else
diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo
index 96d0d010d..e89ac7cd2 100644
--- a/Doc/Zsh/compsys.yo
+++ b/Doc/Zsh/compsys.yo
@@ -142,9 +142,10 @@ contains the required directories for the standard functions.
For incomplete installations, if tt(compinit) does not find enough files
beginning with an underscore (fewer than twenty) in the search path, it
will try to find more by adding the directory tt(_compdir) to the search
-path. Furthermore, if the directory in question ends in the path segment
-tt(Base), or has a subdirectory named tt(Base), tt(compinit) will add all
-subdirectories of the directory where tt(Base) is to the path: this allows
+path. If that directory has a subdirectory named tt(Base), all
+subdirectories will be added to the path. Furthermore, if the subdirectory
+tt(Base) has a subdirectory named tt(Core), tt(compinit) will add all
+subdirectories of the subdirectories is to the path: this allows
the functions to be in the same format as in the tt(zsh) source
distribution.