[TUHS] earliest Unix roff

Steffen Nurpmeso steffen at sdaoden.eu
Fri Sep 20 23:41:37 AEST 2019

John P. Linderman wrote in <CAC0cEp-CVPb-OhcDHKfbj5nMoiYjkAOEZnEOf4Sv5Zr\
zTnDKTg at mail.gmail.com>:
 |In the early 70's, Marc Rochkind recommended re-reading the entire \
 |UNIX manual yearly. Back then, it was doable. Now it is probably growing \
 |faster than I can read.

It is however astonishing by how much even the POSIX standard
changes, as a lowest common denominator.  The IETF produces an
overwhelming amount of drafts and RFCs, which need to or should be
adhered to, affecting functionality and documentation.  So much
more time would be needed, for so many things.

 |There is a place for a concise description of each command, and a separate \
 |place for tutorials and conference papers.

Unfortunately not except in FreeBSD and NetBSD, which carry some
in /usr/share/doc, like the BSD mail manual.  You need to find it
here, and i wonder how many of those who have grown up in the
Linux world would find them at all.  (Or even do a search.)
They are not really updated in addition.  Though FreeBSD added
a clang entry, the time when developers invented ideas and
implementations, and documented those under /usr/share/doc are
over even there.  This is really sad.  Infrequently and getting
rarer i reread those, for example "Rethinking /dev and devices in
the UNIX kernel" about the introduction of devfs, which i still
find great.

It is great to hear you who is responsible that the "load of
options reached 17 in v9", whereas i maintain a fork of the
program which causes "old UNIX hands [to] groan at the monstrous
headers that come from latter-day mailers and at the fatness of
their manuals" (citing A Research UNIX Reader).

To offer a solution i could add another layer in between -h output
and full reference manual, and create a heavily minimized version
of the manual, renaming that one to -reference.1 maybe, and
prominently mention the reference.
Also, easy it is to concisely document that -n chooses a numeric
sort, and -r reverses the result order, but 

   -b addr, --bcc=..
          Send a blind carbon copy to recipient addr.

can result in dead-end or otherwise misunderstood situations
unless you really know that particular manual is stripped down,
and the reference manual makes this

   -b addr, --bcc=..
          Send a blind carbon copy to recipient addr, if the set[268]ting of
          expandaddr[408], one of the INTERNAL VARIABLES[29], allows; the
          ‘shquote’ expandaddr[408] flag is supported.  The option may be
          used multiple times.  Also see the section On sending mail, and
          non-interactive mode[7].

(Here, expandaddr has not been invented by me.)
But if you have the reference a bit present in your head, then

  #?0|kent:nail$ .obj/s-nail -h|grep -- -b
         [:-a attachment:] [:-b bcc-addr:] [:-c cc-addr:]
  . -b, -c, -r, -T, to-addr: ex at am.ple or '(Lovely) Ex <am at p.le>'

should also be sufficient.  Blasting the concise complexity of
a mathematical formula,

   -a file[=input-charset[#output-charset]], --attach=..
          Attach file to the message (for compose mode opportunities refer
          to ~@[317] and ~^[319]).

needs to backed as

   -a file[=input-charset[#output-charset]], --attach=..
          Attach file to the message (for compose mode opportunities refer
          to ~@[317] and ~^[319]).  Filename transformations[26] (also see
          file[193]) will be performed, except that shell variables are not
          expanded.  Shall file not be accessible but contain a ‘=’ charac‐
          ter, then anything before the last ‘=’ will be used as the file‐
          name, anything thereafter as a character set specification.

          If an input character set is specified, but no output character
          set, then the given input character set is fixed as-is, and no
          conversion will be applied; giving the empty string or the special
          string hyphen-minus ‘-’ will be treated as if ttycharset[590] has
          been specified (the default).

          If an output character set has also been given then the conversion
          will be performed exactly as specified and on-the-fly, not consid‐
          ering the file type and content.  As an exception the empty string
          or hyphen-minus ‘-’, select the default conversion algorithm (see
          Character sets[14]): no conversion is performed on-the-fly, file
          and its contents will be MIME-classified (HTML mail and MIME
          attachments[9], The mime.types files[35]); Only this mode is sup‐
          ported without support for character set conversions
          (features[411] does not mention ‘+iconv’).

for people to get at least enough of the picture to use the
option.  (Note the actual algorithm is documented somewhere else.)

  #?0|kent:nail$ .obj/s-nail -h|grep -- '-a '
           [:-a attachment:] [:-b bcc-addr:] [:-c cc-addr:]
  . -a attachment[=input-charset[#output-charset]]

But normally, all you say is "-a file" and the thing is fine
by default without just doing anything at all.  That is how it
should be.

Dear John P. Linderman, be warned that the above output of -b is
new, it was "-[bcrT]:" before, for which to understand regular
expressions or file patterns are implied.  I have given you credit
for the change.

|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)
-------------- next part --------------
An embedded message was scrubbed...
From: "John P. Linderman" <jpl.jpl at gmail.com>
Subject: Re: [TUHS] earliest Unix roff
Date: Thu, 19 Sep 2019 16:38:51 -0400
Size: 16566
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20190920/705ce1f6/attachment.mht>

More information about the TUHS mailing list