diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Completion/Unix/Command/_man | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 36d1fb608..eee877101 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-09-07 Danek Duvall <duvall@comfychair.org> + + * 39194: Completion/Unix/Command/_man: _man (Solaris): Ignore + man-index. Support multiple sections in the -s flag's argument. + 2016-09-07 Oliver Kiddle <opk@zsh.org> * unposted: Completion/Unix/Command/_rm: fix to use ;| diff --git a/Completion/Unix/Command/_man b/Completion/Unix/Command/_man index ae6ac38cc..b2aaeaf7e 100644 --- a/Completion/Unix/Command/_man +++ b/Completion/Unix/Command/_man @@ -46,6 +46,7 @@ _man() { local sect sect_dirname if [[ $OSTYPE = solaris* ]]; then sect=${${words[(R)-s*]#-s}:-$words[$words[(i)-s]+1]} + sect="${sect//,/|}" elif [[ -n ${sect:=$words[$words[(i)-S]+1]} || -n ${sect:=$MANSECT} ]]; then sect="${sect//:/|}" sect="${sect//,/|}" @@ -67,6 +68,8 @@ _man() { dirs=( $^_manpath/(sman|man|cat)*/ ) awk='{print $1}' fi + # Solaris 11 and on have a man-index directory that doesn't contain manpages + dirs=( ${dirs:#*/man-index/} ) if [[ $OSTYPE = solaris* && ( $words[CURRENT] = -s* || $words[CURRENT-1] == -s ) ]]; then [[ $words[CURRENT] = -s* ]] && compset -P '-s' sects=( ${(o)${dirs##*(man|cat)}%/} ) |