# HG changeset patch # User markus schnalke # Date 1335088186 -7200 # Node ID 55ec590cfa0715775995e06029b1cdc5fb3f15eb # Parent 9e17ad63f7f1539e923f41bb73f3e2ba7c226783 Wrote about the draft folder. diff -r 9e17ad63f7f1 -r 55ec590cfa07 ch03.roff --- a/ch03.roff Sat Apr 21 11:40:28 2012 +0200 +++ b/ch03.roff Sun Apr 22 11:49:46 2012 +0200 @@ -117,6 +117,64 @@ by the removal. +.H1 "Draft and Trash Folders +.U2 "The Draft Folder +.P +Historically, MH provided exactly one draft message, named `\fLdraft\fP' and +being located in the MH directory. When starting to compose another message +before the former one was sent, the user had been questioned wether to use, +refile or replace the old draft. Working on multiple drafts at the same time +was impossible. One could only work on them in alteration by refiling the +previous one to some directory and fetching some other one for reediting. +This manual draft management needed to be done each time the user wanted +to switch between editing one draft to editing another. +.P +To allow true parallel editing of drafts, in a straight forward way, the +draft folder facility exists. It had been introduced already in July 1984 +by Marshall T. Rose. The facility was deactivated by default. +Even in nmh, the draft folder facility remained deactivated by default. +At least, Richard Coleman added the man page \fImh-draft(5)\fI to document +the feature well. +.P +The only advantage of not using the draft folder facility is the static +name of the draft file. This could be an issue for MH frontends like mh-e. +But as they likely want to provide working on multiple drafts in parallel, +the issue is only concerning compatibility. The aim of nmh to stay compatible +prevented the default activation of the draft folder facility. +.P +On the other hand, a draft folder is the much more natural concept than +a draft message. MH's mail storage consists of folders and messages, +the messages named with ascending numbers. A draft message breaks with this +concept by introducing a message in a file named ``draft''. This draft +message is special. It can not be simply listed with the available tools, +but instead special switches were required. I.e. corner-cases were +introduced. A draft folder, in contrast, does not introduce such +corner-cases. The available tools can operate on the messages within that +folder like on any messages within any mail folders. The only difference +is the fact that the default folder for \fLsend\fP is the draft folder, +instead of the current folder, like for all other tools. +.P +The trivial part of the change was activating the draft folder facility +by default and setting a default name for this folder. Obviously, I chose +the name ``\fL+drafts\fP''. This made the \fL\-draftfolder\fP and +\fL\-draftmessage\fP switches useless, thus I could remove them two. +The more difficult but also the part that showed the real improvement, +was updating the tools to the new concept. \fL\-draft\fP switches could +be dropped, as operating on a draft message became indistinguishable to +operating on any other message for the tools. \fLcomp\fP still has its +\fL\-use\fP switch for switching between its two modes: (1) Compose a new +draft, possibly by taking some existing message as a form. (2) Modify +an existing draft. In either case, the behavior of \fLcomp\fP is +deterministic. There is no more need to query the user. I consider this +a major improvement. By making \fLsend\fP simply operate on the current +message in the draft folder by default, with both, message and folder, +overridable by specifying them on the command line, it is now possible +to send any message in the storage by simply specifying its folder and +name. +.P +All theses changes converted special cases to regular cases, thus +simplifying the tools and increasing the flexibility. + .H1 "Paths to ... .P