diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2000-04-12 15:24:55 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2000-04-12 15:24:55 +0000 |
commit | 63719320c32fc2a29fd58ea3bcb539baa6068c26 (patch) | |
tree | e1884233bcfbf44037aca18d9d49254ac619108b /Completion/User | |
parent | c7d8a2426f46f54cfd3125427e5b7f9177fa06ff (diff) | |
download | zsh-63719320c32fc2a29fd58ea3bcb539baa6068c26.tar.gz zsh-63719320c32fc2a29fd58ea3bcb539baa6068c26.tar.xz zsh-63719320c32fc2a29fd58ea3bcb539baa6068c26.zip |
10700: Andrej: Support Pyramid's internationalized manpaths.
Diffstat (limited to 'Completion/User')
-rw-r--r-- | Completion/User/_man | 43 |
1 files changed, 37 insertions, 6 deletions
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|)} |