From 63719320c32fc2a29fd58ea3bcb539baa6068c26 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Wed, 12 Apr 2000 15:24:55 +0000 Subject: 10700: Andrej: Support Pyramid's internationalized manpaths. --- ChangeLog | 4 ++++ Completion/User/_man | 43 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4eba11b0a..9ff8f9a17 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,10 @@ * 10701: Completion/Builtins/_bindkey, Doc/Zsh/mod_zle.yo: use _arguments for bindkey completion and fix typo in docs +2000-04-12 Bart Schaefer + + * 10700: Andrej: Completion/User/_man: Support for Pyramid. + 2000-04-12 Sven Wischnowsky * 10699: Src/parse.c, Src/zsh.h: compare mapped zwc files using diff --git a/Completion/User/_man b/Completion/User/_man index 8204fba0b..56c1bab09 100644 --- a/Completion/User/_man +++ b/Completion/User/_man @@ -1,11 +1,42 @@ -#defcomp man +#compdef man apropos whatis + setopt localoptions rcexpandparam -local rep -if [[ $2 = (<->*|ln) ]]; then - rep=( $manpath/(man|cat)$2/$PREFIX*$SUFFIX.<->*(N:t:r) ) +local rep expl star approx mrd + +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(-/N) /(opt|usr)/(dt|share|X11R6|local)/(cat|)man(-/N) ) + +# `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.<->*(N:t) ) + (($#mrd)) && rep[$#rep+1]=($(awk "\$2 == $words[2] {print \$1}" $mrd)) else - rep=( $manpath/(man|cat)*/$PREFIX*$SUFFIX.<->*(N:t:r) ) + rep=( $manpath/(sman|man|cat)*/${~approx}$PREFIX${~star}$SUFFIX.<->*(N:t) ) + (($#mrd)) && rep[$#rep+1]=($(awk '{print $1}' $mrd)) fi -(( $#rep )) && compadd -m $rep + +(( $#rep )) && _wanted manuals expl 'manual page' \ + compadd - ${rep%%.[^.]##(.gz|.bz2|)} -- cgit 1.4.1