Mercurial > docs > master
changeset 95:edac7e46a9f2
More text about switches.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Sat, 16 Jun 2012 13:26:30 +0200 |
parents | 13bdd6917156 |
children | 12348d620245 |
files | ch03.roff |
diffstat | 1 files changed, 426 insertions(+), 57 deletions(-) [+] |
line wrap: on
line diff
--- a/ch03.roff Sat Jun 16 09:26:57 2012 +0200 +++ b/ch03.roff Sat Jun 16 13:26:30 2012 +0200 @@ -1076,8 +1076,17 @@ The special-casing of `the' draft message became irrelevant after the rework of the draft system. (See Sec. XXX.) +Equally, +.Pn comp +lost its +.Sw -file +switch. +The draft folder facility, together with the +.Sw -form +switch, are sufficient. -.U3 "Inplace + +.U3 "Inplace Editing .P .Pn anno had the switches @@ -1103,98 +1112,455 @@ .Pn burst also had .Sw -[no]inplace -switches, but they had different meaning, as written in nmh's -.Mp burst(1) -man page: -.sp -.QP -If -noinplace is given, each digest is preserved, no table -of contents is produced, and the messages contained within -the digest are placed at the end of the folder. Other messages -are not tampered with in any way. -.sp -.P +switches, but with different meaning. With .Sw -inplace , the digest had been replaced by the table of contents (i.e. the introduction text) and the bursted messages were placed right after this message, renumbering all following messages. -Also, any trailing text of the digest will be lost, though, +Also, any trailing text of the digest was lost, though, in practice, it usually consists of an end-of-digest marker only. +Nontheless, this behavior appeared less elegant than the +.Sw -noinplace +behavior, which already had been the default. +Nmh's +.Mp burst (1) +man page reads: +.sp \n(PDu +.QP +If -noinplace is given, each digest is preserved, no table +of contents is produced, and the messages contained within +the digest are placed at the end of the folder. Other messages +are not tampered with in any way. +.sp \n(PDu +.LP The decision to drop the .Sw -inplace -behavior was supported by the complexity and possible data loss -it introduced. +behavior was supported by the code complexity and the possible data loss +it caused. .Sw -noinplace -was the default behavior already and is the chosen behavior now. +was chosen to be the definitive behavior. + + +.U3 "Forms and Format Strings +.P +Historically, the tools that had +.Sw -form +switches to supply a form file had +.Sw -format +switches as well to supply the contents of a form file as a string +on the command line directly. +In consequence, the following two lines equaled: +.VS +scan -form scan.mailx +scan -format "`cat .../scan.mailx`" +VE +The +.Sw -format +switches were dropped in favor for extending the +.Sw -form +switches. +If their argument starts with an equal sign (`='), +then the rest of the argument is taken as a format string, +otherwise the arguments is treated as the name of a format file. +Thus, now the following two lines equal: +.VS +scan -form scan.mailx +scan -form "=`cat .../scan.mailx`" +VE +This rework removed the prefix collision between +.Sw -form +and +.Sw -format . +Now, typing +.Sw -fo +suffices to specify form or format string. +.P +The different meaning of +.Sw -format +for +.Pn repl +and +.Pn forw +was removed in mmh. +.Pn forw +was completely switched to MIME-type forwarding, thus removing the +.Sw -[no]format . +For +.Pn repl , +the +.Sw -[no]format +switches were reworked to +.Sw -[no]filter +switches. +The +.Sw -format +switches of +.Pn send +and +.Pn post , +which had a third meaning, +were removed likewise. +Eventually, the ambiguity of the +.Sw -format +switches was resolved by not anymore having any such switch in mmh. + + +.U3 "MIME Tools +.P +The MIME tools, which were once part of +.Pn mhn , +had several switches that added little practical value to the programs. +The +.Sw -[no]realsize +switches of +.Pn mhbuild +and +.Pn mhlist +were removed, doing real size calculations always now, as +``This provides an accurate count at the expense of a small delay.'' +This small delay is not noticable on modern systems. +.P +The +.Sw -[no]check +switches were removed together with the support for +.Hd Content-MD5 +header fields. +.[ +rfc 1864 +.] +(See Sec. XXX) +.P +The +.Sw -[no]ebcdicsafe +and +.Sw -[no]rfc934mode +switches of +.Pn mhbuild +were removed because they are considered obsolete. +.P +Content caching of external MIME parts, activated with the +.Sw -rcache +and +.Sw -wcache +switches was completely removed. +External MIME parts are truly rare today, having a caching facility +for them is appeares to be unnecessary. +.P +In pre-MIME times, +.Pn mhl +had covered many tasks that are part of MIME handling today. +Therefore, +.Pn mhl +could be simplified to a large extend, reducing the number of its +switches from 21 to 6. + + +.U3 "Mail Transfer Switches +.P +With the removal of the mail transfer facilities, a lot of switches +vanished automatically. +.Pn inc +lost 9 switches, namely +.Sw -host , +.Sw -port , +.Sw -user , +.Sw -proxy , +.Sw -snoop , +.Sw -[no]pack , +as well as +.Sw -sasl +and +.Sw -saslmech . +.Pn send +and +.Pn post +lost 11 switches each, namely +.Sw -server , +.Sw -port , +.Sw -client , +.Sw -user , +.Sw -mail , +.Sw -saml , +.Sw -send , +.Sw -soml , +.Sw -snoop , +as well as +.Sw -sasl , +.Sw -saslmech , +and +.Sw -tls . +.Pn send +had the switches only to pass them further to +.Pn post , +because the user would invoke +.Pn post +not directly, but through +.Pn send . +All these switches, except +.Sw -snoop +were usually defined as default switches in the user's profile, +but hardly given in interactive usage. +.P +Of course, those switches did not really ``vanish'', but the configuration +they did was handed over to external MSAs and MRAs. +Instead of setting up the mail transfer in mmh, it is set up in +external tools. +Yet, this simplifies mmh. +Specialized external tools will likely have simple configuration files. +Hence, instead of having one complicated central configuration file, +the configuration of each domain is separate. +Although the user needs to learn to configure each of the tools, +each configuration is likely much simpler. + + +.U3 "Maildrop Formats +.P +With the removal of MMDF maildrop format support, +.Pn packf +and +.Pn rcvpack +no longer needed their +.Sw -mbox +and +.Sw -mmdf +switches. +.Sw -mbox +is the sole behavior now. +In the same go, +.Pn packf +was reworked (see Sec. XXX) and its +.Sw -file +switch became unnecessary. -.U3 "mbox and MMDF + +.U3 "Terminal Magic +.P +Mmh's tools will no longer clear the screen (\c +.Pn scan 's +and +.Pn mhl 's +.Sw -[no]clear +switches). +Neither will +.Pn mhl +ring the bell (\c +.Sw -[no]bell ) +nor page the output itself (\c +.Sw -length ). +.P +Generally, the pager to use is no longer specified with the +.Sw -[no]moreproc +command line switches for +.Pn mhl +and +.Pn show /\c +.Pn mhshow . +.P +.Pn prompter +lost its +.Sw -erase +and +.Sw -kill +switches because today the terminal cares for the line editing keys. + + +.U3 "Header Printing +.P +.Pn folder 's +data output is self-explaining enough that +displaying the header line makes few sense. +Hence, the +.Sw -[no]header +switch was removed and headers are never printed. +.P +In +.Pn mhlist , +the +.Sw -[no]header +switches were removed, too. +But in this case headers are always printed, +because the output is not self-explaining. +.P +.Pn scan +also had +.Sw -[no]header +switches. +Printing the header had been sensible until the introduction of +format strings made it impossible to display the column headings. +Only the folder name and the current date remained to be printed. +As this information can be perfectly retrieved by +.Pn folder +and +.Pn date , +consequently, the switches were removed. +.P +By removing all +.Sw -header +switches, the collision with +.Sw -help +on the first two letters was resolved. +Currently, +.Sw -h +evaluates to +.Sw -help +for all tools of mmh. + + +.U3 "Suppressing Edits or the WhatNow Shell +.P +The +.Sw -noedit +switches of +.Pn comp , +.Pn repl , +.Pn forw , +.Pn dist , +and +.Pn whatnow +was removed, but it can now be replaced by specifying +.Sw -editor +with an empty argument. +(Specifying +.Cl "-editor true +is nearly the same, only differing by the previous editor being set.) .P -packf: file mbox mmdf -rcvpack: mbox mmdf +The more important change is the removal of the +.Sw -nowhatnowproc +switch. +This switch had introduced an awkward behavior, as explained in nmh's +man page for +.Mp comp (1): +.QP +The \-editor editor switch indicates the editor to use for +the initial edit. Upon exiting from the editor, comp will +invoke the whatnow program. See whatnow(1) for a discussion +of available options. The invocation of this program can be +inhibited by using the \-nowhatnowproc switch. (In truth of +fact, it is the whatnow program which starts the initial +edit. Hence, \-nowhatnowproc will prevent any edit from +occurring.) +.P +Effectively, the +.Sw -nowhatnowproc +switch stored a copy of the form file into the draft folder. +As +.Cl "-whatnowproc true +causes the same behavior, the +.Sw -nowhatnowproc +switch was removed for being redundant. +Likely, however, the intention for specifying +.Sw -nowhatnowproc +is sending a fully prepared form file at once. +This can be done with +.Cl "-whatnowproc send" . + + +.U3 "Compatibility Switches +.BU +The hidden +.Sw -[no]total +switches of +.Pn flist . +They were simply the inverse of the visible +.Sw -[no]fast +switches: +.Sw -total +was +.Sw -nofast +and +.Sw -nototal +was +.Sw -fast . +I removed the +.Sw -[no]total +legacy. +.BU +The +.Sw -subject +switch of +.Pn sortm +existed for compatibility only. +It can be fully replaced by +.Cl "-textfield subject +thus it was removed. + + +.U3 "Various +.BU +In order to avoid prefix collisions amoung switch names, the +.Sw -version +switch was renamed to +.Sw -Version +(with capital `V'). +Every program has the +.Sw -version +switch but its first three letters collided with the +.Sw -verbose +switch, present in many programs. +The rename solved this problem once for all. +Although this rename breaks a basic interface, having the +.Sw -V +abbreviation to display the version information, isn't all too bad. +.BU +.Sw -[no]preserve +of +.Pn refile +was removed because what use was it anyway? +.QP +Normally when a message is refiled, for each destination +folder it is assigned the number which is one above the current +highest message number in that folder. Use of the +\-preserv [sic!] switch will override this message renaming, and try +to preserve the number of the message. If a conflict for a +particular folder occurs when using the \-preserve switch, +then refile will use the next available message number which +is above the message number you wish to preserve. +.BU +The removal of the +.Sw -[no]reverse +switches of +.Pn scan +is a bug fix, supported by the comments +``\-[no]reverse under #ifdef BERK (I really HATE this)'' +by Rose and +``Lists messages in reverse order with the `\-reverse' switch. +This should be considered a bug.'' by Romine in the documentation. +The question remaining is why neither Rose and Romine had fixed this +bug in the Eighties when they wrote these comments nor has anyone +thereafter. .ig -ap: width -dp: width -burst: [no]quiet -flist: [no]total -folder: [no]header +forw: [no]dashstuffing(mhl) -comp: file -dist: file(msh) -forw: filter, [no]mime, [no]dashstuffing(mhl) -repl: [no]format/filter width +mhshow: [no]pause [no]serialonly mhmail: resent queued inc: snoop, (pop) -mhbuild: [no]check, [no]ebcdicsafe, [no]headers, [no]list, [no]realsize - [no]rfc934mode, [no]contentid (caching) -mhlist: [no]check [no]headers [no]realsize (caching) -mhstore: [no]check [no]verbose (caching) - -scan: [no]clear [no]header [no]reverse -mhl: [no]bell [no]clear [no]faceproc folder [no]moreproc length sleep +mhl: [no]faceproc folder sleep [no]dashstuffing(forw) digest list volume number issue number -mhshow: [no]check [no]pause [no]serialonly (caching) [no]moreproc - length width -prompter: erase kill [no]doteof +prompter: [no]doteof refile: [no]preserve [no]unlink [no]rmmproc -send: filter [no]format [no]forward [no]mime [no]msgid +send: [no]forward [no]mime [no]msgid [no]push split [no]unique (sasl) width snoop [no]dashstuffing attach attachformat whatnow: (noedit) attach slocal: [no]suppressdups -sortm: subject - -spost: [no]filter [no]format [no]remove [no]backup width [no]push idanno +spost: [no]filter [no]backup width [no]push idanno [no]check(whom) whom(whom) whom: ??? - -(pop) host, port, user, [no]pack, proxy -(smtp) mail saml send soml client server user port -(sasl) sasl, saslmech -(tls) -(caching) rcache wcache +.. -noedit -nowhatnowproc - - -format -> form - -version -> Version - -.. .ig @@ -1233,6 +1599,9 @@ .. + + + .H1 "Modernizing