Hi James, At 2025-08-27T12:20:26-0400, James Cloos wrote: > >>>>> "IS" == Ingo Schwarze <schwa...@usta.de> writes: > > JC>> I hope none of you are suggesting removing support for, eg: > JC>> man ./foo.5 > > IS> We will remove exactly that. > > harm w/o value. [...] > i don't use mandoc often. but i doubt i'm the only one with this > muscle mmory. [...] > obviously i wrote the word posix as an abbreviation for unix and its > derivatives. whatever the austin group has published is not relevant. > > decades of use, however, is relevant. > > IS> What's wrong with typing > IS> man -l foo.5 > > having to run man man to remember it. > > whereas specifying a path is the norm.
I dispute that. Typing the name of a man page topic[1] has been the norm since 1972. http://bitsavers.informatik.uni-stuttgart.de/pdf/att/unix/2nd_Edition/UNIX_Programmers_Manual_2ed_Jun72.pdf [...] > i haven't used a bsd box as my primary since before that. but i've > used man $path since the 90s. > > not every month. > > but the other likely to recall option is calling grog to see what > groff options are required and then a suitable pipe chain. > > to remember -l given how infrequently it is required and given the > extant muscle memory is unlikely. > > and there is never value in eliminating something which has been > around for decades and is effortless to maintain. > > i can't be the only one who is used to the current support. on any > kernel or dist. > > the discussion ought to be much more widespread before changes are > made. The problem with mandoc(1) and man(1) keeping the status quo is that the name space in which you're searching for a page is ambiguous. The `-l` option disambiguates it, and selects the file system as the name space. The traditional name space for man page resolution, I would term the "topic" name space. Ingo has pointed out that a slash is actually encountered in real-world man page topic names. (I long knew it was "legal", but didn't know any actual pages exercised this freedom, and had supposed that one could decide a name space based on the presence of a slash. Ingo's exhibits have overturned my supposition.) Thus, given a command: $ man foo/bar when a page listing "foo/bar" as a topic, _and_ a file ./foo/bar relative to your current working directory are both extant, which one wins? Where is the rule written down? Is the ordering intuitive? Why or why not? You could write a personal "man" wrapper as a shell function to restore the functionality you don't want to lose, calling man(1) (or mandoc(1)) with or without the `-l` option as you desire. The fact that such a wrapper would have to decide which name space it searches first motivates removal of this "DWIM" feature, because if you were to survey man(1) users, I predict that you would find consensus lacking on what they "M". But, I'll wager, most of them don't know that. They know which resolution order they expect and have come to rely upon, and would express astonishment that anyone would expect the opposite one. Implicit, unexamined assumptions are how a great many unproductive disagreements originate and are sustained. Regards, Branden [1] I admit that "topic" is my own invention. groff_man(7) presents the distinction between a "title" and a "topic". groff_man(7): Document structure macros Document structure macros organize a man page’s content. All of them break the output line. TH (title heading) identifies the document as a man page and configures the page headers and footers. ... .SH [heading‐text] Set heading‐text as a section heading. ... The content of heading‐text and ordering of sections follows a set of common practices, as does much of the layout of material within sections. For example, a section called “Name” or “NAME” must exist, must be the first section after the TH call, and must contain only text of the form topic[, another‐topic]... \- summary‐description for tools like makewhatis(8) or mandb(8) to index them. You may observe that I depart deliberately from Second Edition Unix terminology. I can look up the topic "strncmp" with man(1) even though the page documenting it is in a file named 'strcmp.3.gz' (without the "n" infix), and the page "titles" in *roff parlance (headers and footers) do not mention "strncmp", because that term does not appear in the document's `TH` macro call. .TH STRCMP 3 2020-04-11 "" "Linux Programmer's Manual" We do, however, locate it in the topic list of the "NAME" section. .SH NAME strcmp, strncmp \- compare two strings mandb(8) locates it similarly, and that is how it knows the correct page to give me when I ask for it.
signature.asc
Description: PGP signature