Subject: bug#73656: 30.0.91; icomplete-vertical has no matches for M-x man RET chdir

From: Van Ly <[email-masked]>
Date: Fri, 25 Oct 2024 05:34:28 +0000

Stefan Monnier <[email-masked]> writes:

>> +                         (if (eq system-type 'berkeley-unix) "-l")
>

As gap filler, the following change does not misbehave on deb or netbsd.

+                         (if (eq system-type 'berkeley-unix) "-l" "")

> Maybe a more robust approach would be something like
>
>     (defvar man--apropos-args (...))
>
> where (...) is a piece of code which actually runs `man` with `-k` and
> with or without `-l` to try and determine which kind of `man` we're
> dealing with, but without making assumptions about which kind of `man`
> is installed on which kind of OS.
>

As probe to reveal switches available to "man", try "man -h" and
"man -?" but the output doesn't look helpful, perhaps a complete
solution has to probe the manpage for "man".

 . net$ man -h
 . man -h
 . Usage: man [-acw|-h] [-C cfg] [-M path] [-m path] [-S srch] [[-s] sect] name ...
 . Usage: man [-C file] -f command ...
 . Usage: man [-C file] -k keyword ...
 . Usage: man -p

 . net$ man -?
 . man -?
 . man: unknown option -- ?
 . Usage: man [-acw|-h] [-C cfg] [-M path] [-m path] [-S srch] [[-s] sect] name ...
 . Usage: man [-C file] -f command ...
 . Usage: man [-C file] -k keyword ...
 . Usage: man -p

 . deb$ man -h
 . Usage: man [OPTION...] [SECTION] PAGE...
 .
 .   -C, --config-file=FILE     use this user configuration file
 .   -d, --debug                emit debugging messages
 .   -D, --default              reset all options to their default values
 .       --warnings[=WARNINGS]  enable warnings from groff
 .
 .  Main modes of operation:
 .   -f, --whatis               equivalent to whatis
 .   -k, --apropos              equivalent to apropos
 .   -K, --global-apropos       search for text in all pages
 .   -l, --local-file           interpret PAGE argument(s) as local filename(s)
 .   -w, --where, --path, --location
 .                              print physical location of man page(s)
 .   -W, --where-cat, --location-cat
 .                              print physical location of cat file(s)
 .
 .   -c, --catman               used by catman to reformat out of date cat pages
 .   -R, --recode=ENCODING      output source page encoded in ENCODING
 .
 .  Finding manual pages:
 .   -L, --locale=LOCALE        define the locale for this particular man search
 .   -m, --systems=SYSTEM       use manual pages from other systems
 .   -M, --manpath=PATH         set search path for manual pages to PATH
 .
 .   -S, -s, --sections=LIST    use colon separated section list
 .
 .   -e, --extension=EXTENSION  limit search to extension type EXTENSION
 .
 .   -i, --ignore-case          look for pages case-insensitively (default)
 .   -I, --match-case           look for pages case-sensitively
 .
 .       --regex                show all pages matching regex
 .       --wildcard             show all pages matching wildcard
 .
 .       --names-only           make --regex and --wildcard match page names only,
 .                              not descriptions
 .
 .   -a, --all                  find all matching manual pages
 .   -u, --update               force a cache consistency check
 .
 .       --no-subpages          don't try subpages, e.g. 'man foo bar' => 'man
 .                              foo-bar'
 .
 .  Controlling formatted output:
 .   -P, --pager=PAGER          use program PAGER to display output
 .   -r, --prompt=STRING        provide the `less' pager with a prompt
 .
 .   -7, --ascii                display ASCII translation of certain latin1 chars
 .   -E, --encoding=ENCODING    use selected output encoding
 .       --no-hyphenation, --nh turn off hyphenation
 .       --no-justification,                              --nj   turn off justification
 .   -p, --preprocessor=STRING  STRING indicates which preprocessors to run:
 .                              e - [n]eqn, p - pic, t - tbl,
 . g - grap, r - refer, v - vgrind
 .
 .   -t, --troff                use groff to format pages
 .   -T, --troff-device[=DEVICE]   use groff with selected device
 .
 .   -H, --html[=BROWSER]       use www-browser or BROWSER to display HTML output
 .   -X, --gxditview[=RESOLUTION]   use groff and display through gxditview
 .                              (X11):
 .                              -X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12
 .   -Z, --ditroff              use groff and force it to produce ditroff
 .
 .   -?, --help                 give this help list
 .       --usage                give a short usage message
 .   -V, --version              print program version
 .
 . Mandatory or optional arguments to long options are also mandatory or optional
 . for any corresponding short options.
 .
 . Report bugs to [email-masked].

-- 
vl