docs/master

diff discussion.roff @ 164:5c01017be420

Reacted to suggestions by Aaron Mueller.
author markus schnalke <meillo@marmaro.de>
date Mon, 09 Jul 2012 23:42:59 +0200
parents 8b411125645d
children ea6eec1722d1
line diff
     1.1 --- a/discussion.roff	Mon Jul 09 22:32:24 2012 +0200
     1.2 +++ b/discussion.roff	Mon Jul 09 23:42:59 2012 +0200
     1.3 @@ -29,6 +29,7 @@
     1.4  Procmail is a specialized MDA, and Fetchmail is a specialized MRA.
     1.5  I believe that it is best to use such specialized tools instead of
     1.6  providing the same function again as a side-component in the project.
     1.7 +.\" XXX mail agent picture here
     1.8  .P
     1.9  Doing something well, requires to focus on a small set of specific aspects.
    1.10  Under the assumption that focused development produces better results
    1.11 @@ -165,9 +166,9 @@
    1.12  Here, this part of the Unix philosophy was applied not only
    1.13  to the programs but to the project itself.
    1.14  In other words:
    1.15 -``Develop projects that focus on one thing and do it well.''
    1.16 -Projects grown complex should be split for the same reasons programs grown
    1.17 -complex should be split.
    1.18 +Develop projects that focus on one thing and do it well.
    1.19 +Projects grown complex should be split for the same reasons programs
    1.20 +grown complex should be split.
    1.21  If it is conceptionally more elegant to have the MSA and MRA as
    1.22  separate projects then they should be separated.
    1.23  This is the case here, in my opinion.
    1.24 @@ -194,7 +195,7 @@
    1.25  As the mail systems grew even more, parts were split off.
    1.26  In nmh, for instance, the POP server, which was included in the original
    1.27  MH, was removed.
    1.28 -Now is the time to go one step further and split the MSA and MRA off, too.
    1.29 +Now is the time to go one step further and split off the MSA and MRA, too.
    1.30  Not only does this decrease the code size of the project,
    1.31  but, more important, it unburdens mmh of the whole field of
    1.32  message transfer with all its implications for the project.
    1.33 @@ -557,6 +558,7 @@
    1.34  first.
    1.35  (cf. Sec.
    1.36  .Cf mhshow )
    1.37 +.\" XXX code commits?
    1.38  Once the tools behaved more alike, the replacing appeared to be
    1.39  even more natural.
    1.40  Today, mmh's new
    1.41 @@ -647,21 +649,18 @@
    1.42  .P
    1.43  Two other options only specified default configuration values:
    1.44  .Sw --with-mts
    1.45 -defined the default transport service, either
    1.46 -.Ar smtp
    1.47 -or
    1.48 -.Ar sendmail .
    1.49 -.\" XXX naechster Satz ganz raus?
    1.50 -In mmh this fixed to
    1.51 -.Ar sendmail .
    1.52 +defined the default transport service.
    1.53  .Ci f6aa95b724fd8c791164abe7ee5468bf5c34f226
    1.54  With
    1.55  .Sw --with-smtpservers
    1.56 -default SMTP servers for the
    1.57 -.Ar smtp
    1.58 -transport service could be specified.
    1.59 +default SMTP servers could be specified.
    1.60  .Ci 128545e06224233b7e91fc4c83f8830252fe16c9
    1.61 -Both of them became irrelevant.
    1.62 +Both of them became irrelevant when the SMTP transport service was removed.
    1.63 +.\" XXX code ref
    1.64 +In mmh, all messages are handed over to
    1.65 +.Pn sendmail
    1.66 +for transportation.
    1.67 +
    1.68  
    1.69  .U3 "Backup Prefix
    1.70  .P
    1.71 @@ -707,7 +706,7 @@
    1.72  Eventually, however, the new trash folder concept
    1.73  (cf. Sec.
    1.74  .Cf trash-folder )
    1.75 -obsoleted the concept of the backup prefix completely.
    1.76 +removed the need for the backup prefix completely.
    1.77  .Ci 8edc5aaf86f9f77124664f6801bc6c6cdf258173
    1.78  .Ci ca0b3e830b86700d9e5e31b1784de2bdcaf58fc5
    1.79  
    1.80 @@ -997,7 +996,7 @@
    1.81  .Sw -help ,
    1.82  to print a short message on how to use the program, and 
    1.83  .Sw -Version
    1.84 -[sic!], to tell what version of mmh the program belongs to.
    1.85 +(with capital `V'), to tell what version of mmh the program belongs to.
    1.86  .P
    1.87  Switches change the behavior of programs.
    1.88  Programs that do one thing in one way require no switches.
    1.89 @@ -1103,6 +1102,7 @@
    1.90  A change early in the project was the complete transition from
    1.91  the single draft message to the draft folder facility.
    1.92  .Ci 337338b404931f06f0db2119c9e145e8ca5a9860
    1.93 +.\" XXX ref to section ...
    1.94  The draft folder facility was introduced in the mid-eighties, when
    1.95  Rose and Romine called it a ``relatively new feature''.
    1.96  .[
    1.97 @@ -1138,14 +1138,13 @@
    1.98  the rework of the draft system.
    1.99  (cf. Sec.
   1.100  .Cf draft-folder )
   1.101 -Equally,
   1.102 +Furthermore,
   1.103  .Pn comp
   1.104 -lost its
   1.105 +no longer needs a
   1.106  .Sw -file
   1.107 -switch.
   1.108 -The draft folder facility, together with the
   1.109 +switch as the draft folder facility together with the
   1.110  .Sw -form
   1.111 -switch, are sufficient.
   1.112 +switch are sufficient.
   1.113  
   1.114  
   1.115  .U3 "In Place Editing
   1.116 @@ -1189,9 +1188,10 @@
   1.117  Nmh's
   1.118  .Mp burst (1)
   1.119  man page reads:
   1.120 -.sp \n(PDu
   1.121  .QS
   1.122 -If -noinplace is given, each digest is preserved, no table
   1.123 +If
   1.124 +.Sw -noinplace
   1.125 +is given, each digest is preserved, no table
   1.126  of contents is produced, and the messages contained within
   1.127  the digest are placed at the end of the folder. Other messages
   1.128  are not tampered with in any way.
   1.129 @@ -1278,7 +1278,8 @@
   1.130  .P
   1.131  The MIME tools, which were once part of
   1.132  .Pn mhn
   1.133 -[sic!],
   1.134 +.\" XXX
   1.135 +(whatever that stood for),
   1.136  had several switches that added little practical value to the programs.
   1.137  The
   1.138  .Sw -[no]realsize
   1.139 @@ -1410,14 +1411,26 @@
   1.140  man page for
   1.141  .Mp comp (1):
   1.142  .QS
   1.143 -The \-editor editor switch indicates the editor to use for
   1.144 -the initial edit. Upon exiting from the editor, comp will
   1.145 -invoke the whatnow program. See whatnow(1) for a discussion
   1.146 -of available options. The invocation of this program can be
   1.147 -inhibited by using the \-nowhatnowproc switch. (In truth of
   1.148 -fact, it is the whatnow program which starts the initial
   1.149 -edit. Hence, \-nowhatnowproc will prevent any edit from
   1.150 -occurring.)
   1.151 +The
   1.152 +.Sw -editor
   1.153 +.Ar editor
   1.154 +switch indicates the editor to use for
   1.155 +the initial edit. Upon exiting from the editor,
   1.156 +.Pn comp
   1.157 +will invoke the
   1.158 +.Pn whatnow
   1.159 +program. See
   1.160 +.Mp whatnow (1)
   1.161 +for a discussion of available options.
   1.162 +The invocation of this program can be
   1.163 +inhibited by using the
   1.164 +.Sw -nowhatnowproc
   1.165 +switch. (In truth of fact, it is the
   1.166 +.Pn whatnow
   1.167 +program which starts the initial edit.
   1.168 +Hence,
   1.169 +.Sw -nowhatnowproc
   1.170 +will prevent any edit from occurring.)
   1.171  .QE
   1.172  .P
   1.173  Effectively, the
   1.174 @@ -1510,10 +1523,14 @@
   1.175  Normally when a message is refiled, for each destination
   1.176  folder it is assigned the number which is one above the current
   1.177  highest message number in that folder. Use of the
   1.178 -\-preserv [sic!] switch will override this message renaming, and try
   1.179 +.Sw -preserv
   1.180 +[sic!] switch will override this message renaming, and try
   1.181  to preserve the number of the message. If a conflict for a
   1.182 -particular folder occurs when using the \-preserve switch,
   1.183 -then refile will use the next available message number which
   1.184 +particular folder occurs when using the
   1.185 +.Sw -preserve
   1.186 +switch, then
   1.187 +.Pn refile
   1.188 +will use the next available message number which
   1.189  is above the message number you wish to preserve.
   1.190  .QE
   1.191  
   1.192 @@ -1585,7 +1602,7 @@
   1.193  .\" --------------------------------------------------------------
   1.194  .H1 "Modernizing
   1.195  .P
   1.196 -In the more thirty years of MH's existence, its code base was
   1.197 +In the more than thirty years of MH's existence, its code base was
   1.198  increasingly extended.
   1.199  New features entered the project and became alternatives to the
   1.200  existing behavior.
   1.201 @@ -1618,9 +1635,9 @@
   1.202  discuss whether to keep using vfork, just note in [sic!] passing, [...]
   1.203  we don't need a separate branch for removing vmh
   1.204  or ridding ourselves of #ifdef's or removing posix replacement functions
   1.205 -or depending on pure ansi/posix "libc".
   1.206 +or depending on pure ansi/posix ``libc''.
   1.207  .QP
   1.208 -these things should each be a day or two of work and the "main branch"
   1.209 +these things should each be a day or two of work and the ``main branch''
   1.210  should just be modern. [...]
   1.211  let's push forward, aggressively.
   1.212  .QE
   1.213 @@ -2556,10 +2573,9 @@
   1.214  .P
   1.215  Similar to the situation for drafts is the situation for removed messages.
   1.216  Historically, a message was ``deleted'' by prepending a specific
   1.217 -\fIbackup prefix\fP, usually the comma character,
   1.218 -to the file name.
   1.219 -The specific message would vanish from MH because only files with
   1.220 -non-digit characters in their name are not treated as messages.
   1.221 +\fIbackup prefix\fP, usually the comma character, to the file name.
   1.222 +The specific file would then be ignored by MH because only files with
   1.223 +names consisting of digits only are treated as messages.
   1.224  Although files remained in the file system,
   1.225  the messages were no more visible in MH.
   1.226  To truly delete them, a maintenance job is needed.
   1.227 @@ -2570,15 +2586,15 @@
   1.228  VE
   1.229  In such a setup, the original message can be restored
   1.230  within the grace time interval by stripping the
   1.231 -the backup prefix from the file name.
   1.232 -But one can not rely on this statement.
   1.233 +backup prefix from the file name.
   1.234 +But the user can not rely on this statement.
   1.235  If the last message of a folder with six messages (1-6) is removed,
   1.236  message
   1.237  .Fn 6 ,
   1.238  becomes file
   1.239  .Fn ,6 .
   1.240  If then a new message enters the same folder, it will be given
   1.241 -the number one higher than the highest existing message.
   1.242 +the number one higher than the highest message.
   1.243  In this case the message is named
   1.244  .Fn 6
   1.245  then.
   1.246 @@ -2594,12 +2610,12 @@
   1.247  same folder is removed before.'' the statement becomes complex.
   1.248  A user will hardly be able to keep track of any removal to know
   1.249  if the assertion still holds true for a specific file.
   1.250 -The the real mechanism is practically obscure to the user.
   1.251 +In practice, the real mechanism is unclear to the user.
   1.252  The consequences of further removals are not obvious.
   1.253  .P
   1.254  Further more, the backup files are scattered within the whole mail storage.
   1.255  This complicates managing them.
   1.256 -It is possible, with help of
   1.257 +It is possible with the help of
   1.258  .Pn find ,
   1.259  but everything would be more convenient
   1.260  if the deleted messages would be collected in one place.
   1.261 @@ -2609,7 +2625,7 @@
   1.262  (previously named
   1.263  .Pe Delete-Prog )
   1.264  was introduced very early to improve the situation.
   1.265 -It could be set to any command, which would be executed to removed
   1.266 +It could be set to any command, which would be executed to remove
   1.267  the specified messages.
   1.268  This would override the default action, described above.
   1.269  Refiling the to-be-removed files to a garbage folder is the usual example.
   1.270 @@ -2631,7 +2647,7 @@
   1.271  because they are all collected in one place.
   1.272  Existing and removed messages are thus separated more strictly.
   1.273  No backup files are silently overwritten.
   1.274 -Most important is the ability to keep removed messages in the MH domain.
   1.275 +But most important is the ability to keep removed messages in the MH domain.
   1.276  Messages in the trash folder can be listed like those in any other folder.
   1.277  Deleted messages can be displayed like any other messages.
   1.278  Restoring a deleted messages can be done with
   1.279 @@ -2648,7 +2664,7 @@
   1.280  to move the to-be-removed message to the trash folder,
   1.281  .Fn +trash
   1.282  by default.
   1.283 -To sweep it clean, one can use
   1.284 +To sweep it clean, the user can use
   1.285  .Cl "rmm -unlink +trash a" ,
   1.286  where the
   1.287  .Sw -unlink
   1.288 @@ -2667,9 +2683,9 @@
   1.289  .Pn refile ,
   1.290  which used to be the other way round.
   1.291  Yet, the relationship is simpler now.
   1.292 -No more can loops, like described in nmh's man page for
   1.293 +Loops, like described in nmh's man page for
   1.294  .Mp refile (1),
   1.295 -occur:
   1.296 +can no longer occur:
   1.297  .QS
   1.298  Since
   1.299  .Pn refile
   1.300 @@ -3040,10 +3056,13 @@
   1.301  .Sw -list
   1.302  read:
   1.303  .QS
   1.304 -The -list option produces a listing of the field bodies for
   1.305 +The
   1.306 +.Sw -list
   1.307 +option produces a listing of the field bodies for
   1.308  header fields with names matching the specified component,
   1.309 -one per line. The listing is numbered, starting at 1, if
   1.310 -the -number option is also used.
   1.311 +one per line. The listing is numbered, starting at 1, if the
   1.312 +.Sw -number
   1.313 +option is also used.
   1.314  .QE
   1.315  .LP
   1.316  The problem was manifold.
   1.317 @@ -3342,21 +3361,36 @@
   1.318  I asked John Romine and here's what he had to say, which
   1.319  agrees and provides an example that convinces me:
   1.320  .QS
   1.321 -My take on this is that post should not be called by
   1.322 -users directly, and it doesn't read the .mh_profile
   1.323 +My take on this is that
   1.324 +.Pn post
   1.325 +should not be called by users directly, and it doesn't read the
   1.326 +.Fn .mh_profile
   1.327  (only front-end UI programs read the profile).
   1.328  .QP
   1.329 -For example, there can be contexts where post is called
   1.330 -by a helper program (like 'mhmail') which may be run by
   1.331 -a non-MH user.  We don't want this to prompt the user
   1.332 -to create an MH profile, etc.
   1.333 +For example, there can be contexts where
   1.334 +.Pn post
   1.335 +is called by a helper program (like `\c
   1.336 +.Pn mhmail ')
   1.337 +which may be run by a non-MH user.
   1.338 +We don't want this to prompt the user to create an MH profile, etc.
   1.339  .QP
   1.340 -My suggestion would be to have send pass a (hidden)
   1.341 -`\-fileproc proc' option to post if needed.  You could also
   1.342 -use an environment variable (I think send/whatnow do
   1.343 -this).
   1.344 +My suggestion would be to have
   1.345 +.Pn send
   1.346 +pass a (hidden) `\c
   1.347 +.Sw -fileproc
   1.348 +.Ar proc '
   1.349 +option to
   1.350 +.Pn post
   1.351 +if needed.
   1.352 +You could also
   1.353 +use an environment variable (I think
   1.354 +.Pn send /\c
   1.355 +.Pn whatnow
   1.356 +do this).
   1.357  .QE
   1.358 -I think that's the way to go.  My personal preference is to use a command line option, not an environment variable.
   1.359 +I think that's the way to go.
   1.360 +My personal preference is to use a command line option,
   1.361 +not an environment variable.
   1.362  .QE
   1.363  .P
   1.364  To solve the problem of