In https://minnie.tuhs.org/pipermail/tuhs/2020-January/019955.html ,
Brian Walden wrote (which looks like a reliable source to me):
"GWRL stands for Gottfried W. R. Luderer, the author of cut(1) and
paste(1), probably around 1978. Those came either from PWB or USG,
as he worked with, or for, Berkley Tague. Thus they made their way
into AT&T commercial UNIX, first into System III and the into System
V, and that's why they are missing from early BSD releases as they
didn't get into Research UNIX until the 8th Edition.
[...]
I knew Dr. Luderer [...]
I also briefly worked for Berk when he was the department head
for 45263 in Whippany Bell Labs before moving to Murray Hill."
Omission pointed out by daniel@.
Joint work with jsg@.
OK jsg@ daniel@.
__dead void usage, return from main and return is not a function,
err(1, NULL) after malloc failure, and garbage collect (void) casts
on functions that usually do not need return value checks
In part based on a diff from Lauri Tirkkonen <lotheac at iki dot fi>.
While here, significantly simplify sequential().
No objection when shown on tech@.
by Redouan Ait Mallouk <raitmallouk at gmail dot com>.
The paste(1) utility allows two equivalent solutions for many tasks
involving only one input stream; while here, make that more obvious
by always showing both solutions.
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms
more appropriate than C strings. Now paste won't die if it encounters null
characters. If the last line in the stream does not contain a newline, we now
say "incomplete line" instead of lying about "line too long". fgetln() uses
realloc, so now we're not limited to POSIX_LINE_MAX.
- remove arguments from .Os macros
- remove arguments from .Nm macros, where appropriate
- some more Dq/Sq/Ql insanity
- still lots to do in the usr.bin tree... :/