summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Unix/Command/_man7
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index dc06dbe50..87a462ef6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2016-08-05 Daniel Shahaf <d.s@daniel.shahaf.name>
+ * 38993: Completion/Unix/Command/_man: Drop (b): it's incorrect
+ when $sect contains '|'.
+
* 38991: Src/exec.c, Test/C04funcdef.ztst: Make 'whence -v
autoloaded-function' shows the defining filename.
diff --git a/Completion/Unix/Command/_man b/Completion/Unix/Command/_man
index e892bb263..ef17ad8ee 100644
--- a/Completion/Unix/Command/_man
+++ b/Completion/Unix/Command/_man
@@ -37,7 +37,10 @@ _man() {
mrd=(${^_manpath/\%L/${LANG:-En_US.ASCII}}/mandb(N))
- # $sect is from the command line, the "3p" in "man 3p memcpy"
+ # $sect is from the command line, the "3p" in "man 3p memcpy".
+ # It may also be a |-joined (and later in the code "()"-enclosed) list of
+ # section names.
+ # TODO: disentangle this to always be an array.
# $sect_dirname is from the filesystem, the "3" in "/usr/share/man/man3"
# These are used by _man_pages
local sect sect_dirname
@@ -117,7 +120,7 @@ _man_pages() {
fi
pages=( ${(M)dirs:#*$sect_dirname/} )
- compfiles -p pages '' '' "$matcher" '' dummy "*${(b)sect}*"
+ compfiles -p pages '' '' "$matcher" '' dummy "*${sect}*"
pages=( ${^~pages}(N:t) )
(($#mrd)) && pages[$#pages+1]=($(awk $awk $mrd))