# HG changeset patch # User markus schnalke # Date 1341825390 -7200 # Node ID 8b411125645d6ff43eeb4d40caccc517f5131516 # Parent a6dc418ab0a4f420a76bb990b00363d5f8d24678 Corrections and improvements by Kate, Phil, Matou, Michi, Lydi. diff -r a6dc418ab0a4 -r 8b411125645d colophon.roff --- a/colophon.roff Sun Jul 08 17:25:35 2012 +0200 +++ b/colophon.roff Mon Jul 09 11:16:30 2012 +0200 @@ -3,8 +3,8 @@ This document was typeset with the .I troff document preparation system on Unix. -After having typset my diploma thesis with Latex, the choice for -troff was similar to prefering MH over mutt. +After having typset my diploma thesis with LaTeX, +the choice for troff was similar to prefering MH over mutt. .P I used the troff implementation of the Heirloom doctools, and built upon the diff -r a6dc418ab0a4 -r 8b411125645d discussion.roff --- a/discussion.roff Sun Jul 08 17:25:35 2012 +0200 +++ b/discussion.roff Mon Jul 09 11:16:30 2012 +0200 @@ -21,10 +21,11 @@ I believe that the development of all-in-one mail systems is obsolete. Today, email is too complex to be fully covered by single projects. Such a project won't be able to excel in all aspects. -Instead, the aspects of email should be covered my multiple projects, +Instead, the aspects of email should be covered by multiple projects, which then can be combined to form a complete system. Excellent implementations for the various aspects of email exist already. Just to name three examples: Postfix is a specialized MTA, +.\" XXX homepages verlinken Procmail is a specialized MDA, and Fetchmail is a specialized MRA. I believe that it is best to use such specialized tools instead of providing the same function again as a side-component in the project. @@ -65,7 +66,7 @@ .P Focusing on one mail agent role only is motivated by Eric Allman's experience with Sendmail. -He identified limiting Sendmail the MTA task had be one reason for +He identified the limitation of Sendmail to the MTA task as one reason for its success: .[ [ costales sendmail @@ -78,12 +79,12 @@ were incorporated directly into the user agents. .QE .P -In mmh, the Mail Submission Agent (MSA) is called +In nmh, the Mail Submission Agent (MSA) is called \fIMessage Transfer Service\fP (MTS). This facility, implemented by the .Pn post command, established network connections and spoke SMTP to submit -messages for relay to the outside world. +messages to be relayed to the outside world. The changes in email demanded changes in this part of nmh too. Encryption and authentication for network connections needed to be supported, hence TLS and SASL were introduced into nmh. @@ -126,7 +127,7 @@ from remote locations. .Ci ab7b48411962d26439f92f35ed084d3d6275459c Instead, it depends on an external tool to cover this task. -In mmh exist two paths for messages to enter mmh's mail storage: +In mmh, two paths exist for messages to enter mmh's mail storage: (1) Mail can be incorporated with .Pn inc from the system maildrop, or (2) with @@ -139,12 +140,12 @@ An external MSA is required to transfer mail to the outside world; an external MRA is required to retrieve mail from remote machines. There exist excellent implementations of such software, -which do this specific task likely better than the internal -versions had done it. -Also, the best suiting programs can be freely chosen. +which likely are superior than the internal version. +Additionally, the best suiting programs can be freely chosen. .P As it had already been possible to use an external MSA or MRA, why not keep the internal version for convenience? +.\" XXX ueberleitung The question whether there is sense in having a fall-back pager in all the command line tools, for the cases when .Pn more @@ -202,6 +203,7 @@ that covers the field. Today, this is a reasonable exchange. .P +.\" XXX ueberleitung ??? Functionality can be added in three different ways: .BU Implementing the function originally in the project. @@ -210,7 +212,8 @@ .BU Depending on a program that provides the function. .P -Whereas adding the function originally to the project increases the +.\" XXX Rework sentence +While adding the function originally to the project increases the code size most and requires most maintenance and development work, it makes the project most independent of other software. Using libraries or external programs require less maintenance work @@ -221,7 +224,7 @@ thus information can be exchanged more flexible. Adding code to a project increases maintenance work. .\" XXX ref -Implementing complex functions originally in the project adds +Implementing complex functions in the project itself adds a lot of code. This should be avoided if possible. Hence, the dependencies only change in kind, not in their existence. @@ -230,8 +233,8 @@ and .Pn libcrypto /\c .Pn libssl -were treated against program dependencies on an MSA and an MRA. -This also meant treating build-time dependencies against run-time +were traded against program dependencies on an MSA and an MRA. +This also meant trading build-time dependencies against run-time dependencies. Besides program dependencies providing the stronger separation and being more flexible, they also allowed @@ -246,6 +249,7 @@ Also, the popular MSAs and MRAs have large communities and a lot of documentation available. Choices for MSAs range from full-featured MTAs like +.\" XXX refs .I Postfix over mid-size MTAs like .I masqmail @@ -292,7 +296,7 @@ was removed .Ci 14767c94b3827be7c867196467ed7aea5f6f49b0 because its use case of writing to the user's terminal -on receiving of mail is obsolete. +on receival of mail is obsolete. If users like to be informed of new mail, the shell's .Ev MAILPATH variable or graphical notifications are technically more appealing. @@ -305,6 +309,7 @@ VE .BU .Pn viamail +.\" XXX was macht viamail was removed .Ci eda72d6a7a7c20ff123043fb7f19c509ea01f932 when the new attachment system was activated, because @@ -317,6 +322,7 @@ .Ci 0e82199cf3c991a173e0ac8aa776efdb3ded61e6 .BU .Pn msgchk +.\" XXX was macht msgchk was removed .Ci bb9360ead7eb7a3fedcce2eeedfc660014e41dbe , because it lost its use case when POP support was removed. @@ -343,11 +349,11 @@ .Ci 916690191222433a6923a4be54b0d8f6ac01bd02 because the tool was in conflict with the philosophy of MH. It provided an interactive shell to access the features of MH, -but it wasn't just a shell, tailored to the needs of mail handling. +but it wasn't just a shell tailored to the needs of mail handling. Instead it was one large program that had several MH tools built in. This conflicts with the major feature of MH of being a tool chest. .Pn msh 's -main use case had been accessing Bulletin Boards, which have seized to +main use case had been accessing Bulletin Boards, which have ceased to be popular. .P Removing @@ -422,7 +428,7 @@ .Pn slocal in need for deeper investigation. In the meanwhile, it remains part of mmh. -That does not hurt because +However, its continued existence is not significant because .Pn slocal is unrelated to the rest of the project. @@ -432,6 +438,7 @@ .Id mhshow .P Since the very beginning, already in the first concept paper, +.\" XXX ref!!! .Pn show had been MH's message display program. .Pn show @@ -509,7 +516,7 @@ MIME messages, although it is the other way round. As .Pn mhshow -had already be able to display non-MIME messages, it appeared natural +had already been able to display non-MIME messages, it appeared natural to drop .Pn show in favor of using @@ -554,7 +561,8 @@ even more natural. Today, mmh's new .Pn show -became the one single message display program again, with the difference +has become the one single message display program once more, +with the difference that today it handles MIME messages as well as non-MIME messages. The outcome of the transition is one program less to maintain, no second display program for users to deal with, @@ -563,10 +571,11 @@ Still, removing the old .Pn show hurts in one regard: It had been such a simple program. -Its lean elegance is missing to the new -.Pn show . -But there is no chance; -supporting MIME demands for higher essential complexity. +Its lean elegance is missing from the new +.Pn show , +.\" XXX +however there is no alternative; +supporting MIME demands higher essential complexity. .ig XXX @@ -591,13 +600,13 @@ There is the cost of code complexity to be able to customize. There is the cost of less tested setups, because there are more possible setups and especially corner-cases. -And, there is the cost of choice itself. +Additionally, there is the cost of choice itself. The code complexity directly affects the developers. Less tested code affects both, users and developers. -The problem of choice affects the users, for once by having to -choose, but also by more complex interfaces that require more documentation. -Whenever options add little advantages, they should be considered for -removal. +The problem of choice affects the users, for once by having to choose, +but also by more complex interfaces that require more documentation. +Whenever options add few advantages but increase the complexity of the +system, they should be considered for removal. I have reduced the number of project-specific configure options from fifteen to three. @@ -611,10 +620,14 @@ and .Sw --with-cyrus-sasl had activated the support for transfer encryption and authentication. +.\" XXX cf +.\" XXX gruende kurz wiederholen This is not needed anymore. .Ci fecd5d34f65597a4dfa16aeabea7d74b191532c3 .Ci 156d35f6425bea4c1ed3c4c79783dc613379c65b .P +.\" XXX cf +.\" XXX ``For the same reason ...'' The configure switch .Sw --enable-pop activated the message retrieval facility. @@ -624,7 +637,7 @@ Whereas the code base changes would only slightly change on toggling TLS or SASL support, it changed much on toggling POP support. The changes in the code base could hardly be overviewed. -By having POP support togglable a second code base had been created, +By having POP support togglable, a second code base had been created, one that needed to be tested. This situation is basically similar for the conditional TLS and SASL code, but there the changes are minor and can yet be overviewed. @@ -638,6 +651,7 @@ .Ar smtp or .Ar sendmail . +.\" XXX naechster Satz ganz raus? In mmh this fixed to .Ar sendmail . .Ci f6aa95b724fd8c791164abe7ee5468bf5c34f226 @@ -654,6 +668,7 @@ The backup prefix is the string that was prepended to message filenames to tag them as deleted. By default it had been the comma character `\f(CW,\fP'. +.\" XXX Zeitlich ordnen In July 2000, Kimmo Suominen introduced the configure option .Sw --with-hash-backup @@ -681,7 +696,7 @@ Using the hash as backup prefix can be seen as a precaution against data loss. .P -I removed the configure option but added the profile entry +First, I removed the configure option but added the profile entry .Pe backup-prefix , which allows to specify an arbitrary string as backup prefix. .Ci 6c40d481d661d532dd527eaf34cebb6d3f8ed086 @@ -823,6 +838,7 @@ .Ci ecd6d6a20cb7a1507e3a20d6c4cb3a1cf14c6bbf The change removed functionality too, but that is minor to the improvement by dropping the dependency and the complex autoconf code. +.\" XXX argument: slocal ist sowieso nicht teil vom mmh kern .U3 "mh-e Support .P @@ -849,6 +865,7 @@ .Ci a7ce7b4a580d77b6c2c4d980812beb589aa4c643 Removing the option removed a second code setup that would have needed to be tested. +.\" XXX datum? This change was first done in nmh and thereafter merged into mmh. .P The interface changes in mmh require mh-e to be adjusted in order @@ -918,6 +935,7 @@ hadn't supported it already. .Ci 2abae0bfd0ad5bf898461e50aa4b466d641f23d9 Username extensions are possible in mmh, but less convenient to use. +.\" XXX covered by next paragraph .\" XXX format file %(getenv USERNAME_EXTENSION) .P The @@ -978,8 +996,8 @@ Every program in mmh has two generic switches: .Sw -help , to print a short message on how to use the program, and -.Sw -Version , -to tell what version of mmh the program belongs to. +.Sw -Version +[sic!], to tell what version of mmh the program belongs to. .P Switches change the behavior of programs. Programs that do one thing in one way require no switches. @@ -1050,7 +1068,7 @@ (These numbers include two generic switches, help and version.) .P The figure displays the number of switches for each of the tools -that is available in both, nmh and mmh. +that is available in both nmh and mmh. The tools are sorted by the number of switches they had in nmh. Visible and hidden switches were counted, but not the generic help and version switches. @@ -1108,7 +1126,7 @@ The only flexibility removed with this change is having multiple draft folders within one profile. I consider this a theoretical problem only. -In the same go, the +At the same time, the .Sw -draft switch of .Pn anno , @@ -1116,9 +1134,9 @@ and .Pn send was removed. -The special-casing of `the' draft message became irrelevant after +The special treatment of \fIthe\fP draft message became irrelevant after the rework of the draft system. -(df. Sec. +(cf. Sec. .Cf draft-folder ) Equally, .Pn comp @@ -1270,7 +1288,9 @@ .Pn mhlist were removed, doing real size calculations always now .Ci 8d8f1c3abc586c005c904e52c4adbfe694d2201c , -as +as nmh's +.Mp mhbuild (1) +man page states ``This provides an accurate count at the expense of a small delay.'' This small delay is not noticable on modern systems. .P @@ -1303,7 +1323,7 @@ switches was completely removed. .Ci d1fefd9f614e4dc3cda16da6c69133c1b2005269 External MIME parts are rare today, having a caching facility -for them is appears to be unnecessary. +for them appears to be unnecessary. .P In pre-MIME times, .Pn mhl @@ -1322,7 +1342,7 @@ .P .Pn folder 's data output is self-explaining enough that -displaying the header line makes few sense. +displaying the header line makes little sense. Hence, the .Sw -[no]header switch was removed and headers are never printed. @@ -1379,7 +1399,7 @@ with an empty argument. .Ci 75fca31a5b9d5c1a99c74ab14c94438d8852fba9 (Specifying -.Cl "-editor true +.Cl "-editor /bin/true is nearly the same, only differing by the previous editor being set.) .P The more important change is the removal of the @@ -1404,7 +1424,7 @@ .Sw -nowhatnowproc switch creates only a draft message. As -.Cl "-whatnowproc true +.Cl "-whatnowproc /bin/true causes the same behavior, the .Sw -nowhatnowproc switch was removed for being redundant. @@ -1454,6 +1474,7 @@ nor page the output itself (\c .Sw -length .Ci 5b9d883db0318ed2b84bb82dee880d7381f99188 ). +.\" XXX Ref Generally, the pager to use is no longer specified with the .Sw -[no]moreproc command line switches for @@ -1507,6 +1528,7 @@ by Rose and ``Lists messages in reverse order with the `\-reverse' switch. This should be considered a bug.'' by Romine in the documentation. +.\" XXX Ref: welche datei genau. The question remains why neither Rose and Romine had fixed this bug in the eighties when they wrote these comments nor has anyone thereafter. @@ -1563,8 +1585,8 @@ .\" -------------------------------------------------------------- .H1 "Modernizing .P -In the over thirty years of MH's existence, its code base was -extended more and more. +In the more thirty years of MH's existence, its code base was +increasingly extended. New features entered the project and became alternatives to the existing behavior. Relicts from several decades have gathered in the code base, @@ -1578,13 +1600,15 @@ .H2 "Code Relicts .P -My position to drop obsolete functions of mmh, in order to remove old code, -is much more revolutional than the nmh community likes to have it. -Working on an experimental version, I was able to quickly drop +My position regarding the removal of obsolete functions of mmh, +.\" XXX ``in order to remove old code,'' +is much more revolutional than the nmh community appreciates. +Working on an experimental version, I was quickly able to drop functionality I considered ancient. The need for consensus with peers would have slowed this process down. Without the need to justify my decisions, I was able to rush forward. In December 2011, Paul Vixie motivated the nmh developers to just +.\" XXX ugs do the work: .[ paul vixie edginess nmh-workers @@ -1603,18 +1627,20 @@ .LP I did so already in the months before. I pushed forward. +.\" XXX semicolon ? I simply dropped the cruft. .P The decision to drop a feature was based on literature research and -careful thinking, but whether having had contact to this particular +careful thinking, but whether having had contact with this particular feature within my own computer life served as a rule of thumb. -Always, I explained my reasons in the commit messages +I explained my reasons in the commit messages in the version control system. Hence, others can comprehend my view and argue for undoing the change if I have missed an important aspect. I was quick in dropping parts. -I rather re-included falsely dropped parts than going a slower pace. +I rather re-included falsely dropped parts than going at a slower pace. Mmh is experimental work; it required tough decisions. +.\" XXX ``exp. work'' schon oft gesagt .U3 "Forking @@ -1623,9 +1649,9 @@ In earlier times .Fu fork() had been an expensive system call, because the process's image needed -to be duplicated completely at once. -This was especially painful in the common case when the image gets -replaced by a call to +to be completely duplicated at once. +This expensive work was especially unnecessary in the commonly occuring +case wherein the image is replaced by a call to .Fu exec() right after having forked the child process. The @@ -1672,7 +1698,7 @@ .Fu fork() calls in the code were wrapped into loops to retry the .Fu fork() -several times, to increase the changes to succeed, eventually. +several times, to increase the chances to succeed, eventually. On modern systems, a failing .Fu fork() call is unusual. @@ -1695,7 +1721,7 @@ header fields is removed in mmh. .Ci 064527f7b57ab050e5af13e15ad99aeeab125857 .BU -Native support for +The native support for .Hd Face header fields has been removed, as well. .Ci 8e5be81f784682822f5e868c1bf3c8624682bd23 @@ -1706,7 +1732,7 @@ Instead of encoding the image data directly into the header field, it contains the hostname and UDP port where the image date can be retrieved. -There exists even a third Face system, +There is even a third Face system, which is the successor of .Hd X-Face , although it re-uses the @@ -1750,9 +1776,9 @@ but uses a different message delimiter (`\fL\\1\\1\\1\\1\fP', commonly written as `\fL^A^A^A^A\fP', instead of `\fLFrom\0\fP'). Mbox is the de-facto standard maildrop format on Unix, -whereas the MMDF maildrop format became forgotten. -I did drop MMDF maildrop format support. -Mbox is the only packed mailbox format supported in mmh. +whereas the MMDF maildrop format is now forgotten. +By dropping the MMDF maildrop format support, +mbox became the only packed mailbox format supported in mmh. .P The simplifications within the code were moderate. Mainly, the reading and writing of MMDF mailbox files was removed. @@ -1773,9 +1799,6 @@ is heavily optimized and thus dangerous to touch. The risk of damaging the intricate workings of the optimized code is too high. -.\" XXX: move somewhere else -This problem is known to the developers of nmh, too. -They also avoid touching this minefield. .U3 "Prompter's Control Keys @@ -1812,11 +1835,8 @@ .P More of a funny anecdote is a check for being connected to a hardcopy terminal. -It remained in the code until Spring 2012, when I finally removed it +It remained in the code until spring 2012, when I finally removed it .Ci b7764c4a6b71d37918a97594d866258f154017ca . -I would be truly happy to see such a terminal in action today, -maybe even being able to work on it. -But I fear my chances are null. .P The check only prevented a pager to be placed between the printing program (\c @@ -1831,7 +1851,7 @@ .Ev PAGER to .Pn cat -does the job. +is sufficient. @@ -1859,7 +1879,9 @@ 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. -In result, MH had all the MIME features but no idea of attachments. +.\" XXX rewrite ``no idea''. +As a result, +MH had all the MIME features but no idea of attachments. But users don't need all the MIME features, they want convenient attachment handling. @@ -1873,8 +1895,8 @@ .Fn docs/README-ATTACHMENTS , he described his motivation to do so as such: .QS -Although nmh contains the necessary functionality for MIME message handing, -the interface to this functionality is pretty obtuse. +Although nmh contains the necessary functionality for MIME message +handing [sic!], the interface to this functionality is pretty obtuse. There's no way that I'm ever going to convince my partner to write .Pn mhbuild composition files! @@ -1909,7 +1931,7 @@ It is pre-defined to .Hd Attach . .P -To add an attachment to a draft, simply add an attachment header: +To add an attachment to a draft, a header line needs to be added: .VS To: bob Subject: The file you wanted @@ -1927,7 +1949,7 @@ Drafts with attachment headers are converted to MIME automatically by .Pn send . The conversion to MIME is invisible to the user. -The draft stored in the draft folder is always in source form, with +The draft stored in the draft folder is always in source form with attachment headers. If the MIMEification fails, for instance because the file to attach is not accessible, the original draft is not changed. @@ -1936,7 +1958,7 @@ If the attachment header value starts with a plus character (`+'), like in .Cl "Attach: +bob 30 42" , -The given messages in the specified folder will be attached. +the given messages in the specified folder will be attached. This allowed to simplify .Pn forw . .Ci f41f04cf4ceca7355232cf7413e59afafccc9550 @@ -1951,7 +1973,7 @@ .Pe automimeproc profile entry could be specified to have the `mime' command invoked automatically each time. -Unfortunately, this approach conflicted with with attachment system +Unfortunately, this approach conflicted with attachment system because the draft would already be in MIME format at the time when the attachment system wanted to MIMEify it. To use nmh's attachment system, `mime' must not be called at the @@ -1968,9 +1990,10 @@ There is no `mime' command at the WhatNow prompt anymore. The draft will be converted automatically to MIME when either an attachment header or non-ASCII text is present. -Further more, the special meaning of the hash character (`#') -at line beginnings in the draft message is removed. -Users need not at all deal with the whole topic. +Furthermore, the hash character (`#') is not special any more +at line beginnings in the draft message. +.\" XXX REF ? +Users need not concern themselves with the whole topic at all. .P Although the new approach does not anymore support arbitrary MIME compositions directly, the full power of @@ -1985,18 +2008,17 @@ Because the resulting draft does neither contain non-ASCII characters nor has it attachment headers, the attachment system will not touch it. .P -The approach taken in mmh is tailored towards todays most common case: -a text part with possibly attachments. -This case is simplified a lot for users. +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 .P -The use of +From the programmer's point of view, the use of .Pn mhbuild -composition drafts had one notable advantage over attachment headers -from the programmer's point of view: The user provides the appropriate -MIME types for files to include. +composition drafts had one notable advantage over attachment headers: +The user provides the appropriate MIME types for files to include. The attachment system needs to find out the correct MIME type itself. This is a difficult task, yet it spares the user irritating work. Determining the correct MIME type of content is partly mechanical, @@ -2026,7 +2048,7 @@ Nevertheless, modern versions of GNU .Pn file , which is prevalent on the popular GNU/Linux systems, -provides MIME type output in machine-readable form. +provide MIME type output in machine-readable form. Although this solution is highly system-dependent, it solves the difficult problem well. On systems where GNU @@ -2050,8 +2072,8 @@ `application/octet-stream'. It is not possible in mmh to override the automatic MIME type guessing for a specific file. -To do so, the user would need to know in advance for which file -the automatic guessing does fail, or the system would require interaction. +To do so, either the user would need to know in advance for which file +the automatic guessing fails, or the system would require interaction. I consider both cases impractical. The existing solution should be sufficient. If not, the user may always fall back to @@ -2136,9 +2158,8 @@ Users will likely need to invoke .Pn mhstore a second time with -.Sw -force -then. -Eventually, only the user can decide in the concrete case. +.Sw -force . +Eventually, only the user can decide in the specific case. This requires interaction, which I like to avoid if possible. Appending a unique suffix to the filename is another bad option. For now, the behavior remains as it is. @@ -2149,15 +2170,16 @@ mode. Instead of storing message/rfc822 parts as files to disk, they are stored as messages into the current mail folder. -The same applies to message/partial, only, the parts are reassembled -automatically before. -Parts of type message/external-body are not automatically retrieved -anymore. Instead, Information on how to retrieve them is output. +The same applies to message/partial, although the parts are +automatically reassembled beforehand. +MIME parts of type message/external-body are not automatically retrieved +anymore. +Instead, information on how to retrieve them is output. Not supporting this rare case saved nearly one thousand lines of code. .Ci 55e1d8c654ee0f7c45b9361ce34617983b454c32 .\" XXX mention somewhere else too: (The profile entry `nmh-access-ftp' .\" and sbr/ruserpass.c for reading ~/.netrc are gone now.) -Not special anymore is `application/octet-stream; type=tar'. +`application/octet-stream; type=tar' is not special anymore. Automatically extracting such MIME parts had been the dangerous part of the .Sw -auto @@ -2186,7 +2208,7 @@ .Pn mhshow 's behavior to the modern view on the topic. .P -Note that this section completely ignores the original +One should note that this section completely ignores the original .Pn show program, because it was not capable to display MIME messages and is no longer part of mmh. @@ -2197,6 +2219,7 @@ in mmh, this section uses the name .Pn mhshow , in order to avoid confusion. +.\" XXX ref to other section .P In mmh, the basic idea is that .Pn mhshow diff -r a6dc418ab0a4 -r 8b411125645d intro.roff --- a/intro.roff Sun Jul 08 17:25:35 2012 +0200 +++ b/intro.roff Mon Jul 09 11:16:30 2012 +0200 @@ -19,6 +19,7 @@ .P MH is a conceptual email system design and its concrete implementation. Notably, MH had started as a design proposal at RAND Corporation, +.\" XXX ref to rand corp. where the first implementation followed later. In spirit, MH is similar to Unix, which influenced the world more in being a set of system design concepts @@ -153,7 +154,7 @@ peek mh book .], Part II] Rose and Romine provide a deeper and more technical -though slightly outdated introduction in only about two dozens pages. +though slightly outdated introduction in only about two dozen pages. .[ rose romine real work .] @@ -203,6 +204,7 @@ While clearly separated on the outside, the programs turned out to be fairly interweaved inside. .\" XXX FIXME rewrite... +.\" nicht zweimal ``interweaved'' .\" Unfortunately, the clear separation on the outside turned out to be .\" fairly interweaved inside. .P @@ -213,7 +215,7 @@ such approaches, but unfortunately, it led to duplicated functions and half-hearted implementation of the concepts. .P -To provide backward-compatibility, it is a common understanding to not +To provide backward-compatibility, it is a common understanding not to change the default settings. In consequence, the user needs to activate modern features explicitly to be able to use them. @@ -224,6 +226,7 @@ emailing. The small but mature community around nmh needs few change as they have had their convenient setups for decades. +.\" XXX Explain more .H1 "mmh @@ -251,10 +254,12 @@ emphasizing that the project follows my visions and preferences. (My login name is \fImeillo\fP.) This project model was inspired by \fIdwm\fP, +.\" XXX Ref which is Anselm Garbe's personal window manager \(en targeted to satisfy Garbe's personal needs whenever conflicts appear. Dwm had retained its lean elegance and its focused character, whereas its community-driven predecessor \fIwmii\fP had grown fat over time. +.\" XXX ref The development of mmh should remain focused. @@ -311,7 +316,7 @@ ideas can be implemented and demonstrated, without the need to change nmh or its community. Of course, the results of the mmh project shall improve nmh, in the end. -By no means is my intend to work against the nmh project. +By no means it is my intent to work against the nmh project. .U2 "Target Field @@ -339,7 +344,7 @@ .P The typical users invoke mmh commands directly in an interactive shell session, but they use them to automate mail handling tasks as well. -Likely, they runs their mail setup on a server machine, +Likely, they run their mail setup on a server machine, to which they connect via ssh. They might also have local mmh installations on their workstations, where they tend to work with mmh directly in the shell instead @@ -381,7 +386,7 @@ .IP "Modernizing Mmh's feature set needs to become more modern. Better support for attachment and digital cryptography should be added. -MIME support should to be integrated deeper and more naturally. +MIME support should be integrated deeper and more naturally. The modern email features need to be readily available, out-of-the-box. On the other hand, bulletin board support and similar obsolete facilities can be dropped out. diff -r a6dc418ab0a4 -r 8b411125645d preface.roff --- a/preface.roff Sun Jul 08 17:25:35 2012 +0200 +++ b/preface.roff Mon Jul 09 11:16:30 2012 +0200 @@ -46,7 +46,7 @@ I took one semester off to travel through Latin America. During my time in Argentina, I wanted to work on Free Software. This brought me back to nmh. -Richard Sandelman, an active nmh user, cared for the official basis. +Richard Sandelman, an active nmh user, took care of the official basis. Juan Granda, an Argentine Free Software developer, provided a computer with Internet connection. Thanks to them, I was able to work on nmh during my three-month