* Distributed Completion/ structure and compinit @ 2001-04-25 15:44 Bart Schaefer 2001-04-26 7:11 ` Sven Wischnowsky 0 siblings, 1 reply; 4+ messages in thread From: Bart Schaefer @ 2001-04-25 15:44 UTC (permalink / raw) To: zsh-workers The doc for compinit says: For incomplete installations, if 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 _compdir to the search path. Furthermore, if the directory in question ends in the path segment Base, or has a subdirectory named Base, compinit will add all subdirectories of the directory where Base is to the path: this allows the functions to be in the same format as in the zsh source distribution. This doesn't quite work any more. It handles one level of subdirectories, as in an install with --enable-function-subdirs, but not two levels of subdirectories as in the source. Also, I'm curious why this line in compaudit was commented out: ### [[ -d $_compdir/../Base ]] && _compdir=${_compdir:h} -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Distributed Completion/ structure and compinit 2001-04-25 15:44 Distributed Completion/ structure and compinit Bart Schaefer @ 2001-04-26 7:11 ` Sven Wischnowsky 2001-04-26 8:10 ` Bart Schaefer 0 siblings, 1 reply; 4+ messages in thread From: Sven Wischnowsky @ 2001-04-26 7:11 UTC (permalink / raw) To: zsh-workers Bart Schaefer wrote: > The doc for compinit says: > > For incomplete installations, if 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 _compdir to the search > path. Furthermore, if the directory in question ends in the path > segment Base, or has a subdirectory named Base, compinit will add all > subdirectories of the directory where Base is to the path: this allows > the functions to be in the same format as in the zsh source > distribution. > > This doesn't quite work any more. It handles one level of subdirectories, > as in an install with --enable-function-subdirs, but not two levels of > subdirectories as in the source. Intentionally. I wanted it to be able to work in a installation-like setup, thinking that those who work with the source-form of the completion system know how to set up their $fpath properly. Do you want to say that we should change the tests to also look for, say, $_compdir/Base/Core and if that exists, add `$_compdir/*/*(/)'? > Also, I'm curious why this line in compaudit was commented out: > > ### [[ -d $_compdir/../Base ]] && _compdir=${_compdir:h} I thought that this once was intended to cope with the case that $_compdir is set to the directory that (before the move) contained the comp* functions. There the thing above made sense. But since nowadays the comp* functions are in the top-level directory itself it didn't seem to make sense to look for certain sub-directories of the parent directory of $_compdir. Was I mistaken? Bye Sven -- Sven Wischnowsky wischnow@informatik.hu-berlin.de ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Distributed Completion/ structure and compinit 2001-04-26 7:11 ` Sven Wischnowsky @ 2001-04-26 8:10 ` Bart Schaefer 2001-04-26 13:01 ` Sven Wischnowsky 0 siblings, 1 reply; 4+ messages in thread From: Bart Schaefer @ 2001-04-26 8:10 UTC (permalink / raw) To: zsh-workers On Apr 26, 9:11am, Sven Wischnowsky wrote: } Subject: Re: Distributed Completion/ structure and compinit } } Bart Schaefer wrote: } } > The doc for compinit says: } > } > subdirectories of the directory where Base is to the path: this allows } > the functions to be in the same format as in the zsh source } > distribution. } > } > This doesn't quite work any more. } } Do you want to say that we should change the tests to also look for, } say, $_compdir/Base/Core and if that exists, add `$_compdir/*/*(/)'? Either that, or we should fix the docs. Having it work for the source tree layout is helpful to developers, I think: No "make install" before trying out some change, just set _compdir and let compinstall figure it out. However, developers are also likely capable of setting the fpath manually, so it's not that big a deal. } > Also, I'm curious why this line in compaudit was commented out: } > } > ### [[ -d $_compdir/../Base ]] && _compdir=${_compdir:h} } } [...] since nowadays the comp* functions are in the top-level } directory itself it didn't seem to make sense to look for certain } sub-directories of the parent directory of $_compdir. Was I mistaken? No, that's OK, I just was curious. -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Distributed Completion/ structure and compinit 2001-04-26 8:10 ` Bart Schaefer @ 2001-04-26 13:01 ` Sven Wischnowsky 0 siblings, 0 replies; 4+ messages in thread From: Sven Wischnowsky @ 2001-04-26 13:01 UTC (permalink / raw) To: zsh-workers Bart Schaefer wrote: > ... > > Either that, or we should fix the docs. Having it work for the source > tree layout is helpful to developers, I think: No "make install" before > trying out some change, just set _compdir and let compinstall figure it > out. However, developers are also likely capable of setting the fpath > manually, so it's not that big a deal. Not tested, but should work. Bye Sven Index: Completion/compaudit =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/compaudit,v retrieving revision 1.2 diff -u -r1.2 compaudit --- Completion/compaudit 2001/04/02 13:04:04 1.2 +++ Completion/compaudit 2001/04/26 13:00:56 @@ -55,11 +55,11 @@ # 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 Index: Completion/compinstall =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/compinstall,v retrieving revision 1.2 diff -u -r1.2 compinstall --- Completion/compinstall 2001/04/02 13:04:04 1.2 +++ Completion/compinstall 2001/04/26 13:00:57 @@ -190,7 +190,9 @@ __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 @@ 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 Index: Doc/Zsh/compsys.yo =================================================================== RCS file: /cvsroot/zsh/zsh/Doc/Zsh/compsys.yo,v retrieving revision 1.118 diff -u -r1.118 compsys.yo --- Doc/Zsh/compsys.yo 2001/04/26 12:13:37 1.118 +++ Doc/Zsh/compsys.yo 2001/04/26 13:00:59 @@ -142,9 +142,10 @@ 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. -- Sven Wischnowsky wischnow@informatik.hu-berlin.de ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2001-04-26 13:01 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2001-04-25 15:44 Distributed Completion/ structure and compinit Bart Schaefer 2001-04-26 7:11 ` Sven Wischnowsky 2001-04-26 8:10 ` Bart Schaefer 2001-04-26 13:01 ` Sven Wischnowsky
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/zsh/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).