diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Completion/compaudit | 8 | ||||
-rw-r--r-- | Completion/compinstall | 14 | ||||
-rw-r--r-- | Doc/Zsh/compsys.yo | 7 |
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. |