# HG changeset patch # User markus schnalke # Date 1342396032 -7200 # Node ID 77c87c38bff4b099b76637da5f9b42cfa1ee121f # Parent e526e3cb85d3106ef86cf55c30834d6a11131ca9 Removed bad hyphenation and widows. diff -r e526e3cb85d3 -r 77c87c38bff4 discussion.roff --- a/discussion.roff Mon Jul 16 00:42:13 2012 +0200 +++ b/discussion.roff Mon Jul 16 01:47:12 2012 +0200 @@ -10,7 +10,7 @@ nmh at the time when the mmh project had started, i.e. fall 2011. Recent changes in nmh are rarely part of the discussion. .P -Whenever lines of code were counted, David A. Wheeler's \fIsloccount\fP +Whenever lines of code are counted, David A. Wheeler's \fIsloccount\fP was used to measure the amount in a comparable way. .P For the reader's convenience, the structure of modern email systems @@ -342,11 +342,11 @@ when the new attachment system was activated, because .Pn forw could then cover the task itself. -The program +The .Pn sendfiles -was rewritten as a shell script wrapper around -.Pn forw . -.Ci 0e82199cf3c991a173e0ac8aa776efdb3ded61e6 +shell script was rewritten as a wrapper around +.Pn forw +.Ci 0e82199cf3c991a173e0ac8aa776efdb3ded61e6 . .BU .Pn msgchk was removed @@ -502,6 +502,7 @@ .Cl "mhn -show" . It was capable of displaying MIME messages appropriately. .P +.ZZ From then on, two message display tools were part of nmh, .Pn show and @@ -820,7 +821,7 @@ .Sw -suppressdup switch. .P -As a variety of versions of the database library exist, +Because a variety of versions of the database library exist, .[ wolter unix incompat notes dbm .] @@ -876,10 +877,10 @@ The configure option .Sw --enable-masquerade could take up to three arguments: -.Ar draft_from , -.Ar mmailid , +.CW draft_from , +.CW mmailid , and -.Ar username_extension . +.CW username_extension . They activated different types of address masquerading. All of them were implemented in the SMTP-speaking .Pn post @@ -981,13 +982,13 @@ .U3 "Remaining Options .P Two configure options remain in mmh. -One is the locking method to use: +One of them is the file locking method to use: .Sw --with-locking=[dot|fcntl|flock|lockf] . The idea of removing all methods except the portable .I "dot locking and having that one as the default is appealing, but this change requires deeper technical investigation into the topic. -The other option, +The other remaining option, .Sw --enable-debug , compiles the programs with debugging symbols. This option is likely to stay. @@ -1002,7 +1003,7 @@ They consist of a single dash (`\fL-\fP') followed by a word. For example .Cl -truncate . -To ease typing, the word can be abbreviated, given the remaining +To ease typing, the switch can be abbreviated, given the remaining prefix is unambiguous. If no other switch starts with the letter `t', then any of .Cl "-truncate" , @@ -1013,7 +1014,8 @@ is equal. As a result, switches can neither be grouped (as in .Cl "ls -ltr" ) -nor can switch arguments be appended directly to the switch (as in +nor can switch arguments be appended directly to the switch itself +(as in .Cl "sendmail -q30m" ). Many switches have negating counter-parts, which start with `no'. For example @@ -1119,19 +1121,22 @@ The total number of functional switches in mmh dropped from 465 to 233. +.sp .KS .in 1c .so input/switches.grap .KE +.sp .P +.ZZ A part of the switches vanished after functions were removed. This was the case for network mail transfer, for instance. Sometimes, however, the work flow was the other way: I looked through the .Mp mh-chart (7) man page to identify the tools with apparently too many switches. -Then I considered the benefit of each switch by examining +Then I valued the benefit of each switch by examining the tool's man page and source code, aided by literature research and testing. @@ -1421,11 +1426,11 @@ .Pn dist , and .Pn whatnow -was removed and replaced by specifying +was removed and replaced by the ability to specify .Sw -editor with an empty argument .Ci 75fca31a5b9d5c1a99c74ab14c94438d8852fba9 . -(Specifying +(Using .Cl "-editor /bin/true is nearly the same. It differs only in setting the previous editor.) .P @@ -1455,7 +1460,7 @@ .Pn whatnow program which starts the initial edit. Hence, -.Sw -nowhatnowproc +.Sw \%-nowhatnowproc will prevent any edit from occurring.) .QE .P @@ -1476,14 +1481,14 @@ .Pn packf and .Pn rcvpack -no longer needed their +no longer needed the .Sw -mbox and .Sw -mmdf switches. The behavior of .Sw -mbox -is the sole behavior now +became the definitive behavior .Ci 3916ab66ad5d183705ac12357621ea8661afd3c0 . Further rework in both tools made the .Sw -file @@ -1499,14 +1504,15 @@ switches .Ci e57b17343dcb3ff373ef4dd089fbe778f0c7c270 .Ci 943765e7ac5693ae177fd8d2b5a2440e53ce816e ). -Neither does +The message formating tool .Pn mhl -ring the bell (\c +does neither ring the bell (\c .Sw -[no]bell .Ci e11983f44e59d8de236affa5b0d0d3067c192e24 ) nor does it page the output itself (\c .Sw -length -.Ci 5b9d883db0318ed2b84bb82dee880d7381f99188 ). +.Ci 5b9d883db0318ed2b84bb82dee880d7381f99188 ) +anymore. Generally, the pager to use is no longer specified with the .Sw -[no]moreproc command line switches for @@ -1755,7 +1761,7 @@ .[ nmh-workers mailing list archive website .] -contains a +contained a .Hd Content-MD5 header field. Neither did any of the 60\|000 messages in my personal mail storage. @@ -1830,7 +1836,6 @@ hardcopy terminal. It remained in the code until spring 2012, when I finally removed it .Ci b7764c4a6b71d37918a97594d866258f154017ca . -.P The check only prevented a pager to be placed between the printing program (\c .Pn mhl ) @@ -1868,6 +1873,7 @@ In MIME terms, this is a multi-part message having a text part first and parts of arbitrary type following. .P +.ZZ MH's MIME support is a direct implementation of the RFCs. The perception of the topic described in the RFCs is clearly visible in MH's implementation. @@ -1987,6 +1993,9 @@ Furthermore, the hash character (`\fL#\fP') is not special any more at line beginnings in the draft message. Users need not concern themselves with the whole topic at all. +The approach taken in mmh is tailored towards today's most common case: +a text part, possibly with attachments. +This case was simplified. .P Although the new approach does not anymore support arbitrary MIME compositions directly, the full power of @@ -2000,10 +2009,6 @@ to convert the draft to MIME. Because the resulting draft neither contains non-ASCII characters nor has it attachment headers, the attachment system will not touch it. -.P -The approach taken in mmh is tailored towards today's most common case: -a text part, possibly with attachments. -This case was simplified. .U3 "MIME Type Guessing @@ -2087,7 +2092,7 @@ would have been specified. In the .Sw -noauto -mode, the parts are processed according to rules, defined by +mode, the parts are processed according to the rules that are defined by .Pe mhstore-store-* profile entries. These rules define generic filename templates for storing @@ -2251,10 +2256,11 @@ is ignored. It is simply treated as `multipart/mixed' .Ci d0581ba306a7299113a346f9b4c46ce97bc4cef6 . -This was already possible to requested with the, now removed, +This was already possible to request with the .Sw -serialonly switch of -.Pn mhshow . +.Pn mhshow , +which is now removed. As MIME parts are always processed exclusively, i.e. serially, the `\fL%e\fP' escape in .Pe mhshow-show-* @@ -2476,10 +2482,8 @@ and .Sw -draftmessage could be removed. -More difficult but also more improving was updating the tools to the -new concept. -For nearly three decades, the tools needed to support two draft handling -approaches. +More difficult, but also more improving, was the updating of the +tools to the new concept. By fully switching to the draft folder, the tools could be simplified by dropping the awkward draft message handling code. .Sw -draft @@ -2506,7 +2510,9 @@ with .Sw -nouse , the default. -.LP +.ZZ +.RT +.sp \n(PDu In either case, the behavior of .Pn comp is deterministic. @@ -2793,7 +2799,7 @@ .H1 "Styling .P Kernighan and Pike have emphasized the importance of style in the -preface of \fPThe Practice of Programming\fP: +preface of \fIThe Practice of Programming\fP: .[ [ kernighan pike practice of programming .], p. x] @@ -2971,6 +2977,7 @@ .H2 "Structural Rework .P +.ZZ Although the stylistic changes described already improve the readability of the source code, all of them were changes ``in the small''. Structural changes, in contrast, affect much larger code areas. @@ -3001,11 +3008,11 @@ .Sw -[no]inplace . Then Jon Steinhart introduced his attachment system. In need for more advanced annotation handling, he extended -.Pn anno . -He added five more switches: +.Pn anno +and added five more switches: .Sw -draft , .Sw -list , -.Sw -delete , +.Sw \%-delete , .Sw -append , and .Sw -number , @@ -3070,16 +3077,16 @@ Such structural differences can only be solved by adjusting the structure of the implementation to the structure of the problem. .P -Steinhart had added the new +Steinhart had added the .Sw -list and .Sw -delete -switches in a style similar to the other switches though +switches in the same way as the other switches though they are of structural different type. Semantically, .Sw -list and -.Sw -delete +.Sw \%-delete introduce operation modes. Historically, .Pn anno @@ -3483,6 +3490,7 @@ .Pn mhmail will be removed. .P +.ZZ -1 In the mmh tool chest, every program reads the profile. (\c .Pn slocal @@ -3524,7 +3532,7 @@ The explanation neither matches the problem concerned exactly nor is the interpretation clear. If the described desire addresses the technical level, -then it conflicts fundamentally with the Unix philosophy, +then it conflicts with the Unix philosophy, precisely because the indistinquishability of human and script input is the main reason for the huge software leverage in Unix. If, however, the described desire addresses the user's view, @@ -3564,6 +3572,7 @@ if systems do not support these standardized and widespread functions. This compromise is made because mmh focuses on the future. .P +.ZZ As I am still in my twenties, have no programming experience from past decades. I have not followed the evolution of C through time. @@ -3676,6 +3685,7 @@ .Fu strrchr() provides the core functionality. .BU +.ZZ The .Fu ssequal() function \(en apparently for ``substring equal'' \(en @@ -3693,7 +3703,7 @@ * if that needs to be changed. Prefix checking is cheaper, so * should be kept if it's sufficient. */ - +sp .5 /* * Check if s1 is a substring of s2. * If yes, then return 1, else return 0. @@ -4056,6 +4066,8 @@ .Ci 469a4163c2a1a43731d412eaa5d9cae7d670c48b .Ci aed384169af5204b8002d06e7a22f89197963d2d .Ci 3caf9e298a8861729ca8b8a84f57022b6f3ea742 . +.P +.ZZ -1 The decrease of tools built from multiple source files and thus the decrease of .Fn uip/*sbr.c diff -r e526e3cb85d3 -r 77c87c38bff4 input/mh-session --- a/input/mh-session Mon Jul 16 00:42:13 2012 +0200 +++ b/input/mh-session Mon Jul 16 01:47:12 2012 +0200 @@ -57,9 +57,5 @@ 1 2012-07-04 23:42 Bob The Unix philosophy VE .VS -$ f(CBscan +sentfP fI(list the messages in folder `sent')fP - 1 2012-07-12 08:23 To:"Jean-Luc Pica Re: Good advice -VE -.VS $ VE diff -r e526e3cb85d3 -r 77c87c38bff4 intro.roff --- a/intro.roff Mon Jul 16 00:42:13 2012 +0200 +++ b/intro.roff Mon Jul 16 01:47:12 2012 +0200 @@ -312,6 +312,7 @@ but the community did not want to have them active by default. Mmh is my way to change this. .P +.ZZ In my eyes, MH's concepts could be exploited better and the style of the tools could be improved. Both would simplify and generalize the system, providing cleaner