The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] fmt(1): history, POSIX, -t, -c
@ 2020-05-28 12:34 markus schnalke
  2020-05-28 13:08 ` Rob Pike
                   ` (3 more replies)
  0 siblings, 4 replies; 31+ messages in thread
From: markus schnalke @ 2020-05-28 12:34 UTC (permalink / raw)
  To: tuhs

Hoi,

personally I use fmt(1) a lot for email formatting and such.
Typically I only use the `-w' parameter. Now someone asked me about
`-t' and `-c' of *GNU* fmt(1). I wasn't able to find good documentation
on them. The manpage only tells that they have to do with different
indentation for the first or first two lines. But what are the use
cases? How would source text for these parameters look like?

A look into the description and rationale sections of POSIX, which
often provides helpful information, was not possible because fmt(1)
is not part of POSIX (only fold(1) is). Why's that? Is it because
fmt(1) differs so much between Unix implementations? On BSD `-c'
centers text and `-t' sets tab widths. Plan 9 has none of these
options. But still, `-w' could have been standardized. Or was the
line filling algorithm different as well? How does fold(1) fit into
the picture?

Maybe you can answer some of these questions or give hints on where
I could find answers myself.


meillo

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 12:34 [TUHS] fmt(1): history, POSIX, -t, -c markus schnalke
@ 2020-05-28 13:08 ` Rob Pike
  2020-05-28 13:30 ` Clem Cole
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 31+ messages in thread
From: Rob Pike @ 2020-05-28 13:08 UTC (permalink / raw)
  To: markus schnalke; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 1536 bytes --]

I looked in my manuals. Fmt(1) first appears in Research 9th edition. I
have vague memories that it was written by Tom Duff, but a) I could
misremember and b) I also have vague memories it was not original. If both
memories are accurate, it's just a simple command written in two different
places, one being a distorted echo of another. Much like the make td wrote
at UofT after hearing about Stu's.

Nothing nefarious.

-rob


On Thu, May 28, 2020 at 10:41 PM markus schnalke <meillo@marmaro.de> wrote:

> Hoi,
>
> personally I use fmt(1) a lot for email formatting and such.
> Typically I only use the `-w' parameter. Now someone asked me about
> `-t' and `-c' of *GNU* fmt(1). I wasn't able to find good documentation
> on them. The manpage only tells that they have to do with different
> indentation for the first or first two lines. But what are the use
> cases? How would source text for these parameters look like?
>
> A look into the description and rationale sections of POSIX, which
> often provides helpful information, was not possible because fmt(1)
> is not part of POSIX (only fold(1) is). Why's that? Is it because
> fmt(1) differs so much between Unix implementations? On BSD `-c'
> centers text and `-t' sets tab widths. Plan 9 has none of these
> options. But still, `-w' could have been standardized. Or was the
> line filling algorithm different as well? How does fold(1) fit into
> the picture?
>
> Maybe you can answer some of these questions or give hints on where
> I could find answers myself.
>
>
> meillo
>

[-- Attachment #2: Type: text/html, Size: 1991 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 12:34 [TUHS] fmt(1): history, POSIX, -t, -c markus schnalke
  2020-05-28 13:08 ` Rob Pike
