<div dir="auto">UNIX man pages were almost universally accurate, complete, and succinct. <div dir="auto"><br></div><div dir="auto">That third admirable attribute gave me the opportunity to write <i>Advanced UNIX Programming</i>. </div><div dir="auto"><br></div><div dir="auto">So I wasn't complaining.</div><div dir="auto"><br></div><div dir="auto">Marc</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 18, 2024, 11:33 PM Steffen Nurpmeso <<a href="mailto:steffen@sdaoden.eu">steffen@sdaoden.eu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Douglas McIlroy wrote in<br>
<<a href="mailto:CAKH6PiXaYGEUmVFRX99eM6s3%2BnTJrbVvkuBRa-Awhhd69xzJrg@mail.gmail.com" target="_blank" rel="noreferrer">CAKH6PiXaYGEUmVFRX99eM6s3+nTJrbVvkuBRa-Awhhd69xzJrg@mail.gmail.com</a>>:<br>
|I just revisited this ironic echo of Mies van der Rohe's aphorism, "Less is<br>
|more".<br>
| % less --help | wc<br>
| 298<br>
|Last time I looked, the line count was about 220. Bloat is self-catalyzing.<br>
<br>
I do not buy that.<br>
You are working on Windows and in the meantime have switched to<br>
one of those graphical browser monsters (i think) where each<br>
instance has more code active than the entire Unix history<br>
altogether.<br>
<br>
less(1) can now Unicode, and that is not as easy with ISO/POSIX as<br>
it was on Plan9 for example which simply goes UTF-8 and has some<br>
(smart) lookup tables (now in go, more or less, last i looked),<br>
but that is not the whole picture of it.<br>
<br>
It can those ANSI / ISO 6429 color sequences that everybody wants,<br>
as you have them everywhere, even GNU's yacc, bison.<br>
<br>
The OpenBSD people took a port done by an OpenSolaris (i think,<br>
that scene, anyhow) guy, and together they stripped it down<br>
massively.<br>
<br>
But i do not use it, because after almost exactly a decade i got<br>
upstreamed to Nudelman's less(1) the necessary patches to have<br>
active hyperlinks on the terminal, in a normal Unix (roff mdoc)<br>
manual. (These work via OSC-8 escape sequences; it was a "15<br>
files changed, 601 insertions(+), 9 deletions(-)" patch, which<br>
included careful quoting of file paths etc. for man(1) openings<br>
(ie, such code gets lengthy), but he did it differently a bit, and<br>
left off some things i wanted, included others (good), but if you<br>
use --mouse with his one then you have a real browser feeling.<br>
I have problems with --mouse, unfortunately, because when used you<br>
can no longer copy+paste -- he would need to add clipboard control<br>
in addition i'd say.., adding even more code.)<br>
<br>
You know, it may be viable for some tools, but for others, .. not.<br>
You say it yourself in your "A Research UNIX Reader": "Electronic<br>
mail was there from the start. Never satisfied with its exact<br>
behavior, everybody touched it at one time or another".<br>
In the meantime the IETF went grazy and produced masses of<br>
standards, and unfortunately each one adds a little bit that needs<br>
to be addressed differently, and all that needs documentation.<br>
Now mail is an extreme example.<br>
<br>
And almost a quarter of a century ago i wrote a small pager that<br>
even had a clock, and it required less CPU on a day with some<br>
scrolling than less/ncurses for a one time scroll through the<br>
document. But that pager is history, and less is still there,<br>
running everywhere, and being used by me dozens to hundreds time<br>
a day. Also with colours, with searching, and now also with<br>
<br>
^O^N ^On * Search forward for (N-th) OSC8 hyperlink.<br>
^O^P ^Op * Search backward for (N-th) OSC8 hyperlink.<br>
^O^L ^Ol Jump to the currently selected OSC8 hyperlink.<br>
<br>
And prepared mdoc manuals can now display on a normal Unix<br>
terminal in a normal (actively OSC-8 supporting $PAGER) a TOC (at<br>
will, with links), and have external (man:, but also http: etc;<br>
man is built into less(1) -- yay!) links, too.<br>
For example here ∞ is an external, and † are internal links:<br>
<br>
The OpenSSL program ciphers(1)∞ should be referred to when creating a<br>
custom cipher list. Variables of interest for TLS in general are<br>
tls-ca-dir†, tls-ca-file†, tls-ca-flags†, tls-ca-no-defaults†,<br>
tls-config-file†, tls-config-module†, tls-config-pairs<br>
<br>
So ^O^L on that ciphers(1) opens a new man(1)ual instance.<br>
For all this functionality a program with 221K bytes is small:<br>
<br>
221360 May 18 22:13 ...less*<br>
<br>
Also it starts up into interactive mode with --help.<br>
So you could have "full interactivity" and colours and mouse, and<br>
configurability to a large extend, which somehow has to be<br>
documented, in just 221 K bytes.<br>
<br>
I give in in that i try to have --help/-h and --long-help/-H, but<br>
sometimes that -h is only minimal, because a screenful of data is<br>
simply not enough to allow users to have a notion.<br>
<br>
So less could split the manual into a less.1 and a less-book.7.<br>
The same is true for bash, for sure. (And for my little mailer.)<br>
But things tend to divert, and it is hard enough to keep one<br>
manual in sync with the codebase, especially if you develop<br>
focused and expert-idiotized in a one man show.<br>
<br>
|What prompted me to look was another disheartening discovery. The "small<br>
|special tool" Gnu diff has a 95-page manual! And it doesn't cover the<br>
|option I was looking up (-h). To be fair, the manual includes related<br>
|programs like diff3(1), sdiff(1) and patch(1), but the original manual for<br>
|each fit on one page.<br>
--End of <CAKH6PiXaYGEUmVFRX99eM6s3+nTJrbVvkuBRa-Awhhd69xzJrg@mail.gmail\<br>
.com><br>
<br>
--steffen<br>
|<br>
|Der Kragenbaer, The moon bear,<br>
|der holt sich munter he cheerfully and one by one<br>
|einen nach dem anderen runter wa.ks himself off<br>
|(By Robert Gernhardt)<br>
</blockquote></div>