On 5/25/07, Frank Küster <[EMAIL PROTECTED]> wrote:
Hi all, with teTeX, I've been using "texdoc -s" a lot. With a full texlive install, this is hardly usable, because it runs "find" over all $TEXMF/doc trees, which takes ages. Of course if you use it a second time, it's much faster as long as the directories are cached, but you never want to use it the first time, not with utilities like "locate" present on your system.
I not sure what you mean. Your script just looks in the last texmf-tree. The reason for using TEXDOCS is to ensure that all the $TEXMF/doc trees are searched. Unfortunately, kpsewhich --expand-path='$TEXDOCS' gives directories under the top-level "doc" directory.
I suggest that "texdoc -s" should use the ls-R database, just as usual texdoc does. It's hard, however, to get the exactly same result as the current behavior only with shell scripting, because of the format of the ls-R database. The approach I took was to search for directories that match first (that makes long listings more readable, anyway), and for non-directory files afterwards. The attached patch does that, except that I don't know whether tree=${database%ls-R} is portable (would have to use echo | sed instead). Comments?
I like that it lists the directories (I've been using a version hacked to add a "-d" option that only looks for directories). The loop to construct lsR_files: OLDIFS=$IFS IFS=':' for path in `kpsewhich --expand-path='$TEXMF'`; do lsR_files=$(eval TEXMFDBS=\$path kpsewhich ls-R) done IFS=$OLDIFS saves only the last one. Do you want to exclude the other trees, or did you mean: lsR_files="$lsR_files $(env TEXMFDBS=$path kpsewhich ls-R)" There are still performance problems. Try to find the latin modern docs: "texdoc -s lmodern" doesn't help, but "texdoc -s lm" takes much too long because the last kpathsea search is run for every lm*.tfm file! What is needed is a way to select only the shortest prefixes from "kpsewhich --expand-path='$TEXDOCS'" so that find isn't searching the same places over and over: $ kpsewhich --expand-path='$TEXDOCS' | tr ':' ' ' | wc 1 1630 110497 -- George N. White III <[EMAIL PROTECTED]> Head of St. Margarets Bay, Nova Scotia