@ 2020-05-28 13:30 ` Clem Cole
  2020-05-28 13:47   ` Clem Cole
  2020-05-29  0:18   ` Greg 'groggy' Lehey
  2020-05-28 13:46 ` Clem Cole
  2020-05-31 12:35 ` [TUHS] fmt(1): history, POSIX, -t, -c markus schnalke
  3 siblings, 2 replies; 31+ messages in thread
From: Clem Cole @ 2020-05-28 13:30 UTC (permalink / raw)
  To: markus schnalke; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 9767 bytes --]

fmt was originally written by Kurt Shoens at UCB when he worked in Mail and
delivermail.


begin 644 fmt.tar.bz2
M0EIH.3%!62936:*IABH`#=1_U/TP`8!_____________W_]2B`0```(""&`:
M7W@`/<LW9;MGLU8&BJ4;";QW'84&T[ML`-`%6:M-%4#JA08@`!5*`(2LA;`Z
MU3"400"&1D)IM$-)^J;1)MHFFIYJ)HVICTI^D3U!H-`>IIH`&@T!-$9$R:3U
M%/4VH>4;4](PT0-&)H`-```````U,DRIZ!#U!M1D>B-#$;2&F(9-```80#0`
M:,)H"32B0*;*:GD$G@*'Z*>F3(U#U-J;1#TAZAH#)Z@T!ZFC1Z@`<```T#0T
M-#3(`-``!H!H:``!D``"1$$"`$9"&(TDS30IZ,4;4;4Q,&H,@8F@-&F@&RGY
M1?G$_-^6''G7ZU]8;A,V`VT\0%_TFD"/3Y8^MQV#;T(R3^!&;`F`*((#98)(
M4KO"=V(3&($G$>RP@@PD*Q6("451L[MJL5D1"**K$6`J,(@Q8B"+$8K$4!@_
M;M`VE:!8)HAN9R\O#W<AV>WVMVS1SG`9$5`Q2B`H+[:-E4,%OIM%%1C$0,,*
[ctcole-mac09:bsd-sources/usr.bin/fmt] ctcole% wc -l *uu
129 fmt.tar.bz2.uu
[ctcole-mac09:bsd-sources/usr.bin/fmt] ctcole% clear
[ctcole-mac09:bsd-sources/usr.bin/fmt] ctcole% cat *uu
begin 644 fmt.tar.bz2
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
2KZT3?11`_\7<D4X4)"BJ88J`
`
end

On Thu, May 28, 2020 at 8:41 AM markus schnalke <meillo@marmaro.de> wrote:

> Hoi,
>
> personally I use fmt(1) a lot for email formatting and such.
> Typically I only use the `-w' parameter. Now someone asked me about
> `-t' and `-c' of *GNU* fmt(1). I wasn't able to find good documentation
> on them. The manpage only tells that they have to do with different
> indentation for the first or first two lines. But what are the use
> cases? How would source text for these parameters look like?
>
> A look into the description and rationale sections of POSIX, which
> often provides helpful information, was not possible because fmt(1)
> is not part of POSIX (only fold(1) is). Why's that? Is it because
> fmt(1) differs so much between Unix implementations? On BSD `-c'
> centers text and `-t' sets tab widths. Plan 9 has none of these
> options. But still, `-w' could have been standardized. Or was the
> line filling algorithm different as well? How does fold(1) fit into
> the picture?
>
> Maybe you can answer some of these questions or give hints on where
> I could find answers myself.
>
>
> meillo
>

[-- Attachment #2: Type: text/html, Size: 13480 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 12:34 [TUHS] fmt(1): history, POSIX, -t, -c markus schnalke
  2020-05-28 13:08 ` Rob Pike
  2020-05-28 13:30 ` Clem Cole
@ 2020-05-28 13:46 ` Clem Cole
  2020-05-31 13:01   ` [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c) markus schnalke
  2020-05-31 12:35 ` [TUHS] fmt(1): history, POSIX, -t, -c markus schnalke
  3 siblings, 1 reply; 31+ messages in thread
From: Clem Cole @ 2020-05-28 13:46 UTC (permalink / raw)
  To: markus schnalke; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 1876 bytes --]

On Thu, May 28, 2020 at 8:41 AM markus schnalke <meillo@marmaro.de> wrote:

> A look into the description and rationale sections of POSIX, which
> often provides helpful information, was not possible because fmt(1)
> is not part of POSIX (only fold(1) is). Why's that?
>
It was not in SVID and nobody from the BSD side of the war at the time felt
it was worth arguing about to add it to the standard.  Basically, during
the writing of both POSIX.1 and .2, there was huge pressure from AT&T to
just take the SVID and try to make that the standard.  In fact, IIRC, Jim
Issack got AT&T to release the copyright on it and we used some of the
original AT&T troff source.

But many of us pushed back saying even if there was a marketing campaign:
"AT&T UNIX®, Consider it Standard" it was not hardly so.   And many BSD
additions (improvements) were taken into the standard.   For instance,
sockets was the prefered to networking interface, although to save face
AT&T managed to get the TLI allowed in as an alternative to sockets in the
first version of the network specification. (Funny, I don't know of a
FIPS-151 registered UNIX implementation that used TLI).

Remember, the primary driver for the POSIX work was for the ISV's - to make
it easier for them to create software that they could sell.
Early on, Heinz in particular, wanted an ABI, not an API (many of us,
myself in that camp) shouted him down.  Since those days, I've sometimes
wondered if we had earlier on figured out how to do that; maybe the UNIX
Wars would have worked out differently (but thats a different discussion).

Back to fmt(1), like you, I have used it for years, particularly in email.
I usually forked it from vi to paginate my message was what I did for years
until I finally switched from mh (actually the hm version) to the Gmail
interface as my MUI client.
Clem

[-- Attachment #2: Type: text/html, Size: 3138 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 13:30 ` Clem Cole
@ 2020-05-28 13:47   ` Clem Cole
  2020-05-28 16:08     ` Mary Ann Horton
  2020-05-29  0:18   ` Greg 'groggy' Lehey
  1 sibling, 1 reply; 31+ messages in thread
From: Clem Cole @ 2020-05-28 13:47 UTC (permalink / raw)
  To: markus schnalke; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 10252 bytes --]

Ouch sorry for the extra stuff -- cut/paste error which I did not realize
until after delivery.

On Thu, May 28, 2020 at 9:30 AM Clem Cole <clemc@ccc.com> wrote:

> fmt was originally written by Kurt Shoens at UCB when he worked in Mail
> and delivermail.
>
>
> begin 644 fmt.tar.bz2
> M0EIH.3%!62936:*IABH`#=1_U/TP`8!_____________W_]2B`0```(""&`:
> M7W@`/<LW9;MGLU8&BJ4;";QW'84&T[ML`-`%6:M-%4#JA08@`!5*`(2LA;`Z
> MU3"400"&1D)IM$-)^J;1)MHFFIYJ)HVICTI^D3U!H-`>IIH`&@T!-$9$R:3U
> M%/4VH>4;4](PT0-&)H`-```````U,DRIZ!#U!M1D>B-#$;2&F(9-```80#0`
> M:,)H"32B0*;*:GD$G@*'Z*>F3(U#U-J;1#TAZAH#)Z@T!ZFC1Z@`<```T#0T
> M-#3(`-``!H!H:``!D``"1$$"`$9"&(TDS30IZ,4;4;4Q,&H,@8F@-&F@&RGY
> M1?G$_-^6''G7ZU]8;A,V`VT\0%_TFD"/3Y8^MQV#;T(R3^!&;`F`*((#98)(
> M4KO"=V(3&($G$>RP@@PD*Q6("451L[MJL5D1"**K$6`J,(@Q8B"+$8K$4!@_
> M;M`VE:!8)HAN9R\O#W<AV>WVMVS1SG`9$5`Q2B`H+[:-E4,%OIM%%1C$0,,*
> [ctcole-mac09:bsd-sources/usr.bin/fmt] ctcole% wc -l *uu
> 129 fmt.tar.bz2.uu
> [ctcole-mac09:bsd-sources/usr.bin/fmt] ctcole% clear
> [ctcole-mac09:bsd-sources/usr.bin/fmt] ctcole% cat *uu
> begin 644 fmt.tar.bz2
> M0EIH.3%!62936:*IABH`#=1_U/TP`8!_____________W_]2B`0```(""&`:
> M7W@`/<LW9;MGLU8&BJ4;";QW'84&T[ML`-`%6:M-%4#JA08@`!5*`(2LA;`Z
> MU3"400"&1D)IM$-)^J;1)MHFFIYJ)HVICTI^D3U!H-`>IIH`&@T!-$9$R:3U
> M%/4VH>4;4](PT0-&)H`-```````U,DRIZ!#U!M1D>B-#$;2&F(9-```80#0`
> M:,)H"32B0*;*:GD$G@*'Z*>F3(U#U-J;1#TAZAH#)Z@T!ZFC1Z@`<```T#0T
> M-#3(`-``!H!H:``!D``"1$$"`$9"&(TDS30IZ,4;4;4Q,&H,@8F@-&F@&RGY
> M1?G$_-^6''G7ZU]8;A,V`VT\0%_TFD"/3Y8^MQV#;T(R3^!&;`F`*((#98)(
> M4KO"=V(3&($G$>RP@@PD*Q6("451L[MJL5D1"**K$6`J,(@Q8B"+$8K$4!@_
> M;M`VE:!8)HAN9R\O#W<AV>WVMVS1SG`9$5`Q2B`H+[:-E4,%OIM%%1C$0,,*
> M6F%<6T%F^RQQ2L8`Q-::(N!!!6T"BD8CNGT_9]7/./^RH,2SP9SG(VU<+B7#
> M?263G$UI\F_!TUCIMVWANX6XIF7'BKBXI0U8R9IEQ3"N"AC%5+FRI%/4_LWP
> MXOW?SWG!=9P3@;Z5LX-=^<#>!7#BPMQIBY-$#&:#%'%JDT<LT1M@I,4H569L
> M[F,F%9.6G83D^ONXSI_+>,Z+>1T'?DV,\WP7]:WQ$PF`9A(%,A3ZC`X2"%9$
> M5IK!-,8M!GW6PV3(L-F(SBX+8/7.OF4V5#[,^4XWG:,RYYR[?IWY_E;ER1>R
> M#!5&N&I^VQ];,DF+YW8[(FI!$L@MYSH&)9=9VF6UT63U636+:N8T`Y-73*TP
> MP@C@SDC"9>0+W2CJ)"@\QC3$AQT@1%`PH,FZHPZ06];I<W%[&1(L/;07W`GE
> M)XV2>24(Q/-Z^IYVW0DGN<_M*JJHZ@G=8<_O@[*%XSQ(=O9>A=OM;&,KQ6IJ
> M^QOF-Y;'43G4P0>@JHBH)V:"111K!A.H?C-OO>SVGNGHP,5V/(8Q]BTH$TB!
> MTTE2T1>%8<,U\7=AV52;$@45%%@H*J,!05$`6"Q$;.2@>PP9GG'%2VG4[.)5
> M(9`&AXFL6:G,A4/A&HK2.WSY;)S\WR#V;0HR6N@=(9BHWDFY4C3&(M3-'#:&
> MO"&JNK=E/7;ZMZB0)!\.7,6M?TP_4I^9K'8A`W,=)FN\='S*#12(H<#B-H9+
> M8&H(5LZ(SR[#.VQF!I@93@^S,5Y%F]DD9Y&,FIA"FZL;":\Y%M130CGDC8VP
> M\YH,^@[ISG@("NOQ`QEPJX!SN']SEH5]HS)',=L+8I`T+8HXVTL>D]QB;HK(
> MR[,:#&D<H$#N`Q`;GP'%M#6/SQRWX!L3EH$30?(#&9M%H8C)5]\0-A]&/VXU
> M4IYS$^`*)'RC*[KW-U7M-Q[++R9F#\##H'`J<QFTDDVG(D*$%]T%\:U?2/'C
> MR`4??57@K"&8.*I>-.0[FE,,Q=+87`Z&O7>#9YR%8L<C[I!!3"3J#0HL=SAM
> M<.)<XHD02$Q%:X]%]C97<7Z%(_RS^]<5UF5K=K&Z`=WH&AYE)B0V`U$<Z]FN
> MY>*`.I6!<\NIE/F8#MT`ZJAG*:H<<=@NR2A8BF5&\(D:F]XO,:C(V0\P=]QE
> M,(+U%QI7:A.:,6%R:2':+7#8)G@:6ZCB@`\OL3RGE@2&!N!YC,"+0`X%\<.-
> MPW!,T"+O%,"*$FAE@!F$%II+9)WPB!B$AD=Z3#%2>Y91'.5_.Y`8O.V>$]["
> MD]\8OBYXN(*!2P*4*7X&^\DKIH+3%_=QX,EKIKL.E#`?!["%WE8@H6J[%['!
> MTW-VBU"]\$IZ>FY*O=3O[*UIUSKJ@L'!REJ#Q62A$KF$)&125M&%KF0U"[19
> MI['6C'&Z\).5`:F9ACPOWC&THKVF#;4K6[;:H43&A#:EFNTQW'>(&_E8YYNP
> MNM@870R.706,,N$,-<$`K?G(:C$T(+6SC7%Y)-F%=L`XJ'-8#M,\V3C=BD=^
> MR9J-E"M".<Q2'HKL#8I$UY-=MP"+--T(#6C,F$O*?1.XME:BP&9=#Y;[.K"Y
> MD^E:'<=YAMH7684*%X6VZ<+WT$R,,70T5KM?.I60J)63?RB'SNO!:A!#1MI<
> MM*BEX-WJ0:D;`V&MV3#'.^B`PRDE^2`]6L>$-=HU>6WQBVF.%9H[V)H4,!F(
> M5L.?*)(9\.%9H@#RJ+(B*HA>+#%VM%%13G*JQ*:N`<C,SH[X6.=RBR=5]1@*
> M4@T-+=<KA<8@H++5;8O>9Y'PR].Z3FAB^PW*[B`IZPS`K8(Y2*D,%'=).4#?
> M-JB*J)"NYO5QV=T$].]J-I40#:J@*+^R2W<!F\EN#@\4H?D?X&'[KA%4#[Q\
> M0&Q<($&1$!9I=9YH^,9O/O;)^3*9K,*1ML8EB,<J#N_0''FRG!KOZ9XQ9A#)
> M9!>R5>Z$68QH59(2S:,XAL73W;RO%Q5XILHZ`7I3$HB&>9Y,97.U,'B,/>E>
> MJ;A=4[Y+AX=)H#R.B31&7U6QOEOI3G_B7%\.PN#"G?^*XLLW&>JM/PR(^JKH
> M.O:Q#U39R^3(^/8O5SYLKH3QD6EO"UB7+-@QZF.0<9I0)XRZG37C$LN26)N:
> M<"#HFV-:-)#IXBUK2_*W6G,0_)("@HC&2"(`@K%5$%BR+)%D$83?WBPD+S6X
> M;&%+*DK\=[XEQ`KG3!@<%AQ!$9.U.*(/(\J+>^>V)<_+.BQ$M_3"S\GXZ^^G
> M>7[6]4&M;8[=_TA\Y[@=LZ3C%-1K%.H>.&#2BPX-CHV+[744WH^2-@[?9AX&
> M85SF58;FXM:SPA(TSIEY`YE8@JJHFU+4*QMB>Q&=,(&*`A.*^^Y@O=#0IINS
> M7GTM;NL@Q+!NV\DA&3\4DU=&F%DL<:S26PTP3$=X*F""DMGJ3]AJEWA[0X1R
> M"_;QF('DIL*\>[Z_OA^!B#!@!^!B7'KIBI'[%K/M7E=S5OD0D?,A9V$H/I:@
> M:^VUH?3NWM(^]S'T^A(["GBNFXS7V0%_?8O(GEB5J)_92N+XZQ@`M!,!;A?W
> M"_<H0?B_6?(?[W%47')+<;3EN"B5Q-59C(HXFR\?E6#@]$)C'-H*IY1,P4D%
> MN6+7B;4$.+CJB%`*@^CI!2H5/.N]9I%5D!IO69^^+:5A+8PA:Y[307$>!;2%
> MM5$345#C^?%99#S-##.EEH9$+"2155FLE>7LM'5B2-+#B,5RV+O96*S;(1#C
> MP,;XXKB#"&2L+6!?JO62T@T&I8H)=-U=+F,9%TRI@*TBP*H*L51471:S*53'
> MG@+%I&BR*D0(Q6K&#&*U'@6\Z'HO22TY^/FYM6]I.>I=KD9XE]^E1IJSKV"J
> MC\22.G:<"=4*1D&[G66]Y*AQV:+WU<.-AP&6#!C;'@&%6S*VXH^])-K80P17
> MJI'-66ZP54'.KQ2,Q,[UE&DGU-2-;MH.E9,C6VS(0P&H*=N\95Q4D=K,B)TR
> M,3N'Q4*1@E"M*16WT?'88!]#I$6:,A*<,"&BC%]A>HXBZ+4IJ(*ZR$8L#]/3
> MN]/]$:T0@/.'8)E&GJ#K'`\SC^L]`=#0'$8,`B$^8$0]!@]1L,?*:MYK/-@#
> MR1FB>@XQ)\QB:@:5`8?A3NRNTJ0;#U(/["I`Q6`U36Y8,R#'@<S%=;09F`,&
> M,8B!7!Z"H09,P,C*6QY\>6N9EFF)U#/TEC@7`@*'N'40$G6,P#>&A-0W#/R'
> M[3(V)7),CB5#>&LS+$%S44)+&H-AEK#66,PZ#1R6`T!'6R!HV)0$+\>($]9<
> MZ@@98+V2C@MRV#_X&&\D@`UD(("S9\2N*2A8W!R&4(*%0D+D'ZCH!Q0;2@5!
> M=P,,PZA08K244H8`R36:BQ7F&H,3,#)-(89`&A*8:S>=AM.1S_Y,1G_:@5@[
> M2`L`TC(Q@C(5$$$G['VI#080,>;(X8#!0H;J_S3N4/E2((Q1AYW.'`2@,DZB
> M!%$I/T80D8%`N,L,@)%`4D#U0?P0B.GI,PY'F,BQDQ)J2X/BD:5&=0&!EYNH
> M+`&B69S.X9<%4-#`V(G-D:SS"L4/(8>3-^[>2'U?5]<Z)]AP..24#$QAS&$H
> M-84-NEA:@Q"3B8"WV)2H0&!D*#(D)4F"1CY-\[&9@:!@4(*#+BJ,H%#3%!0I
> MD9DC!E.H88E"AJYI<["Y9!D,9Z3"`*B."37F9K-ITL&L-HQE1;R`DR"#@BC,
> M06HP("]C(8;EO,BP6!DH*B8PH&\&`X*%15,9.Q(2Q2D3Z"H"\30>M$)QR3D@
> M4D0F\ZR9"B7$6!8YEPJ*1E!]+!@=`96YK!1A(-!@T)T"BH0)4^"8ZF<P[QG/
> MKZ60J>%/CUTH0-OR/G@>G;I@%F?)$_&'EWN48??T.EX5]WX15513WS0]<B0/
> MPPRV'.@JQ^=,H=$S3F15.JJ(]QP`,/].QG5'2Y0/B\TK4&I8V(R.^![)CSD.
> M-][78'>AF;?S:%X#D&[V!Y^XZM.#51+BTB1>N<BRW)*$MF>"F"`P%8$KFQ_Y
> M>0OUD*BJ*B284\"]X=@4_%IUL>8J4+5\(B;E9=?D4.YNQV&VSD=O/H0W!RL&
> M=UT@V'[;G96Q=8&JU.VGA+SN=[9O4(6PXFSHS'KEQ[:=TD#>[S2"R2:.#$:D
> M.C_)&L/!R]MQ)^5O05$748CK",-8>-VDMC7I>1O")*7LUY9+UM)W5R[&-]![
> M"D*<.(R==.)`RIO)46"#W9(IFJR/!>*,C;($P$,-<!;@FF#`U!/G>@F8X<"<
> M1/)B4S-@=A.8>W<FP3-,2(C4I1(?#G!C3!$M)U4(ACCA?8;QGOBW74JAL[.)
> M4*T6/S3$NV,8P650LV8.C@')7#:/U<8Q+2P57PDFC'_X5@4T8W)SDHJ8*&R4
> MJKYM:U+PP>`.YK_8$&(2=AB0N]-5Q'DQEU=J;P15Z5N*@QAE5**A9=:["Y8P
> M"+%GDE,CW(+&V_NJ7@FACBHE[\>#/4;%!8#\VV\HH8]ICE%:.LN`EJ#XJ$T9
> M:X0%J#@;+XP@^":O'(NM9<;(L^O+(FHTZM(Q@G'45`V1L-FA=E@+RA3(TF$D
> MW-*YQ5"D(Z8L]'UKE>5[G9S%5(E.;K4L*;0/?!(4A.TDAWY9A*-HFN)I\3#^
> M1:@"%>!%$Y1UKB*YQ`$Q'^9#9KP1TJ!K]X)<E`-UPWY"]3"2]F1GJ'P%[UL#
> M$Z]@NF1L'"80!T=\E*E`>HT%=%CMV'?37AP.D[S80/A(8T,V^L/$@@JDE7B+
> MO-.(T:!@UJ6Z:'(U=K!;7@,4'(<:H(P="V=][A46_!%PH?.B*!(]_HY5U`:A
> MA@)ICH-H5,0RYA["2&TA7&`.C.4A0.>5K^OYL"!06)L)1".Y[.UZMM'O!E#>
> M-U1T1Z4`=/3*AH7:,I\Y:9:1)$#(@8-6K@/`DNQ8TR@R,*KH(]\T#!7V,K(0
> M#`:N(9^C*%:#Z?K^F(B?OYETB4FE=F3&P*(H0CV&8J^"7``7MI;F!<J^SF8J
> ME!UL*<TBL-`25H0EGJ<)&*;M9=0`;('3/0AT/#2IV06=>_00+2A65)2&2SE5
> M-R<HFJ21D\HQ0@L@*2`C(9UH?IZODUAWR:_BM`6(`P,4T13408E$L-4P=$CU
> M^`+BCC@#`VC!10\NZ"0]TZ'I6&07[4+HFDH-B.!![YY(V)&)!YA9[%K$F$KD
> M&:^'<*@8A*IQ:*,!C#"-2;GPR_%[`]&XLCL=C<AC0N;0A<S><M11.1/H1U;M
> M\X\2UG9Q>6I?>ZF46XZ]%H;E*#U.KY.46%TE#;(W%,2L\PW:0C6TV#:;25EO
> M?#`Q8<!1"@33O@$X$'&V170-R2L!VYE0;5>B;<::Q&X:74L4%1&9M,-J6J4[
> MI:`?&65NF.`=>#&AI/JEPLX\FK-51-E-DL'L%7*O<SKW5W33VW(:*PDW"'%K
> M6&.*(*=N@;4EDI*7$T!%)Z.)3*<^PWHU&@S>$U_,@A0P(38W?!DX[DMB)!;6
> M@.U#`U-?.T#82Y3%@N*@7-ADGBLOE+DMN%QX$%"$#6\O%SDJ")"7:]19`HK8
> M?9>GPHY&8IH]%[=2ZLJ>JAW#X,>:@&F'&2&T>HS2T#$5#(H0.0H$@\"&'CK)
> M%>"P.*F]'J&A55LAA=3C?`>3)UJ%4RF'VLPU:9B)@Q0LPU1%??B@@);0X$,N
> MJ5D>`NX_>H&!@@9:"1;)D,H(PB,#>9#$PZ2)B0J2$Z9M+$-%2$"*#1"95)+-
> M%#N*4>H_(E=*4P-Z@J)K&B3`W`S[1RY/T4+I#U8ML"6P*P]9A18B-W68,B<F
> M;F&0I:2A8:CX!J*KB?<WGJ&T>MH,G#71K[#5_;>V4(Z`CQ.Q7/2>C4RB6AM$
> M(CPY]C2UBH>PS/7]#U)&9\1XH.6**C'KXM,0T#ZO9!U-)I52'R)0I%888=31
> MI8SXZ*X:DZ)788QY2'N#H'A&LUT):@RVB1DTN99L`G9H=3(Y%MR[#D:PH:PA
> M'O9\-`KFFUH:!\>^IV/W84DE**!=;2-$/B&LWB&3EX=JW;+0;)B&R7`O.Q$$
> M1+]'IJX<$T:*N1V8)TI*2*3%&4:."#AH/;'P#-3%?M]73$H>EE@R;9SB*%HL
> M=B/B@D*Y-227U0&K.=<P3@,.ZS?$,&^G+RJP0K5%%"VSG0Y-P'`@[.HT#`2T
> M8%?@3PS)5%)D*9P9P8P4F;2VL15F+9B)V+=LR/7+(7,9S5'#U`S=0C!%2089
> MM65@W$/7FKX6VG<TK;$EC!83,RL)LJBZ06"BMF"[`+J`HA^)Y7,$-%`U@0V#
> M,T-&LARITH,.)#4::B-!,MI84#J9*;61AC7WKY4]$R2._T4W>C1%?!]6`4]&
> MO&MJTS$YU5=I)B;0VE"+C!A1OS$B6XR2M88Q,.734!A5!%-K0'1*7-::VP#7
> MT-WOXA**)"HA^'!C(T,W-QV[^1D%(Q#3?N1B=<7BY@%"![S"45VEPSY8(6F1
> MX6,0H46C/-"7MZMMVQ6:3:5S/2#7?-Q!P)"250;G6$!$!.FS(5!8XK[E`Q26
> M%"3.@$"D9&"/+W#(EKFI(B7#(B4X!EZ3!@GWZBNW0;*5NJ8D9&'1P/5<.LH$
> ML&9;J-,R8R&89+@U'<&=L7C1R9VH72&SN,,8-=;9L\4P9AP%\9.MF][#2'KC
> M#!+.C<;CCG`NKE'9A@.3-";A9H*">T5`--VL:+8G+&DID1=L#TR0*DT@+8VS
> M3/`1FP;!M-)B)`#6TA&M@+4%2$..TD1LH+8UI8,X8S,'895ILB@XH4%(38U9
> MXI*[38.8SX+SY9YAL&`&Y&":#(&@BW=2`N.$^*XS*VL;&GNMC0S1Q%`B/X4@
> MUW>#,B7!%M!MB#U*$\-IJ<D_^UI&B3E=51,BAJ2K\(U]1A8S8MQBQ&:^ZP_"
> M+2K8V)L2VVQ%1(Q@PYL!,$)X&'&3JQ.+BS4.K6O$+$.E92YEIH#BHY@?$5$?
> MN$T>*$P;]'0AUL$,,[(G^'0/'0."=L.\TFY6?48>MS_!^.^71H<4@@8R4$S`
> M0'\S`\TP,T#FO/U)04+.O;=4"E-.?7C@!?(T%=".M(?U?_?6R52D0%$%35K\
> 2KZT3?11`_\7<D4X4)"BJ88J`
> `
> end
>
> On Thu, May 28, 2020 at 8:41 AM markus schnalke <meillo@marmaro.de> wrote:
>
>> Hoi,
>>
>> personally I use fmt(1) a lot for email formatting and such.
>> Typically I only use the `-w' parameter. Now someone asked me about
>> `-t' and `-c' of *GNU* fmt(1). I wasn't able to find good documentation
>> on them. The manpage only tells that they have to do with different
>> indentation for the first or first two lines. But what are the use
>> cases? How would source text for these parameters look like?
>>
>> A look into the description and rationale sections of POSIX, which
>> often provides helpful information, was not possible because fmt(1)
>> is not part of POSIX (only fold(1) is). Why's that? Is it because
>> fmt(1) differs so much between Unix implementations? On BSD `-c'
>> centers text and `-t' sets tab widths. Plan 9 has none of these
>> options. But still, `-w' could have been standardized. Or was the
>> line filling algorithm different as well? How does fold(1) fit into
>> the picture?
>>
>> Maybe you can answer some of these questions or give hints on where
>> I could find answers myself.
>>
>>
>> meillo
>>
>

[-- Attachment #2: Type: text/html, Size: 14028 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 13:47   ` Clem Cole
@ 2020-05-28 16:08     ` Mary Ann Horton
  2020-05-28 18:00       ` Clem Cole
  0 siblings, 1 reply; 31+ messages in thread
From: Mary Ann Horton @ 2020-05-28 16:08 UTC (permalink / raw)
  To: tuhs

[-- Attachment #1: Type: text/plain, Size: 10949 bytes --]

It's nice to see a uuencode email attachment once again!

Clem (who, by the way, is correct about the origin of fmt, it was part 
of Kurt Shoens' Mail program at Berkeley) has perfect timing. This 
coming Monday, 6/1/2020, is the 40th anniversary of the uuencode email 
attachment. (The date is based on the date in the uuencode man page in 
the 2.8BSD and 4.2BSD archives at 
https://www.tuhs.org/Archive/Distributions/UCB/ )

There has been some amusing coverage of the "25th anniversary of the 
email attachment", commemorating Nat Borenstien's creation of MIME in 1992.

Any thoughts on a proper commemoration of the 40th anniversary?

     Mary Ann

On 5/28/20 6:47 AM, Clem Cole wrote:
> Ouch sorry for the extra stuff -- cut/paste error which I did not 
> realize until after delivery.
>
> On Thu, May 28, 2020 at 9:30 AM Clem Cole <clemc@ccc.com 
> <mailto:clemc@ccc.com>> wrote:
>
>     fmt was originally written by Kurt Shoens at UCB when he worked in
>     Mail and delivermail.
>
>     begin 644 fmt.tar.bz2
>     M0EIH.3%!62936:*IABH`#=1_U/TP`8!_____________W_]2B`0```(""&`:
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
>     M!%$I/T80D8%`N,L,@)%`4D#U0?P0B.GI
>     <http://P0B.GI>,PY'F,BQDQ)J2X/BD:5&=0&!EYNH
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
>     2KZT3?11`_\7<D4X4)"BJ88J`
>     `
>     end
>
>     On Thu, May 28, 2020 at 8:41 AM markus schnalke <meillo@marmaro.de
>     <mailto:meillo@marmaro.de>> wrote:
>
>         Hoi,
>
>         personally I use fmt(1) a lot for email formatting and such.
>         Typically I only use the `-w' parameter. Now someone asked me
>         about
>         `-t' and `-c' of *GNU* fmt(1). I wasn't able to find good
>         documentation
>         on them. The manpage only tells that they have to do with
>         different
>         indentation for the first or first two lines. But what are the use
>         cases? How would source text for these parameters look like?
>
>         A look into the description and rationale sections of POSIX, which
>         often provides helpful information, was not possible because
>         fmt(1)
>         is not part of POSIX (only fold(1) is). Why's that? Is it because
>         fmt(1) differs so much between Unix implementations? On BSD `-c'
>         centers text and `-t' sets tab widths. Plan 9 has none of these
>         options. But still, `-w' could have been standardized. Or was the
>         line filling algorithm different as well? How does fold(1) fit
>         into
>         the picture?
>
>         Maybe you can answer some of these questions or give hints on
>         where
>         I could find answers myself.
>
>
>         meillo
>

[-- Attachment #2: Type: text/html, Size: 14680 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 16:08     ` Mary Ann Horton
@ 2020-05-28 18:00       ` Clem Cole
  2020-05-28 18:35         ` Richard Salz
  0 siblings, 1 reply; 31+ messages in thread
From: Clem Cole @ 2020-05-28 18:00 UTC (permalink / raw)
  To: Mary Ann Horton; +Cc: TUHS main list

[-- Attachment #1: Type: text/plain, Size: 1264 bytes --]

On Thu, May 28, 2020 at 12:10 PM Mary Ann Horton <mah@mhorton.net> wrote:

> It's nice to see a uuencode email attachment once again!
>
I was worried a MIME attachment might not get passed through the
automation, so I stayed with tried and true methods.

> Clem (who, by the way, is correct about the origin of fmt, it was part of
> Kurt Shoens' Mail program at Berkeley) has perfect timing. This coming
> Monday, 6/1/2020, is the 40th anniversary of the uuencode email attachment.
> (The date is based on the date in the uuencode man page in the 2.8BSD and
> 4.2BSD archives at https://www.tuhs.org/Archive/Distributions/UCB/ )
>
I could not have told you date, but I do remember when you sent it ber and
myself, specifically.

There has been some amusing coverage of the "25th anniversary of the email
attachment", commemorating Nat Borenstien's creation of MIME in 1992.
And his scheme does not work on IBM Mainframes or 6-bit machine as is (Nat
required an 8 bit path).  Your scheme passed through all known systems at
the time.

> Any thoughts on a proper commemoration of the 40th anniversary?
>
Can't say I know the proper way to do that, other than to say thank you and
acknowledge the hack as a darned creative solution to an issue a lot of us
had.

Clem

[-- Attachment #2: Type: text/html, Size: 2798 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 18:00       ` Clem Cole
@ 2020-05-28 18:35         ` Richard Salz
  2020-05-28 18:51           ` Clem Cole
  0 siblings, 1 reply; 31+ messages in thread
From: Richard Salz @ 2020-05-28 18:35 UTC (permalink / raw)
  To: Clem Cole; +Cc: TUHS main list

[-- Attachment #1: Type: text/plain, Size: 172 bytes --]

I thought base-64 worked on ebcdic/ibm platforms as well.  But either way,
uuencode was the first and was very definitely a neat hack that worked and
solved real problems.

[-- Attachment #2: Type: text/html, Size: 231 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 18:35         ` Richard Salz
@ 2020-05-28 18:51           ` Clem Cole
  0 siblings, 0 replies; 31+ messages in thread
From: Clem Cole @ 2020-05-28 18:51 UTC (permalink / raw)
  To: Richard Salz; +Cc: TUHS main list

[-- Attachment #1: Type: text/plain, Size: 228 bytes --]

On Thu, May 28, 2020 at 2:36 PM Richard Salz <rich.salz@gmail.com> wrote:

> I thought base-64 worked on ebcdic/ibm platforms as well.
>
I do not believe it works properly with systems like CDC's display code (It
needs octets).

[-- Attachment #2: Type: text/html, Size: 756 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 13:30 ` Clem Cole
  2020-05-28 13:47   ` Clem Cole
@ 2020-05-29  0:18   ` Greg 'groggy' Lehey
  2020-05-29  5:10     ` Michael Stiller via TUHS
  1 sibling, 1 reply; 31+ messages in thread
From: Greg 'groggy' Lehey @ 2020-05-29  0:18 UTC (permalink / raw)
  To: Clem Cole; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 682 bytes --]

On Thursday, 28 May 2020 at  9:30:09 -0400, Clem Cole wrote:
> fmt was originally written by Kurt Shoens at UCB when he worked in Mail and
> delivermail.

That agrees with the FreeBSD man page:

HISTORY
     The fmt command appeared in 3BSD.

     The version described herein is a complete rewrite and appeared in
     FreeBSD 4.4.

AUTHORS
     Kurt Shoens
     Liz Allen (added goal length concept)
     Gareth McCaughan

Greg
--
Sent from my desktop computer.
Finger grog@lemis.com for PGP public key.
See complete headers for address and phone numbers.
This message is digitally signed.  If your Microsoft mail program
reports problems, please read http://lemis.com/broken-MUA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 163 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-29  0:18   ` Greg 'groggy' Lehey
@ 2020-05-29  5:10     ` Michael Stiller via TUHS
  2020-05-29  5:19       ` Greg 'groggy' Lehey
  2020-05-29 13:39       ` Clem Cole
  0 siblings, 2 replies; 31+ messages in thread
From: Michael Stiller via TUHS @ 2020-05-29  5:10 UTC (permalink / raw)
  To: tuhs

It is also included in 2.9BSD, or was it backported:

FMT(1)              UNIX Programmer's Manual               FMT(1)

NAME
     fmt - simple text formatter

SYNOPSIS
     fmt [ name ...  ]

DESCRIPTION
     Fmt is a simple text formatter which reads the concatenation
     of input files (or standard input if none are given) and
     produces on standard output a version of its input with
     lines as close to 72 characters long as possible.  The spac-
     ing at the beginning of the input lines is preserved in the
     output, as are blank lines and interword spacing.

     Fmt is meant to format mail messages prior to sending, but
     may also be useful for other simple tasks.

SEE ALSO
     Mail(1), nroff(1), roff(1)

AUTHOR
     Kurt Shoens

BUGS
     The program was designed to be simple and fast - for more
     complex operations, the standard text processors are likely
     to be more appropriate.



> On 29. May 2020, at 02:18, Greg 'groggy' Lehey <grog@lemis.com> wrote:
> 
> On Thursday, 28 May 2020 at  9:30:09 -0400, Clem Cole wrote:
>> fmt was originally written by Kurt Shoens at UCB when he worked in Mail and
>> delivermail.
> 
> That agrees with the FreeBSD man page:
> 
> HISTORY
>     The fmt command appeared in 3BSD.
> 
>     The version described herein is a complete rewrite and appeared in
>     FreeBSD 4.4.
> 
> AUTHORS
>     Kurt Shoens
>     Liz Allen (added goal length concept)
>     Gareth McCaughan
> 
> Greg
> --
> Sent from my desktop computer.
> Finger grog@lemis.com for PGP public key.
> See complete headers for address and phone numbers.
> This message is digitally signed.  If your Microsoft mail program
> reports problems, please read http://lemis.com/broken-MUA


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-29  5:10     ` Michael Stiller via TUHS
@ 2020-05-29  5:19       ` Greg 'groggy' Lehey
  2020-05-29 13:39       ` Clem Cole
  1 sibling, 0 replies; 31+ messages in thread
From: Greg 'groggy' Lehey @ 2020-05-29  5:19 UTC (permalink / raw)
  To: Michael Stiller; +Cc: tuhs

[-- Attachment #1: Type: text/plain, Size: 1126 bytes --]

On Friday, 29 May 2020 at  7:10:50 +0200, Michael Stiller via TUHS wrote:
>> On 29. May 2020, at 02:18, Greg 'groggy' Lehey <grog@lemis.com> wrote:
>> On Thursday, 28 May 2020 at  9:30:09 -0400, Clem Cole wrote:
>>> fmt was originally written by Kurt Shoens at UCB when he worked in Mail and
>>> delivermail.
>>
>> That agrees with the FreeBSD man page:
>>
>> HISTORY
>>     The fmt command appeared in 3BSD.
>> ...
>
> It is also included in 2.9BSD, or was it backported:
>
> ...
>
> BUGS
>      The program was designed to be simple and fast - for more
>      complex operations, the standard text processors are likely
>      to be more appropriate.

This paragraph is also in the FreeBSD man page, verbatim.  The whole
man page is at
https://www.freebsd.org/cgi/man.cgi?query=fmt&apropos=0&sektion=0&manpath=FreeBSD+12.1-RELEASE+and+Ports&arch=default&format=html

Greg
--
Sent from my desktop computer.
Finger grog@lemis.com for PGP public key.
See complete headers for address and phone numbers.
This message is digitally signed.  If your Microsoft mail program
reports problems, please read http://lemis.com/broken-MUA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 163 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-29  5:10     ` Michael Stiller via TUHS
  2020-05-29  5:19       ` Greg 'groggy' Lehey
@ 2020-05-29 13:39       ` Clem Cole
  2020-05-29 15:43         ` Warner Losh
  2020-05-29 17:14         ` Mary Ann Horton
  1 sibling, 2 replies; 31+ messages in thread
From: Clem Cole @ 2020-05-29 13:39 UTC (permalink / raw)
  To: Michael Stiller; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 1259 bytes --]

On Fri, May 29, 2020 at 1:11 AM Michael Stiller via TUHS <
tuhs@minnie.tuhs.org> wrote:

> It is also included in 2.9BSD, or was it backported:
>
Just recompiled. I don't think this was one he had to make any changes too.
As Mary Ann and I said, Kurt wrote as part of the UCB Mail package [which
includes delivermail(8) - which was the moral parent to sendmail(8)].

The whole key is that Keith did not have a Vax at the Math department (they
had an 11/70 with max memory) and wanted all of the cool programs that were
being created on the Vax.   Remember, VM is automatic overlays.   So
first with the kernel, and then later with user code, larger and larger
programs were enabled and many of the programs for the Vax migrated to the
PDP-11, as people ran out of address space (IIRC: one the first user
programs that needed to use overlays was ex/vi.  Again, as I recall the
original wnj version by then was such a mess, getting a new/cleaner code
base was a large impetus for Keith to start writing nvi).

Anyway, many smaller programs 'just worked' and the original fmt(1) command
was pretty simple.   As Doug so wisely observed:  "It's hard to
imagine how this
command could stray from classic Unix simplicity and intelligibility, but
Gnu pulled it off."

[-- Attachment #2: Type: text/html, Size: 2297 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-29 13:39       ` Clem Cole
@ 2020-05-29 15:43         ` Warner Losh
  2020-05-29 16:12           ` Clem Cole
  2020-05-29 17:14         ` Mary Ann Horton
  1 sibling, 1 reply; 31+ messages in thread
From: Warner Losh @ 2020-05-29 15:43 UTC (permalink / raw)
  To: Clem Cole; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 1538 bytes --]

On Fri, May 29, 2020 at 7:40 AM Clem Cole <clemc@ccc.com> wrote:

>
>
> On Fri, May 29, 2020 at 1:11 AM Michael Stiller via TUHS <
> tuhs@minnie.tuhs.org> wrote:
>
>> It is also included in 2.9BSD, or was it backported:
>>
> Just recompiled. I don't think this was one he had to make any changes
> too. As Mary Ann and I said, Kurt wrote as part of the UCB Mail package
> [which includes delivermail(8) - which was the moral parent to
> sendmail(8)].
>
> The whole key is that Keith did not have a Vax at the Math department
> (they had an 11/70 with max memory) and wanted all of the cool programs
> that were being created on the Vax.   Remember, VM is automatic overlays.
>  So first with the kernel, and then later with user code, larger and larger
> programs were enabled and many of the programs for the Vax migrated to the
> PDP-11, as people ran out of address space (IIRC: one the first user
> programs that needed to use overlays was ex/vi.  Again, as I recall the
> original wnj version by then was such a mess, getting a new/cleaner code
> base was a large impetus for Keith to start writing nvi).
>
> Anyway, many smaller programs 'just worked' and the original fmt(1)
> command was pretty simple.   As Doug so wisely observed:  "It's hard to
> imagine how this command could stray from classic Unix simplicity and intelligibility,
> but Gnu pulled it off."
>


While Berkeley arguably bloated things somewhat in improving its
functionality, gnu said 'here, hold my beer' in the 90s and we're still
holding the beer.

Warner

[-- Attachment #2: Type: text/html, Size: 2826 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-29 15:43         ` Warner Losh
@ 2020-05-29 16:12           ` Clem Cole
  0 siblings, 0 replies; 31+ messages in thread
From: Clem Cole @ 2020-05-29 16:12 UTC (permalink / raw)
  To: Warner Losh; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 1728 bytes --]

The beer is well beyond the 'suck point' and it's time to throw it out.

On Fri, May 29, 2020 at 11:43 AM Warner Losh <imp@bsdimp.com> wrote:

>
>
> On Fri, May 29, 2020 at 7:40 AM Clem Cole <clemc@ccc.com> wrote:
>
>>
>>
>> On Fri, May 29, 2020 at 1:11 AM Michael Stiller via TUHS <
>> tuhs@minnie.tuhs.org> wrote:
>>
>>> It is also included in 2.9BSD, or was it backported:
>>>
>> Just recompiled. I don't think this was one he had to make any changes
>> too. As Mary Ann and I said, Kurt wrote as part of the UCB Mail package
>> [which includes delivermail(8) - which was the moral parent to
>> sendmail(8)].
>>
>> The whole key is that Keith did not have a Vax at the Math department
>> (they had an 11/70 with max memory) and wanted all of the cool programs
>> that were being created on the Vax.   Remember, VM is automatic overlays.
>>  So first with the kernel, and then later with user code, larger and larger
>> programs were enabled and many of the programs for the Vax migrated to the
>> PDP-11, as people ran out of address space (IIRC: one the first user
>> programs that needed to use overlays was ex/vi.  Again, as I recall the
>> original wnj version by then was such a mess, getting a new/cleaner code
>> base was a large impetus for Keith to start writing nvi).
>>
>> Anyway, many smaller programs 'just worked' and the original fmt(1)
>> command was pretty simple.   As Doug so wisely observed:  "It's hard to
>> imagine how this command could stray from classic Unix simplicity and intelligibility,
>> but Gnu pulled it off."
>>
>
>
> While Berkeley arguably bloated things somewhat in improving its
> functionality, gnu said 'here, hold my beer' in the 90s and we're still
> holding the beer.
>
> Warner
>

[-- Attachment #2: Type: text/html, Size: 3351 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-29 13:39       ` Clem Cole
  2020-05-29 15:43         ` Warner Losh
@ 2020-05-29 17:14         ` Mary Ann Horton
  1 sibling, 0 replies; 31+ messages in thread
From: Mary Ann Horton @ 2020-05-29 17:14 UTC (permalink / raw)
  To: tuhs

[-- Attachment #1: Type: text/plain, Size: 1625 bytes --]


On 5/29/20 6:39 AM, Clem Cole wrote:
>
>
> On Fri, May 29, 2020 at 1:11 AM Michael Stiller via TUHS 
> <tuhs@minnie.tuhs.org <mailto:tuhs@minnie.tuhs.org>> wrote:
>
>     It is also included in 2.9BSD, or was it backported:
>
> Just recompiled. I don't think this was one he had to make any changes 
> too. As Mary Ann and I said, Kurt wrote as part of the UCB Mail 
> package [which includes delivermail(8) - which was the moral parent to 
> sendmail(8)].
fmt was literally part of Mail - it compiled in the same source 
directory, and was considered user agent (UA) code. delivermail/sendmail 
was separate, also from Berkeley, but written primarily by Eric Allman, 
and was the mail transport agent (MTA). It's in 2.8BSD as well.
> The whole key is that Keith did not have a Vax at the Math department 
> (they had an 11/70 with max memory) and wanted all of the cool 
> programs that were being created on the Vax.   Remember, VM is 
> automatic overlays.   So first with the kernel, and then later with 
> user code, larger and larger programs were enabled and many of the 
> programs for the Vax migrated to the PDP-11, as people ran out of 
> address space (IIRC: one the first user programs that needed to use 
> overlays was ex/vi.  Again, as I recall the original wnj version by 
> then was such a mess, getting a new/cleaner code base was a large 
> impetus for Keith to start writing nvi).

ex/vi didn't use overlays (unless you count split I/D). It fit in 64 
bits by using ifdefs.  Less useful code, like supporting upper-case-only 
terminals, would be ifdeffed out on the pdp11.

     Mary Ann




[-- Attachment #2: Type: text/html, Size: 3359 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] fmt(1): history, POSIX, -t, -c
  2020-05-28 12:34 [TUHS] fmt(1): history, POSIX, -t, -c markus schnalke
                   ` (2 preceding siblings ...)
  2020-05-28 13:46 ` Clem Cole
@ 2020-05-31 12:35 ` markus schnalke
  3 siblings, 0 replies; 31+ messages in thread
From: markus schnalke @ 2020-05-31 12:35 UTC (permalink / raw)
  To: tuhs

Hoi,

thanks a lot to everyone who contributed information and oppinions.
They were helpful. I've got a much better unterstanding of the
situation now.

It's so good to have a place like this mailing list! :-)


meillo

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh  (was: fmt(1): history, POSIX, -t, -c)
  2020-05-28 13:46 ` Clem Cole
@ 2020-05-31 13:01   ` markus schnalke
  2020-05-31 14:53     ` Clem Cole
  0 siblings, 1 reply; 31+ messages in thread
From: markus schnalke @ 2020-05-31 13:01 UTC (permalink / raw)
  To: tuhs

Hoi.

[2020-05-28 09:46] Clem Cole <clemc@ccc.com>
> 
> [...] until
> I finally switched from mh (actually the hm version) to the Gmail interface as
> my MUI client. 

Would you be so kind to explain a bit about the hm version of MH.


Ten years ago I wanted to improve nmh, because I found it bad that it took
me months to configure it in so many ways to get it usable for modern
emailing. Even at that point I hadn't found some of its cool features, which
all were deactivated by default. I argued but couldn't convince the nmh
community. Later I used my master's thesis as the opportunity to create an
experimental version of nmh, to convince by demonstration.

Have a look at my master's thesis, if you like:
	http://marmaro.de/docs/master/

Actually it became a fork, now named mmh. The project's still active.
Especially Philipp Takacs has done a lot, among that replacing m_getfld(),
a highly optimized mail reading function. See the pre-mmh version of it
for an entertaining read:
	http://git.marmaro.de/?p=mmh;a=blob;f=docs/m_getfld.c.humor;h=46449095d

This is our replacement:
	http://git.marmaro.de/?p=mmh;a=blob;f=sbr/m_getfld2.c;h=b9a618d16



I'm much interested in any MH background. Shockingly I cannot recall having
read about hm before ...


meillo

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c)
  2020-05-31 13:01   ` [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c) markus schnalke
@ 2020-05-31 14:53     ` Clem Cole
  2020-05-31 16:25       ` Richard Salz
                         ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Clem Cole @ 2020-05-31 14:53 UTC (permalink / raw)
  To: markus schnalke; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 7241 bytes --]

On Sun, May 31, 2020 at 9:02 AM markus schnalke <meillo@marmaro.de> wrote:

> Would you be so kind to explain a bit about the hm version of MH.
>
I can try ...

At the time V6 (and later V7) had a program called /bin/mail.  The
important thing about this program is that it was both a Mail Transport
(and delivery) Agent as well as a Mail User Interface.   The original
version only delivered mail locally.  When networking, like UUCP, was added
to UNIX, it was easy to build a scheme that could send a transfer a message
using UUCP and then fork /bin/mail on the proper system to deliver it.
IIRC it was in Seventh Edition that /bin/mail was extended to recognize
email addresses in the prefix form of:  host!user, strip the first host!
part and pass it to uucp.

I never used it on anything like Spider, so I have not idea what it did
internally and in fact, the prefix address form could have predated UUCP.
We would need someone like Doug, Steve or Ken to tell us how email worked
host to host, pre-UUCP.

I believe it was Bruce Borden and team developed the original Rand Message
Handler or MH.  I do not know who was the primary author, we need to ask
Bruce or one of the old Rand folks.  MH ran on 6th edition when it was
first released to rest of the USENIX community (at least I never saw it on
V5, but it's possible it went back further).   I just remember talking to
Bruce about it at any early USENIX.

MH used a new Mailbox (on-disk) scheme and formatted all messages in RFC733
form with addresses being flat an in the form: user@host. The new format,
used a line a control-As followed by a nl, before and after the message.
 The headers of course where RFC733 (type: value with a trailing nl) and
were separated from the body of the message by a single nl.  MH assumed a
traditional UNIX command line for the user interface and had a number of
programs that ran behind the scene for delivery.   This is important
because the original ARPAnet NCP used FTP to do mail transfer.  At least
one version could call the early ARPAnet subsystem to perform host to host
communications.   The key point is that MH separated the MTA and MUI.

A number of us ran MH at different places.  I don't remember if it was on a
USENIX tape or I had sent Bruce a tape @ Rand when I got a copy in the late
1970's (77-79 timeframe, I've forgotten).  I'm pretty sure Goble, as did
the Purdue crew ran it, as did Holmgrem, Greg Chesson at al, @ UofI and I
would not surprised if it was the mailer at Harvard, given the Harvard/Rand
connection in those days.

By the time of Seventh Edition of UNIX, the Mail Transport Agent (MTA) that
was part of the MH subsystem, could recognize ArpaNET address postfix and
had a hack in it, that allowed the 'user' part of the address to include
UUCP addresses and /bin/mail replacement knew to work like the AT&T mailer
and pass it off to UUCP.   So, at that point, life was good for those of us
in strickly ARPA and/or UUCP land.

BTW: At some point, the BBN TCP code was releases and a separate SMTPD was
included in the release.   I don't remember if it was the Rand folks or
someone else, but at some point, the MH delivery agent was updated to call
it or be called by it.  Similarly, by the late 1970s, when Bruce, Greg
Shaw, and Bob Metcalfe formed 3Com; Bruce and Greg brought MH with them and
added an SMTPD that they wrote for their commercial product, UNET.   This
was the smtpd, I ran on the Teklabs machine before I went off to UCB.

Meanwhile, as Mary Ann and I noted in earlier messages, Kurt Shoen's wrote
a different MTA called Mail(1ucb).   Unlike MH, Kurt continues to support
the original UNIX mailbox format (later named 'mbox' format).   The header
lines were in a specific UNIX style prose starting with the ACSII 'From'
and there are no special characters to demark the messages in the format,
so recovery can be fraught with error, there are the famous From-line
munging issues etc. (lots of details in other places start with
https://en.wikipedia.org/wiki/Mbox).

At some point in time, UCB built the 'Berk-net' (whose original code was
written by ABC/Google's Eric Schmidt).  BTW: Eric would have seen the
Spider Network in his summers at BTL.  The key thing with Berknet was
cheap.  It ran over 3 wire RS-232C between hosts at 9600 baud.   Like UUCP
was used to transfer files and email.    Like UUCP it used a
pre-fix addressing form: host:user ; but like RFC733 and unlike UUCP was
flat.

Where Mary Ann and I differ in our memories is who wrote the original
version of UCB's delivermail (8ucb) program.   We both agree that it is
possible it was Eric Schmidt, as the switch to using delivermail(8ucb) was
were Berknet was spliced into the email namespace.  I had thought Kurt
wrote it, Mary Ann thought it was Eric Allman.   We agree Eric Allman was
hacking on it for the Ing70.  For this response, it doesn't really matter
other than to try to get the history right, because it does not matter for
the Rand Mail subsystem.

Around, now I arrive at UCB.   I was not the only person that had used MH,
but I had the advantage of having 3 Vaxen 780 in the CAD lab.   The key
change we made at that point was to stop using the Rand MTA and make it use
delivermail.   There was hackery to allow the shared mbox to say, but in
each user directory it stored the messages separately, MH style so the MH
'ui' suite of tools 'just worked.'   [There were a number of arguments at
the time.  I remember having one with Sam.  He hated MH because 'of all the
small files and it chewed up inodes].

Anyway around this time, the curses library was created by Ken Arnold
(originally to support Rogue) by pulling the screen code out of vi and
using Mary Ann's termcap stuff.   A couple of us in the USENIX community
started playing with screen-based front ends to MH, including the folks at
Rand.  Numerous messages were exchanged, and a collaboration started (Rand
team should get 99% percent of the work, I knew how to make curses go).
 The comment in the main code was, 'Well it sure isn't MH' -- so it was
called HM.   I later brought it Masscomp, and it was the start of their
mailer.

The key with HM, is that it uses the MH backend for all the real work.   It
would fork scan, but save the output in a text file that could be
manipulated with the arrow keys.   The user interface is not unlike Gmail.
I only stopped running HM when I finally switched to Gmail a few years ago.

In fact, when I was a DEC, the precursor to Gmail, was called
Pachyderm which used the Altavista search.  I glued MH to Pachyderm for a
short period.  I even ported them both to FreeBSD to run at home in the
mid-1990s.  Then   I left DEC, the authors of Pachyderm headed for Google,
*etc*...  I got a chance to be an early Gmail/Google Apps tester for ccc.com
and I have not switched back since.

FWIW: It's been long enough, that the sources are no longer easy to find.

It's all very incestuous.    We all have seen other ideas and good ideas
seem to have a way of reappearing in different places.

Clem

Note the part of the story I left out was when Rand MH spun out to one of
the other Universities, UCI I think.  I was never much involved with that
team, so I can not tell you much about it and their code base.

[-- Attachment #2: Type: text/html, Size: 12458 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c)
  2020-05-31 14:53     ` Clem Cole
@ 2020-05-31 16:25       ` Richard Salz
  2020-05-31 16:50         ` Larry McVoy
  2020-05-31 17:09       ` Ralph Corderoy
  2020-05-31 17:28       ` [TUHS] mh/hm, mmh Mary Ann Horton
  2 siblings, 1 reply; 31+ messages in thread
From: Richard Salz @ 2020-05-31 16:25 UTC (permalink / raw)
  To: Clem Cole; +Cc: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 1538 bytes --]

"I'll try"  Wow, that was quite some "try"  Kudo's!

> This is important because the original ARPAnet NCP used FTP to do mail
transfer.

If you look at RFC 765 (dated June 1980) , there are nearly a dozen
mail-related FTP commands. By RFC 959, it's successor five years later, all
of them were gone.

Another eary MTA was the MMDF, the Multichannel Memorandum Distribution
Facility, from U Delware.  BBN ran it.  One key point is that somehow when
used with MH you could get real-time address verification before sending,
"user rs@bbn.com doesn't exist." BBN ran MMDF for a long time because a key
exec liked/needed that feature, long after 4.2 and sendmail. (My group was
one of the first to run sendmail, which I liked because of the "R$" lines
in its CF files.  (Not really :) My Usenet/email gateway code had to
support MMDF but it was only ever used on bbn.com)

>  could recognize ArpaNET address postfix and had a hack in it, that
allowed the 'user' part of the address to include UUCP addresses

Originally ihnp4!mirror!rs@seismo.arpa, then ihnp4!mirror!rs@seismo.css.gov
and then rs%mirror.uucp@seismo.css.gov and then rs@mirror.tmc.com  Thanks
to Mary Ann and the "UUCP Mapping Project" for making much of that possible
and Peter Honeyman for Pathlias, and MX records for the last part. The
pre-MX styles received much scorn from Research, and if you search for
"that hideous name" you can find a paper on it. There's also a pathlias
paper, which Honey later said "was too good for Usenix" but he had nowhere
else to submit it.

[-- Attachment #2: Type: text/html, Size: 2834 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c)
  2020-05-31 16:25       ` Richard Salz
@ 2020-05-31 16:50         ` Larry McVoy
  0 siblings, 0 replies; 31+ messages in thread
From: Larry McVoy @ 2020-05-31 16:50 UTC (permalink / raw)
  To: Richard Salz; +Cc: The Eunuchs Hysterical Society

On Sun, May 31, 2020 at 12:25:47PM -0400, Richard Salz wrote:
> Originally ihnp4!mirror!rs@seismo.arpa, then ihnp4!mirror!rs@seismo.css.gov
> and then rs%mirror.uucp@seismo.css.gov and then rs@mirror.tmc.com  Thanks
> to Mary Ann and the "UUCP Mapping Project" for making much of that possible
> and Peter Honeyman for Pathlias

My first real research paper was with Udi Manber and it was all about 
compressing the pathalias maps.  I had them on a 40MB disk on a Masscomp
that had 20 users.  The format was

seismo.css.gov	geowhiz!geophiz!uwisc!ihnp4!mirror

in other words

destination	path!to!get!there

I went to Udi and explained that all of our stuff started with
geowhiz!geophiz!uwisc
so that string was replicated over and over and it took too much
space.

Once Udi understood the problem he went "You have time best case,
space worst case, you can reverse them like so"

seismo	-> mirror
mirror	-> ihnp4
ihnp4	-> uwisc
uswisc	-> geophiz
geophiz	-> geowhiz

and you'll have time worst case and space best case.  I was like "oh,
yeah, you are right, cool, thanks" and got up to leave.  Not so fast,
says Udi, that's not "interesting".  What would be interesting is if
you could approximate time best case and space best case.

With that, I started down the only dynamic programming problem I have
ever solved.  Udi's idea was to break the graph at what he called
pivot points, where the pivot points as much as possible got rid of
the replicated strings.  He also wanted to limit lookups to just
2.

So I had to read in the maps and build a graph from them on my
creaky microvax with 4MB of ram.  Doing so lead me to the first
place I taught Udi about systems.  I was fgets() each line and 
mallocing a copy of it.  Then I sorted with qsort() and it took
overnight to get the sorted array.  Udi asked what sort?  Qsort.
Oh, that's garbage, use a radix sort, that will be better.  WTF
is a radix sort, look that up, implemented it, it was worse.

So I start poking around and somehow realized we were thrashing
VM, we didn't fit, and I have no idea how I figured out that
malloc was fragmenting memory but I did.  Probably figured out
that most of my program was backed by swap, not files, and that's
usually malloc or brk.

So I wrote my own malloc that grabbed memory in 300KB chunks (why
that size, I dunno, seemed right).  Then I allocated memory out
of those chunks.  Got rid of the fragmentation and we fit in
4MB.  qsort worked fine, took about 20 minutes (we didn't really
fit but we were way closer).

Udi was watching as I was doing all this, I think I was working
in his office, it was his microvax.  The fragmentation thing 
taught him that when Unix says it has virtual memory and you
can just use it, it only works well when you fit.

So the programming problem turned out that you calculated the 
space it work take for every possible pivot point and then at
the end, you took the set that gave you the minimum space.  We
wrote, heh, who am I kidding, Udi wrote, a paper about it.  I
was still green on writing papers, they were hard for me.  I told
Udi that and he stared at me blankly and said "Writing papers is
easy if you know the content.  You just make a good outline and
fill it in."  He's right, that's how you do it, and it is easy
if you know and can make the outline.

I went on to do a lot of work with/for him.  I wrote a user level
thread library that made me write swtch() in assembler for the VAX
(I believe I did a 68K version too but the source I have is VAX
only).  I "cheated" and did 99% of the work in C and popped down
the rabbit hole to assembler, did the nasty, and popped back out
as a different thread.  112 lines:

http://www.mcvoy.com/lm/T/src/Tasm.S

Funny Udi story, I was young and wild and drove too fast and got 
tickets.  So I got a radar detector that beeped when it saw the
radar gun.  Udi upgraded the microvax to some newer release of
X10 or X11 and the new xclock beeped on the hour.  Every time
it beeped, I jumped because it sounded just like the radar 
detector.  Udi asked about it, I explained, he laughed and said
"Larry, you're hacking too fast" each time I jumped :)

Good times.  I almost did a PhD under him but I didn't care for
the CS department at Tucson where he went and I liked industry
too much.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c)
  2020-05-31 14:53     ` Clem Cole
  2020-05-31 16:25       ` Richard Salz
@ 2020-05-31 17:09       ` Ralph Corderoy
  2020-05-31 17:25         ` Jon Steinhart
  2020-05-31 17:28       ` [TUHS] mh/hm, mmh Mary Ann Horton
  2 siblings, 1 reply; 31+ messages in thread
From: Ralph Corderoy @ 2020-05-31 17:09 UTC (permalink / raw)
  To: Clem Cole; +Cc: The Eunuchs Hysterical Society

Hi Clem,

> I believe it was Bruce Borden and team developed the original Rand
> Message Handler or MH.  I do not know who was the primary author, we
> need to ask Bruce or one of the old Rand folks.

https://en.wikipedia.org/wiki/MH_Message_Handling_System#History says

    MH was proposed by R. Stockton Gaines and Norman Shapiro and
    developed by Bruce S. Borden and others at RAND Corporation.

and cites
https://www.rand.org/content/dam/rand/pubs/notes/2009/N3017.pdf

Norman Shapiro, or Norm, is still using nmh well into his eighties, nmh
is a descendant of MH, and pops up on the nmh-workers mailing list to
either fill in bits of history or ask for installation advice as the
Linux distro shifts under his feet.  He did visit Bell Labs, though in
'54.  :-)  Details at https://en.wikipedia.org/wiki/Norman_Shapiro

> The new format, used a line a control-As followed by a nl, before and
> after the message.

MH's mts.conf(5) had the ability to set mmdelim{1,2} to something other
than \ca\ca\ca\ca\n; no idea why.  And that magic marker would be
escaped if it occurred in the middle of a message, to \cb\ca\ca\ca\n.

> Note the part of the story I left out was when Rand MH spun out to one
> of the other Universities, UCI I think.

Wikipedia again:

    Subsequently development was taken over by Marshall T. Rose and John
    L. Romine working at University of California, Irvine.

    nmh... was forked [from that] by Richard Coleman while working at
    the Georgia Institute of Technology.  It incorporates the "LBL
    changes" made to MH in the late 80s by Van Jacobson, Mike Karels and
    Craig Leres.

MH also had support for UCI's bulletin boards called ‘BBoards’,
including on ZOTnet.  They were optionally available over POP3 and NNTP,
but only one or the other.  :-)  There was an MH shell of some kind
called msh, and a visual mh, vmh.

ZOTnet was a LAN for mail by Marshall Rose at UCI with gateways for
CSnet and ARPAnet.

    https://escholarship.org/content/qt4bm4k2vh/qt4bm4k2vh.pdf
    The ZOTnet: a local area mailing network, 1983

(I still use nmh and I'm using it for this reply.)

-- 
Cheers, Ralph.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c)
  2020-05-31 17:09       ` Ralph Corderoy
@ 2020-05-31 17:25         ` Jon Steinhart
  0 siblings, 0 replies; 31+ messages in thread
From: Jon Steinhart @ 2020-05-31 17:25 UTC (permalink / raw)
  To: The Eunuchs Hysterical Society

Ralph Corderoy writes:
> ...
>
> (I still use nmh and I'm using it for this reply.)

+1 on that.  I also still use nmh.  To me, the set of shell commands
exemplifies the UNIX philosophy as I can easily "show | wc -l" or
whatever that is cumbersome with monolithic packages.  My minor
contributions were adding the attachment support and the hooks.  The
hooks allow other programs to be triggered behind the scenes when
nmh commands are run; I use it to keep an elasticsearch database of
my messages.  I have two additional command script to support thise:
gpick and gscan which are the equivalent of pick and scan except that
they search the elasticsearch database and pretty much return results
instantaneously.

Jon

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh
  2020-05-31 14:53     ` Clem Cole
  2020-05-31 16:25       ` Richard Salz
  2020-05-31 17:09       ` Ralph Corderoy
@ 2020-05-31 17:28       ` Mary Ann Horton
  2020-05-31 18:56         ` Eric Allman
  2 siblings, 1 reply; 31+ messages in thread
From: Mary Ann Horton @ 2020-05-31 17:28 UTC (permalink / raw)
  To: tuhs

[-- Attachment #1: Type: text/plain, Size: 2496 bytes --]

What a wonderful historical tour, Clem! Thank you!

On 5/31/20 7:53 AM, Clem Cole wrote:
> MH used a new Mailbox (on-disk) scheme and formatted all messages in 
> RFC733 form with addresses being flat an in the form: user@host. The 
> new format, used a line a control-As followed by a nl, before and 
> after the message.   The headers of course where RFC733 (type: value 
> with a trailing nl) and were separated from the body of the message by 
> a single nl.
MH's message/file format was also the inspiration for B news, which kept 
each Usenet message in a separate RFC733 format file. (The command line 
interface, however, was more like a feed, not separate shell commands.) 
No control-A separators, though, just separate files.
> At some point in time, UCB built the 'Berk-net' (whose original code 
> was written by ABC/Google's Eric Schmidt).  BTW: Eric would have seen 
> the Spider Network in his summers at BTL.  The key thing with Berknet 
> was cheap.  It ran over 3 wire RS-232C between hosts at 9600 baud.  
>  Like UUCP was used to transfer files and email.    Like UUCP it used 
> a pre-fix addressing form: host:user ; but like RFC733 and unlike UUCP 
> was flat.
>
> Where Mary Ann and I differ in our memories is who wrote the original 
> version of UCB's delivermail (8ucb) program.   We both agree that it 
> is possible it was Eric Schmidt, as the switch to using 
> delivermail(8ucb) was were Berknet was spliced into the email 
> namespace.  I had thought Kurt wrote it, Mary Ann thought it was Eric 
> Allman.   We agree Eric Allman was hacking on it for the Ing70.  For 
> this response, it doesn't really matter other than to try to get the 
> history right, because it does not matter for the Rand Mail subsystem.
To clarify, I was joking when I mentioned Eric Schmidt as a possible 
author of delivermail. (I should have inserted a smiley.) I wasn't 
directly involved, as Eric Allman was in the Ingres project on a 
different system, but I thought he (Eric Allman) wrote delivermail, and 
so does Wikipedia. I think Kurt Shoens wrote only the MTA, but i could 
be mistaken.
> Anyway around this time, the curses library was created by Ken Arnold 
> (originally to support Rogue) by pulling the screen code out of vi and 
> using Mary Ann's termcap stuff.

I didn't write termcap, Bill Joy did. I wrote terminfo, but that was 
later when I was at Bell Labs in 1982. Ken's curses used termcap, my 
1982 rewrite used terminfo.

     Mary Ann



[-- Attachment #2: Type: text/html, Size: 4224 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh
  2020-05-31 17:28       ` [TUHS] mh/hm, mmh Mary Ann Horton
@ 2020-05-31 18:56         ` Eric Allman
  2020-05-31 19:49           ` Clem Cole
  2020-05-31 21:31           ` Mary Ann Horton
  0 siblings, 2 replies; 31+ messages in thread
From: Eric Allman @ 2020-05-31 18:56 UTC (permalink / raw)
  To: tuhs

Ah, time for some "Email at Berkeley" history....

First the back story.  In the beginning, /bin/mail was the mail system. 
All mail was local to one machine so the distinction between MUA, MTA,
and MSA (Mail Storage Agent) didn't exist.  At this point there were no
options, at least at Berkeley, although I suspect that Bruce was working
on MH by then.

If my memory serves, networking at Berkeley started with BerkNET.  Clem
got it right: Eric Schmidt wrote it, and it was designed to be cheap. 
The main purpose was that Berkeley was getting more Unix machines and
carrying tapes was problematic.  It was purely batch (no interactive
sessions; file copy and email only) and ran over 9600 baud TTY lines. 
Eric hacked /bin/mail to do the appropriate calls if it saw a colon in
the address, so the flow of a typical message would be keyboard →
/bin/mail → BerkNET → /bin/mail → /var/mail.

In about 1976 the INGRES project at Berkeley got an ARPAnet connection. 
6th Edition was current then, and we got the software from (iirc) UC San
Diego.  It was kind of a mess, but it did work.  It was a VDH (Very
Distant Host) interface running at 9600 baud.  But the mail system it
included, MSG I think, was a world unto itself, and definitely did not
use /bin/mail.  So now we had two universes: to send something to both
someone on BerkNET and someone on ARPAnet you had to type the message
into two different MUAs.  But at first this was good enough.  But not
for long.

The problem was that to use the ARPAnet you had to be logged into our
PDP-11/70.  Back then the cool kids had "glass TTYs" (i.e., adm3a).  But
BerkNET didn't have interactive connections, so you had to actually have
a TTY line into our machine.  Two problems arose: first, INGRES was in a
different building (Cory Hall) than the rest of the department (Evans
Hall).  But that's OK, there were already wires running between the two
buildings that were probably inspired by BerkNET.  Second, our PDP-11
had a single DH-11 multiport interface with 16 ports.  Only two of those
ports were available, and new DH-11s cost on the order of $15,000, money
which we did not have.

But no problem.  At this point there was already a "plug board" in the
mail room in Evans that had ports to the half dozen or so machines that
were by then on campus and lines to each office.  To connect you would
plug in a wire between the machine you wanted to use and your office. 
Protocol was that you remove the cross connect after use, but that was
widely ignored.  Ing70 ports were quite frequently being pulled out
while in use and no one was happy.  Unfortunately since I was kind of
managing that machine, I was the one who got yelled at.

Also in that period Berkeley got connected into UUCP.  UUCP had also
done a hack to /bin/mail, so it was becoming quite the big mess.  I made
the observation that I could hack /bin/mail to forward messages with an
"@" sign in the address to our ARPAnet-connected machine, but at that
point the code was becoming unwieldy.  Enter delivermail, which was
essentially what we now call an MTA.  It was still a hack, but it was
easier to deal with because it didn't have MUA and MSA functionality.  I
changed /bin/mail to call delivermail unless it got a "-d" (deliver)
flag, so now the sequence for local mail was /bin/mail → delivermail →
/bin/mail -d → /var/mail.  And most importantly, I hacked the ARPAnet
code to use delivermail as well, so now Ing70 could forward mail from
BerkNET to ARPAnet and back again.  The fights over our two plug board
ports mostly dissipated and my life got better.

I'm pretty sure that at this point Kurt Schoens was working on Mail.  He
read /var/mail (at that point it had been migrated to /var/spool/mail)
directly, so there was no hiding of the mailbox format, so he had MUA +
a half of an MSA.  He converted Mail to use delivermail for outgoing
mail.  I don't recall the details of how MH got hooked in, but it did
have a separate program for sending (called "send" I think) that would
have been fairly easy to hack.  It still had "inc" (incorporate) to
bring mail from the /var/mail one-file-per-mailbox format into the MH
one-file-per-message format, so the three functions were not completely
broken out, but it was really the closest to that ideal model available
at the time, so far as I know.

That's the gist of that story.  Sendmail is a completely different
story, driven by the onset of the Internet, and I won't make this
already long message even longer by going into it here.

By the way, I have a 9-track tape sent to me by Marshall Rose containing
the November 1983 version of MH that UCI did (based on the Rand system),
complete with original versions of the documentation.  If anyone has any
way of reading it I'm happy to pass it on.

eric

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh
  2020-05-31 18:56         ` Eric Allman
@ 2020-05-31 19:49           ` Clem Cole
  2020-05-31 21:31           ` Mary Ann Horton
  1 sibling, 0 replies; 31+ messages in thread
From: Clem Cole @ 2020-05-31 19:49 UTC (permalink / raw)
  To: Eric Allman; +Cc: TUHS main list

[-- Attachment #1: Type: text/plain, Size: 391 bytes --]

On Sun, May 31, 2020 at 3:38 PM Eric Allman <tuhs@eric.allman.name> wrote:

> but it did have a separate program for sending (called "send" I think)
> that would
> have been fairly easy to hack.  It still had "inc" (incorporate) to
> bring mail from the /var/mail one-file-per-mailbox format into the MH
> one-file-per-message format
>
Right, the hooks were in send(1mh) and inc(1mh).

Clem

[-- Attachment #2: Type: text/html, Size: 1172 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh
  2020-05-31 18:56         ` Eric Allman
  2020-05-31 19:49           ` Clem Cole
@ 2020-05-31 21:31           ` Mary Ann Horton
  2020-06-01  6:32             ` Caipenghui
  2020-06-01  7:14             ` markus schnalke
  1 sibling, 2 replies; 31+ messages in thread
From: Mary Ann Horton @ 2020-05-31 21:31 UTC (permalink / raw)
  To: tuhs

Wonderful! Thank you for the history, Eric!

     Mary Ann

On 5/31/20 11:56 AM, Eric Allman wrote:
> Ah, time for some "Email at Berkeley" history....
>

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh
  2020-05-31 21:31           ` Mary Ann Horton
@ 2020-06-01  6:32             ` Caipenghui
  2020-06-01  7:14             ` markus schnalke
  1 sibling, 0 replies; 31+ messages in thread
From: Caipenghui @ 2020-06-01  6:32 UTC (permalink / raw)
  To: tuhs, Mary Ann Horton

[-- Attachment #1: Type: text/plain, Size: 278 bytes --]

it's beautiful.

于 2020年6月1日 GMT+08:00 上午5:31:30, Mary Ann Horton <mah@mhorton.net> 写到:
>Wonderful! Thank you for the history, Eric!
>
>     Mary Ann
>
>On 5/31/20 11:56 AM, Eric Allman wrote:
>> Ah, time for some "Email at Berkeley" history....
>>

[-- Attachment #2: Type: text/html, Size: 674 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh
  2020-05-31 21:31           ` Mary Ann Horton
  2020-06-01  6:32             ` Caipenghui
@ 2020-06-01  7:14             ` markus schnalke
  1 sibling, 0 replies; 31+ messages in thread
From: markus schnalke @ 2020-06-01  7:14 UTC (permalink / raw)
  To: tuhs

Thanks to everyone who joined in. That was more than I had
expected. :-)


meillo


[2020-05-31 14:31] Mary Ann Horton <mah@mhorton.net>
>
> Wonderful! Thank you for the history, Eric!
> 
>      Mary Ann
> 
> On 5/31/20 11:56 AM, Eric Allman wrote:
> > Ah, time for some "Email at Berkeley" history....
> >
> 

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c)
  2020-06-03  0:43 [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c) Bakul Shah
@ 2020-06-03  0:49 ` Clem Cole
  0 siblings, 0 replies; 31+ messages in thread
From: Clem Cole @ 2020-06-03  0:49 UTC (permalink / raw)
  To: Bakul Shah; +Cc: TUHS main list

[-- Attachment #1: Type: text/plain, Size: 425 bytes --]

On Tue, Jun 2, 2020 at 8:43 PM Bakul Shah <bakul@iitbombay.org> wrote:

> > Would you be so kind to explain a bit about the hm version of MH.
>
> Not sure what Clem meant but I used "hm" by Jim Guyton (@Rand) on my
> Fortune box until I retired it. It provided a 2D interface.
>
Yep, that would be the program ..   Jim did a great job with it.
It was built using a bunch of MH programs behind it, and was a curses front
end.

[-- Attachment #2: Type: text/html, Size: 1006 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c)
@ 2020-06-03  0:43 Bakul Shah
  2020-06-03  0:49 ` Clem Cole
  0 siblings, 1 reply; 31+ messages in thread
From: Bakul Shah @ 2020-06-03  0:43 UTC (permalink / raw)
  To: markus schnalke; +Cc: TUHS main list

> Would you be so kind to explain a bit about the hm version of MH.

Not sure what Clem meant but I used "hm" by Jim Guyton (@Rand) on my
Fortune box until I retired it. It provided a 2D interface. Later I
tried xmh but didn't like it.

The early history of MH is covered in some detail in Willis Ware's "RAND
and the Information Evolution" book from page 128 onward. hm & Guyton
get a paragraph on page 136.

https://www.rand.org/content/dam/rand/pubs/corporate_pubs/2008/RAND_CP537.pdf

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2020-06-03  0:50 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-28 12:34 [TUHS] fmt(1): history, POSIX, -t, -c markus schnalke
2020-05-28 13:08 ` Rob Pike
2020-05-28 13:30 ` Clem Cole
2020-05-28 13:47   ` Clem Cole
2020-05-28 16:08     ` Mary Ann Horton
2020-05-28 18:00       ` Clem Cole
2020-05-28 18:35         ` Richard Salz
2020-05-28 18:51           ` Clem Cole
2020-05-29  0:18   ` Greg 'groggy' Lehey
2020-05-29  5:10     ` Michael Stiller via TUHS
2020-05-29  5:19       ` Greg 'groggy' Lehey
2020-05-29 13:39       ` Clem Cole
2020-05-29 15:43         ` Warner Losh
2020-05-29 16:12           ` Clem Cole
2020-05-29 17:14         ` Mary Ann Horton
2020-05-28 13:46 ` Clem Cole
2020-05-31 13:01   ` [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c) markus schnalke
2020-05-31 14:53     ` Clem Cole
2020-05-31 16:25       ` Richard Salz
2020-05-31 16:50         ` Larry McVoy
2020-05-31 17:09       ` Ralph Corderoy
2020-05-31 17:25         ` Jon Steinhart
2020-05-31 17:28       ` [TUHS] mh/hm, mmh Mary Ann Horton
2020-05-31 18:56         ` Eric Allman
2020-05-31 19:49           ` Clem Cole
2020-05-31 21:31           ` Mary Ann Horton
2020-06-01  6:32             ` Caipenghui
2020-06-01  7:14             ` markus schnalke
2020-05-31 12:35 ` [TUHS] fmt(1): history, POSIX, -t, -c markus schnalke
2020-06-03  0:43 [TUHS] mh/hm, mmh (was: fmt(1): history, POSIX, -t, -c) Bakul Shah
2020-06-03  0:49 ` Clem Cole

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).