zsh-workers
 help / color / mirror / code / Atom feed
* Commit those _man patches?
@ 2001-06-20 18:01 Bart Schaefer
  2001-06-21 12:51 ` Sven Wischnowsky
  0 siblings, 1 reply; 2+ messages in thread
From: Bart Schaefer @ 2001-06-20 18:01 UTC (permalink / raw)
  To: zsh-workers

Sven sent a patch for an improvement to _man in 14633, with a follow-up in
14659.  I just noticed that they've never been committed.

-- 
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] 2+ messages in thread

* Re: Commit those _man patches?
  2001-06-20 18:01 Commit those _man patches? Bart Schaefer
@ 2001-06-21 12:51 ` Sven Wischnowsky
  0 siblings, 0 replies; 2+ messages in thread
From: Sven Wischnowsky @ 2001-06-21 12:51 UTC (permalink / raw)
  To: zsh-workers

Bart Schaefer wrote:

> Sven sent a patch for an improvement to _man in 14633, with a follow-up in
> 14659.  I just noticed that they've never been committed.

I had completely forgotten about those.  I'm going to commit them to the
development branch now.  If nobody sees any bad side effects we can
consider applying them to 4.0.2, too.


Bye
  Sven

Index: Completion/Unix/Command/_man
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_man,v
retrieving revision 1.1
diff -u -r1.1 _man
--- Completion/Unix/Command/_man	2001/04/02 11:57:04	1.1
+++ Completion/Unix/Command/_man	2001/06/21 12:51:32
@@ -1,47 +1,62 @@
 #compdef man apropos whatis
 
-local rep expl star approx mrd
+_man() {
+  local dirs expl mrd awk
 
-if [[ $service == man ]] && (( $words[(I)-l] + $words[(I)--local-file] )); then
-  _files || return 0
-fi
-
-if [[ $compstate[pattern_match] != [^*] ]]; then
-  # If a string other than *, we just want correction, so no `*'.
-  star='*'
-fi
-
-if [[ -n $_comp_correct ]]; then
-  # If this is set, we are correcting with this many approximations.
-  approx="(#a${_comp_correct})"
-fi
-
-if (( ! $#manpath )); then
-  local mp
-  mp=($(manpath 2>/dev/null))
-  [[ "$mp" == *:* ]] && mp=( ${(s.:.)mp} )
-  manpath=( $mp )
-fi
-
-(( $#manpath )) || manpath=( ${(s.:.)$(manpath 2>/dev/null)} ) ||
-    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))
-if [[ $words[2] = (<->*|1M|l|n) ]]; then
-  rep=(
-  $manpath/(sman|man|cat)${words[2]}/${~approx}$PREFIX${~star}$SUFFIX.*(:t) )
-  (($#mrd)) && rep[$#rep+1]=($(awk "\$2 == \"$words[2]\" {print \$1}" $mrd))
-else
-  rep=( $manpath/(sman|man|cat)*/${~approx}$PREFIX${~star}$SUFFIX.*(:t) )
-  (($#mrd)) && rep[$#rep+1]=($(awk '{print $1}' $mrd))
-fi
-
-
-# Remove any compression suffix, then remove the minimum possible string
-# beginning with .<->: that handles problem cases like files called
-# `POSIX.1.5'.
-(( $#rep )) && _wanted manuals expl 'manual page' \
-    compadd - ${${rep%%.(bz2|z|gz|Z)}%.<->*}
+  if [[ $service == man ]] && (( $words[(I)-l] + $words[(I)--local-file] )); then
+    _files || return 0
+  fi
+
+  if (( ! $#manpath )); then
+    local mp
+    mp=($(manpath 2>/dev/null))
+    [[ "$mp" == *:* ]] && mp=( ${(s.:.)mp} )
+    manpath=( $mp )
+  fi
+
+  (( $#manpath )) || manpath=( ${(s.:.)$(manpath 2>/dev/null)} ) ||
+      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))
+
+  if [[ $words[2] = (<->*|1M|l|n) ]]; then
+    dirs=( $^manpath/(sman|man|cat)${words[2]}/ )
+    awk="\$2 == \"$words[2]\" {print \$1}"
+  else
+    dirs=( $^manpath/(sman|man|cat)*/ )
+    awk='{print $1}'
+  fi
+
+  _wanted manuals expl 'manual page' _man_pages
+}
+
+_man_pages() {
+  local matcher pages dummy
+
+  zparseopts -E M+:=matcher
+
+  if (( $#matcher )); then
+    matcher=( ${matcher:#-M} )
+    matcher="$matcher"
+  else
+    matcher=
+  fi
+
+  pages=( $dirs )
+  compfiles -p pages '' '' "$matcher" '' dummy '*'
+
+  pages=( $~pages(:t:r) )
+
+  (($#mrd)) && pages[$#pages+1]=($(awk $awk $mrd))
+
+  # Remove any compression suffix, then remove the minimum possible string
+  # beginning with .<->: that handles problem cases like files called
+  # `POSIX.1.5'.
+
+  compadd "$@" - ${pages%.<->*}
+}
+
+_man "$@"

-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-06-21 12:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-20 18:01 Commit those _man patches? Bart Schaefer
2001-06-21 12:51 ` 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).