Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: _man and manpath



If $MANPATH is set and different from $(manpath), _man will never get
the output of of manpath since $manpath is tied to $MANPATH.

With this patch, it will.

Index: Completion/Unix/Command/_man
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_man,v
retrieving revision 1.5
diff -u -r1.5 _man
--- Completion/Unix/Command/_man	10 Jan 2002 11:00:05 -0000	1.5
+++ Completion/Unix/Command/_man	31 May 2002 04:55:32 -0000
@@ -7,20 +7,24 @@
     _files || return 0
   fi
 
-  if (( ! $#manpath )); then
+  if (( ! $#_manpath )); then
     local mp
-    mp=($(manpath 2>/dev/null))
+    mp=( ${(s.:.)$(manpath 2>/dev/null)} )
     [[ "$mp" == *:* ]] && mp=( ${(s.:.)mp} )
-    manpath=( $mp )
+    if (( $#mp )); then
+      _manpath=( $mp )
+    elif (( $#manpath )); then
+      _manpath=( $manpath )
+    fi
   fi
 
-  (( $#manpath )) || manpath=( ${(s.:.)$(manpath 2>/dev/null)} ) ||
-      manpath=( /usr/man(-/) /(opt|usr)/(dt|share|X11R6|local)/(cat|)man(-/) )
+  (( $#_manpath )) ||
+      _manpath=( /usr/man(-/) /(opt|usr)/(dt|share|X11R6|local)/(cat|)man(-/) )
 
   # `sman' is the SGML manual directory for Solaris 7.
   # 1M is system administrator commands on SVR4
 
-  mrd=(${^manpath/\%L/${LANG:-En_US.ASCII}}/mandb(N))
+  mrd=(${^_manpath/\%L/${LANG:-En_US.ASCII}}/mandb(N))
 
   local sect
   if [[ $OSTYPE = solaris* ]]; then
@@ -34,10 +38,10 @@
   fi
 
   if [[ $sect = (<->*|1M|l|n) || $sect = \(*\|*\) ]]; then
-    dirs=( $^manpath/(sman|man|cat)${~sect}/ )
+    dirs=( $^_manpath/(sman|man|cat)${~sect}/ )
     awk="\$2 == \"$sect\" {print \$1}"
   else
-    dirs=( $^manpath/(sman|man|cat)*/ )
+    dirs=( $^_manpath/(sman|man|cat)*/ )
     awk='{print $1}'
   fi
   if zstyle -t ":completion:${curcontext}:manuals" separate-sections; then



Messages sorted by: Reverse Date, Date, Thread, Author