docs/master
changeset 131:7c741bc8f719
Reorganized: Converted 4-parted discussion into 3-parted discussion.
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Tue, 03 Jul 2012 11:11:12 +0200 |
parents | 0b9aa74ced4d |
children | 8c56dac46efe |
files | discussion.roff intro.roff |
diffstat | 2 files changed, 358 insertions(+), 285 deletions(-) [+] |
line diff
1.1 --- a/discussion.roff Mon Jul 02 23:14:19 2012 +0200 1.2 +++ b/discussion.roff Tue Jul 03 11:11:12 2012 +0200 1.3 @@ -424,7 +424,46 @@ 1.4 is unrelated to the rest of the project. 1.5 1.6 1.7 -.H2 "\fLshow\fP and \fPmhshow\fP 1.8 +.H3 "Profile Reading 1.9 +.P 1.10 +FIXME XXX 1.11 + 1.12 +commit 3e017a7abbdf69bf0dff7a4073275961eda1ded8 1.13 +Author: markus schnalke <meillo@marmaro.de> 1.14 +Date: Wed Jun 27 14:23:35 2012 +0200 1.15 + 1.16 + spost: Read profile and context now. Removed -library switch. 1.17 + spost is a full part of the mmh toolchest, hence, it shall read the 1.18 + profile/context. This will remove the need to pass profile information 1.19 + from send to spost via command line switches. 1.20 + In January 2012, there had been a discussion on the nmh-workers ML 1.21 + whether post should read the profile/context. There wasn't a clear 1.22 + answer. It behavior was mainly motivated by the historic situation, 1.23 + it seems. My opinion on the topic goes into the direction that every 1.24 + tool that is part of the mmh toolchest should read the profile. That 1.25 + is a clear and simple concept. Using MH tools without wanting to 1.26 + interact with MH (like mhmail had been) is no more a practical problem. 1.27 + 1.28 +commit 32d4f9daaa70519be3072479232ff7be0500d009 1.29 +Author: markus schnalke <meillo@marmaro.de> 1.30 +Date: Wed Jun 27 13:15:47 2012 +0200 1.31 + 1.32 + mhmail: Read the context! 1.33 + mhmail will change from a mailx-replacment to an alternative to 1.34 + `comp -ed prompter', thus being a send front-end. Hence, mhmail 1.35 + should not stay outside the profile/context respecting mmh toolchest. 1.36 + 1.37 + 1.38 +slocal 1.39 + 1.40 + 1.41 + 1.42 + 1.43 +.H2 "Displaying Messages 1.44 +.P 1.45 +FIXME XXX 1.46 + 1.47 +.U3 "\fLshow\fP and \fPmhshow\fP 1.48 .P 1.49 Since the very beginning \(en already in the first concept paper \(en 1.50 .Pn show 1.51 @@ -563,6 +602,32 @@ 1.52 supporting MIME demands for higher essential complexity. 1.53 1.54 1.55 +.U3 "Scan Listings 1.56 +.P 1.57 +FIXME XXX 1.58 + 1.59 +.P 1.60 + 1.61 +commit c20e315f9fb9f0f0955749726dbf4fd897cd9f48 1.62 +Author: markus schnalke <meillo@marmaro.de> 1.63 +Date: Fri Dec 9 21:56:44 2011 +0100 1.64 + 1.65 + Adjusted the default scan listing: remove the body preview 1.66 + The original listing is still available as etc/scan.nmh 1.67 + 1.68 +commit 70b2643e0da8485174480c644ad9785c84f5bff4 1.69 +Author: markus schnalke <meillo@marmaro.de> 1.70 +Date: Mon Jan 30 16:16:26 2012 +0100 1.71 + 1.72 + Scan listings shall not contain body content. Hence, removed this feature. 1.73 + Scan listings shall operator on message headers and non-message information 1.74 + only. Displaying the beginning of the body complicates everything too much. 1.75 + That's no surprise, because it's something completely different. If you 1.76 + want to examine the body, then use show(1)/mhshow(1). 1.77 + Changed the default scan formats accordingly. 1.78 + 1.79 + 1.80 + 1.81 .H2 "Configure Options 1.82 .P 1.83 Customization is a double-edged sword. 1.84 @@ -2474,8 +2539,276 @@ 1.85 1.86 1.87 1.88 +.H2 "Drafts and Trash Folder 1.89 +.P 1.90 1.91 -.H1 "Style 1.92 +.U3 "Draft Folder 1.93 +.P 1.94 +In the beginning, MH had the concept of a draft message. 1.95 +This is the file 1.96 +.Fn draft 1.97 +in the MH directory, which is treated special. 1.98 +On composing a message, this draft file was used. 1.99 +As the draft file was one particular file, only one draft could be 1.100 +managed at any time. 1.101 +When starting to compose another message before the former one was sent, 1.102 +the user had to decide among: 1.103 +.BU 1.104 +Use the old draft to finish and send it before starting with a new one. 1.105 +.BU 1.106 +Discard the old draft, replacing it with the new one. 1.107 +.BU 1.108 +Preserve the old draft by refiling it to a folder. 1.109 +.P 1.110 +This was, it was only possible to work in alternation on multiple drafts. 1.111 +Therefore, the current draft needed to be refiled to a folder and 1.112 +another one re-using for editing. 1.113 +Working on multiple drafts at the same time was impossible. 1.114 +The usual approach of switching to a different MH context did not 1.115 +change anything. 1.116 +.P 1.117 +The draft folder facility exists to 1.118 +allow true parallel editing of drafts, in a straight forward way. 1.119 +It was introduced by Marshall T. Rose, already in 1984. 1.120 +Similar to other new features, the draft folder was inactive by default. 1.121 +Even in nmh, the highly useful draft folder was not available 1.122 +out-of-the-box. 1.123 +At least, Richard Coleman added the man page 1.124 +.Mp mh-draft (5) 1.125 +to better document the feature. 1.126 +.P 1.127 +Not using the draft folder facility has the single advantage of having 1.128 +the draft file at a static location. 1.129 +This is simple in simple cases but the concept does not scale for more 1.130 +complex cases. 1.131 +The concept of the draft message is too limited for the problem. 1.132 +Therefore the draft folder was introduced. 1.133 +It is the more powerful and more natural concept. 1.134 +The draft folder is a folder like any other folder in MH. 1.135 +Its messages can be listed like any other messages. 1.136 +A draft message is no longer a special case. 1.137 +Tools do not need special switches to work on the draft message. 1.138 +Hence corner-cases were removed. 1.139 +.P 1.140 +The trivial part of the work was activating the draft folder with a 1.141 +default name. 1.142 +I chose the name 1.143 +.Fn +drafts 1.144 +for obvious reasons. 1.145 +In consequence, the command line switches 1.146 +.Sw -draftfolder 1.147 +and 1.148 +.Sw -draftmessage 1.149 +could be removed. 1.150 +More difficult but also more improving was updating the tools to the 1.151 +new concept. 1.152 +For nearly three decades, the tools needed to support two draft handling 1.153 +approaches. 1.154 +By fully switching to the draft folder, the tools could be simplified 1.155 +by dropping the awkward draft message handling code. 1.156 +.Sw -draft 1.157 +switches were removed because operating on a draft message is no longer 1.158 +special. 1.159 +It became indistinguishable to operating on any other message. 1.160 +There is no more need to query the user for draft handling. 1.161 +It is always possible to add another new draft. 1.162 +Refiling drafts is without difference to refiling other messages. 1.163 +All these special cases are gone. 1.164 +Yet, one draft-related switch remained. 1.165 +.Pn comp 1.166 +still has 1.167 +.Sw -[no]use 1.168 +for switching between two modes: 1.169 +.BU 1.170 +.Sw -use : 1.171 +Modify an existing draft. 1.172 +.BU 1.173 +.Sw -nouse : 1.174 +Compose a new draft, possibly taking some existing message as a form. 1.175 +.P 1.176 +In either case, the behavior of 1.177 +.Pn comp 1.178 +is deterministic. 1.179 +.P 1.180 +.Pn send 1.181 +now operates on the current message in the draft folder by default. 1.182 +As message and folder can both be overridden by specifying them on 1.183 +the command line, it is possible to send any message in the mail storage 1.184 +by simply specifying its number and folder. 1.185 +In contrast to the other tools, 1.186 +.Pn send 1.187 +takes the draft folder as its default folder. 1.188 +.P 1.189 +Dropping the draft message concept in favor for the draft folder concept, 1.190 +removed special cases with regular cases. 1.191 +This simplified the source code of the tools, as well as the concepts. 1.192 +In mmh, draft management does not break with the MH concepts 1.193 +but applies them. 1.194 +Most of the work was already done by Rose in the eighties. 1.195 +The original improvement in mmh is dropping the draft message approach 1.196 +completely and thus simplifying the tools, the documentation and the 1.197 +system as a whole. 1.198 +Although my part in the draft handling improvement was small, 1.199 +it was important. 1.200 + 1.201 + 1.202 +.U3 "Trash Folder 1.203 +.P 1.204 +Similar to the situation for drafts is the situation for removed messages. 1.205 +Historically, a message was ``deleted'' by prepending a specific 1.206 +\fIbackup prefix\fP, usually the comma character, 1.207 +to the file name. 1.208 +The specific message would vanish from MH because only files with 1.209 +non-digit characters in their name are not treated as messages. 1.210 +Although files remained in the file system, 1.211 +the messages were no more visible in MH. 1.212 +To truly delete them, a maintenance job is needed. 1.213 +Usually a cron job is installed to delete them after a grace time. 1.214 +For instance: 1.215 +.VS 1.216 +find $HOME/Mail -type f -name ',*' -ctime +7 -delete 1.217 +VE 1.218 +In such a setup, the original message can be restored 1.219 +within the grace time interval by stripping the 1.220 +the backup prefix from the file name. 1.221 +But one can not rely on this statement. 1.222 +If the last message of a folder with six messages (1-6) is removed, 1.223 +message 1.224 +.Fn 6 , 1.225 +becomes file 1.226 +.Fn ,6 . 1.227 +If then a new message enters the same folder, it will be given 1.228 +the number one higher than the highest existing message. 1.229 +In this case the message is named 1.230 +.Fn 6 1.231 +then. 1.232 +If this message is removed as well, 1.233 +then the backup of the former message gets overwritten. 1.234 +Hence, the ability to restore removed messages does not only depend on 1.235 +the ``sweeping cron job'' but also on the removing of further messages. 1.236 +It is undesirable to have such obscure and complex mechanisms. 1.237 +The user should be given a small set of clear assertions. 1.238 +``Removed files are restorable within a seven-day grace time.'' 1.239 +is such a clear assertion. 1.240 +With the addition ``... unless a message with the same name in the 1.241 +same folder is removed before.'' the statement becomes complex. 1.242 +A user will hardly be able to keep track of any removal to know 1.243 +if the assertion still holds true for a specific file. 1.244 +The the real mechanism is practically obscure to the user. 1.245 +The consequences of further removals are not obvious. 1.246 +.P 1.247 +Further more, the backup files are scattered within the whole mail storage. 1.248 +This complicates managing them. 1.249 +It is possible, with help of 1.250 +.Pn find , 1.251 +but everything would be more convenient 1.252 +if the deleted messages would be collected in one place. 1.253 +.P 1.254 +The profile entry 1.255 +.Pe rmmproc 1.256 +(previously named 1.257 +.Pe Delete-Prog ) 1.258 +was introduced very early to improve the situation. 1.259 +It could be set to any command, which would be executed to removed 1.260 +the specified messages. 1.261 +This would override the default action, described above. 1.262 +Refiling the to-be-removed files to a garbage folder is the usual example. 1.263 +Nmh's man page 1.264 +.Mp rmm (1) 1.265 +proposes to set the 1.266 +.Pe rmmproc 1.267 +to 1.268 +.Cl "refile +d 1.269 +to move messages to the garbage folder, 1.270 +.Fn +d , 1.271 +instead of renaming them with the backup prefix. 1.272 +The man page proposes additionally the expunge command 1.273 +.Cl "rm `mhpath +d all` 1.274 +to empty the garbage folder. 1.275 +.P 1.276 +Removing messages in such a way has advantages. 1.277 +The mail storage is prevented from being cluttered with removed messages 1.278 +because they are all collected in one place. 1.279 +Existing and removed messages are thus separated more strictly. 1.280 +No backup files are silently overwritten. 1.281 +Most important is the ability to keep removed messages in the MH domain. 1.282 +Messages in the trash folder can be listed like those in any other folder. 1.283 +Deleted messages can be displayed like any other messages. 1.284 +Restoring a deleted messages can be done with 1.285 +.Pn refile . 1.286 +All operations on deleted files are still covered by the MH tools. 1.287 +The trash folder is just like any other folder in the mail storage. 1.288 +.P 1.289 +Similar to the draft folder case, I dropped the old backup prefix approach 1.290 +in favor for replacing it by the better suiting trash folder system. 1.291 +Hence, 1.292 +.Pn rmm 1.293 +calls 1.294 +.Pn refile 1.295 +to move the to-be-removed message to the trash folder, 1.296 +.Fn +trash 1.297 +by default. 1.298 +To sweep it clean, one can use 1.299 +.Cl "rmm -unlink +trash a" , 1.300 +where the 1.301 +.Sw -unlink 1.302 +switch causes the files to be unlinked. 1.303 +.P 1.304 +Dropping the legacy approach and completely converting to the new approach 1.305 +simplified the code base. 1.306 +The relationship between 1.307 +.Pn rmm 1.308 +and 1.309 +.Pn refile 1.310 +was inverted. 1.311 +In mmh, 1.312 +.Pn rmm 1.313 +invokes 1.314 +.Pn refile , 1.315 +which used to be the other way round. 1.316 +Yet, the relationship is simpler now. 1.317 +No more can loops, like described in nmh's man page for 1.318 +.Mp refile (1), 1.319 +occur: 1.320 +.QS 1.321 +Since 1.322 +.Pn refile 1.323 +uses your 1.324 +.Pe rmmproc 1.325 +to delete the message, the 1.326 +.Pe rmmproc 1.327 +must NOT call 1.328 +.Pn refile 1.329 +without specifying 1.330 +.Sw -normmproc 1.331 +or you will create an infinite loop. 1.332 +.QE 1.333 +.LP 1.334 +.Pn rmm 1.335 +either unlinks a message with 1.336 +.Fu unlink() 1.337 +or invokes 1.338 +.Pn refile 1.339 +to move it to the trash folder. 1.340 +.Pn refile 1.341 +does not invoke any tools. 1.342 +.P 1.343 + 1.344 + 1.345 + 1.346 +Keeping unused alternative in the code is a bad choice as they likely 1.347 +gather bugs, by not being constantly tested. 1.348 +Also, the increased code 1.349 +size and more conditions crease the maintenance costs. 1.350 + 1.351 +By generalizing the message removal in a way that it becomes covered 1.352 +by the MH concepts makes the whole system more powerful. 1.353 + 1.354 + 1.355 + 1.356 + 1.357 + 1.358 +.H1 "Styling 1.359 .P 1.360 Kernighan and Pike have emphasized the importance of style in the 1.361 preface of their book: 1.362 @@ -3357,282 +3690,23 @@ 1.363 1.364 1.365 1.366 +.H2 "Path Conversion 1.367 +.P 1.368 +FIXME! XXX 1.369 1.370 1.371 +commit d39e2c447b0d163a5a63f480b23d06edb7a73aa0 1.372 +Author: markus schnalke <meillo@marmaro.de> 1.373 +Date: Fri Dec 9 16:34:57 2011 +0100 1.374 1.375 -.H1 "Concept Exploitation \"Homogeneity 1.376 - 1.377 - 1.378 -.H2 "Draft Folder 1.379 -.P 1.380 -In the beginning, MH had the concept of a draft message. 1.381 -This is the file 1.382 -.Fn draft 1.383 -in the MH directory, which is treated special. 1.384 -On composing a message, this draft file was used. 1.385 -As the draft file was one particular file, only one draft could be 1.386 -managed at any time. 1.387 -When starting to compose another message before the former one was sent, 1.388 -the user had to decide among: 1.389 -.BU 1.390 -Use the old draft to finish and send it before starting with a new one. 1.391 -.BU 1.392 -Discard the old draft, replacing it with the new one. 1.393 -.BU 1.394 -Preserve the old draft by refiling it to a folder. 1.395 -.P 1.396 -This was, it was only possible to work in alternation on multiple drafts. 1.397 -Therefore, the current draft needed to be refiled to a folder and 1.398 -another one re-using for editing. 1.399 -Working on multiple drafts at the same time was impossible. 1.400 -The usual approach of switching to a different MH context did not 1.401 -change anything. 1.402 -.P 1.403 -The draft folder facility exists to 1.404 -allow true parallel editing of drafts, in a straight forward way. 1.405 -It was introduced by Marshall T. Rose, already in 1984. 1.406 -Similar to other new features, the draft folder was inactive by default. 1.407 -Even in nmh, the highly useful draft folder was not available 1.408 -out-of-the-box. 1.409 -At least, Richard Coleman added the man page 1.410 -.Mp mh-draft (5) 1.411 -to better document the feature. 1.412 -.P 1.413 -Not using the draft folder facility has the single advantage of having 1.414 -the draft file at a static location. 1.415 -This is simple in simple cases but the concept does not scale for more 1.416 -complex cases. 1.417 -The concept of the draft message is too limited for the problem. 1.418 -Therefore the draft folder was introduced. 1.419 -It is the more powerful and more natural concept. 1.420 -The draft folder is a folder like any other folder in MH. 1.421 -Its messages can be listed like any other messages. 1.422 -A draft message is no longer a special case. 1.423 -Tools do not need special switches to work on the draft message. 1.424 -Hence corner-cases were removed. 1.425 -.P 1.426 -The trivial part of the work was activating the draft folder with a 1.427 -default name. 1.428 -I chose the name 1.429 -.Fn +drafts 1.430 -for obvious reasons. 1.431 -In consequence, the command line switches 1.432 -.Sw -draftfolder 1.433 -and 1.434 -.Sw -draftmessage 1.435 -could be removed. 1.436 -More difficult but also more improving was updating the tools to the 1.437 -new concept. 1.438 -For nearly three decades, the tools needed to support two draft handling 1.439 -approaches. 1.440 -By fully switching to the draft folder, the tools could be simplified 1.441 -by dropping the awkward draft message handling code. 1.442 -.Sw -draft 1.443 -switches were removed because operating on a draft message is no longer 1.444 -special. 1.445 -It became indistinguishable to operating on any other message. 1.446 -There is no more need to query the user for draft handling. 1.447 -It is always possible to add another new draft. 1.448 -Refiling drafts is without difference to refiling other messages. 1.449 -All these special cases are gone. 1.450 -Yet, one draft-related switch remained. 1.451 -.Pn comp 1.452 -still has 1.453 -.Sw -[no]use 1.454 -for switching between two modes: 1.455 -.BU 1.456 -.Sw -use : 1.457 -Modify an existing draft. 1.458 -.BU 1.459 -.Sw -nouse : 1.460 -Compose a new draft, possibly taking some existing message as a form. 1.461 -.P 1.462 -In either case, the behavior of 1.463 -.Pn comp 1.464 -is deterministic. 1.465 -.P 1.466 -.Pn send 1.467 -now operates on the current message in the draft folder by default. 1.468 -As message and folder can both be overridden by specifying them on 1.469 -the command line, it is possible to send any message in the mail storage 1.470 -by simply specifying its number and folder. 1.471 -In contrast to the other tools, 1.472 -.Pn send 1.473 -takes the draft folder as its default folder. 1.474 -.P 1.475 -Dropping the draft message concept in favor for the draft folder concept, 1.476 -removed special cases with regular cases. 1.477 -This simplified the source code of the tools, as well as the concepts. 1.478 -In mmh, draft management does not break with the MH concepts 1.479 -but applies them. 1.480 -Most of the work was already done by Rose in the eighties. 1.481 -The original improvement in mmh is dropping the draft message approach 1.482 -completely and thus simplifying the tools, the documentation and the 1.483 -system as a whole. 1.484 -Although my part in the draft handling improvement was small, 1.485 -it was important. 1.486 - 1.487 - 1.488 - 1.489 -.H2 "Trash Folder 1.490 -.P 1.491 -Similar to the situation for drafts is the situation for removed messages. 1.492 -Historically, a message was ``deleted'' by prepending a specific 1.493 -\fIbackup prefix\fP, usually the comma character, 1.494 -to the file name. 1.495 -The specific message would vanish from MH because only files with 1.496 -non-digit characters in their name are not treated as messages. 1.497 -Although files remained in the file system, 1.498 -the messages were no more visible in MH. 1.499 -To truly delete them, a maintenance job is needed. 1.500 -Usually a cron job is installed to delete them after a grace time. 1.501 -For instance: 1.502 -.VS 1.503 -find $HOME/Mail -type f -name ',*' -ctime +7 -delete 1.504 -VE 1.505 -In such a setup, the original message can be restored 1.506 -within the grace time interval by stripping the 1.507 -the backup prefix from the file name. 1.508 -But one can not rely on this statement. 1.509 -If the last message of a folder with six messages (1-6) is removed, 1.510 -message 1.511 -.Fn 6 , 1.512 -becomes file 1.513 -.Fn ,6 . 1.514 -If then a new message enters the same folder, it will be given 1.515 -the number one higher than the highest existing message. 1.516 -In this case the message is named 1.517 -.Fn 6 1.518 -then. 1.519 -If this message is removed as well, 1.520 -then the backup of the former message gets overwritten. 1.521 -Hence, the ability to restore removed messages does not only depend on 1.522 -the ``sweeping cron job'' but also on the removing of further messages. 1.523 -It is undesirable to have such obscure and complex mechanisms. 1.524 -The user should be given a small set of clear assertions. 1.525 -``Removed files are restorable within a seven-day grace time.'' 1.526 -is such a clear assertion. 1.527 -With the addition ``... unless a message with the same name in the 1.528 -same folder is removed before.'' the statement becomes complex. 1.529 -A user will hardly be able to keep track of any removal to know 1.530 -if the assertion still holds true for a specific file. 1.531 -The the real mechanism is practically obscure to the user. 1.532 -The consequences of further removals are not obvious. 1.533 -.P 1.534 -Further more, the backup files are scattered within the whole mail storage. 1.535 -This complicates managing them. 1.536 -It is possible, with help of 1.537 -.Pn find , 1.538 -but everything would be more convenient 1.539 -if the deleted messages would be collected in one place. 1.540 -.P 1.541 -The profile entry 1.542 -.Pe rmmproc 1.543 -(previously named 1.544 -.Pe Delete-Prog ) 1.545 -was introduced very early to improve the situation. 1.546 -It could be set to any command, which would be executed to removed 1.547 -the specified messages. 1.548 -This would override the default action, described above. 1.549 -Refiling the to-be-removed files to a garbage folder is the usual example. 1.550 -Nmh's man page 1.551 -.Mp rmm (1) 1.552 -proposes to set the 1.553 -.Pe rmmproc 1.554 -to 1.555 -.Cl "refile +d 1.556 -to move messages to the garbage folder, 1.557 -.Fn +d , 1.558 -instead of renaming them with the backup prefix. 1.559 -The man page proposes additionally the expunge command 1.560 -.Cl "rm `mhpath +d all` 1.561 -to empty the garbage folder. 1.562 -.P 1.563 -Removing messages in such a way has advantages. 1.564 -The mail storage is prevented from being cluttered with removed messages 1.565 -because they are all collected in one place. 1.566 -Existing and removed messages are thus separated more strictly. 1.567 -No backup files are silently overwritten. 1.568 -Most important is the ability to keep removed messages in the MH domain. 1.569 -Messages in the trash folder can be listed like those in any other folder. 1.570 -Deleted messages can be displayed like any other messages. 1.571 -Restoring a deleted messages can be done with 1.572 -.Pn refile . 1.573 -All operations on deleted files are still covered by the MH tools. 1.574 -The trash folder is just like any other folder in the mail storage. 1.575 -.P 1.576 -Similar to the draft folder case, I dropped the old backup prefix approach 1.577 -in favor for replacing it by the better suiting trash folder system. 1.578 -Hence, 1.579 -.Pn rmm 1.580 -calls 1.581 -.Pn refile 1.582 -to move the to-be-removed message to the trash folder, 1.583 -.Fn +trash 1.584 -by default. 1.585 -To sweep it clean, one can use 1.586 -.Cl "rmm -unlink +trash a" , 1.587 -where the 1.588 -.Sw -unlink 1.589 -switch causes the files to be unlinked. 1.590 -.P 1.591 -Dropping the legacy approach and completely converting to the new approach 1.592 -simplified the code base. 1.593 -The relationship between 1.594 -.Pn rmm 1.595 -and 1.596 -.Pn refile 1.597 -was inverted. 1.598 -In mmh, 1.599 -.Pn rmm 1.600 -invokes 1.601 -.Pn refile , 1.602 -which used to be the other way round. 1.603 -Yet, the relationship is simpler now. 1.604 -No more can loops, like described in nmh's man page for 1.605 -.Mp refile (1), 1.606 -occur: 1.607 -.QS 1.608 -Since 1.609 -.Pn refile 1.610 -uses your 1.611 -.Pe rmmproc 1.612 -to delete the message, the 1.613 -.Pe rmmproc 1.614 -must NOT call 1.615 -.Pn refile 1.616 -without specifying 1.617 -.Sw -normmproc 1.618 -or you will create an infinite loop. 1.619 -.QE 1.620 -.LP 1.621 -.Pn rmm 1.622 -either unlinks a message with 1.623 -.Fu unlink() 1.624 -or invokes 1.625 -.Pn refile 1.626 -to move it to the trash folder. 1.627 -.Pn refile 1.628 -does not invoke any tools. 1.629 -.P 1.630 - 1.631 - 1.632 - 1.633 -Keeping unused alternative in the code is a bad choice as they likely 1.634 -gather bugs, by not being constantly tested. 1.635 -Also, the increased code 1.636 -size and more conditions crease the maintenance costs. 1.637 - 1.638 -By generalizing the message removal in a way that it becomes covered 1.639 -by the MH concepts makes the whole system more powerful. 1.640 - 1.641 - 1.642 - 1.643 -.H2 "Path Notations 1.644 -.P 1.645 -FIXME! TODO 1.646 - 1.647 - 1.648 - 1.649 -.H2 "Of One Cast 1.650 -.P 1.651 + Completely reworked the path convertion functions 1.652 + Moved everything (from sbr/getfolder.c and sbr/m_maildir.c) into 1.653 + sbr/path.c, but actually replaced the code almost completely. 1.654 + See h/prototypes.h for the function changes. 1.655 + sbr/path.c provides explaining comments on the functions. 1.656 + None of them allocates memory automatically. 1.657 + 1.658 + Additionally: 1.659 + - Like for other ``files'', `inc -audit file' places file relative 1.660 + to the cwd, not relative to the mh-dir. This is for consistency. 1.661 + - Replaced add(foo, NULL) with getcpy(foo), which ist clearer.
2.1 --- a/intro.roff Mon Jul 02 23:14:19 2012 +0200 2.2 +++ b/intro.roff Tue Jul 03 11:11:12 2012 +0200 2.3 @@ -165,7 +165,7 @@ 2.4 .VF input/mh-session 2.5 2.6 2.7 -.H1 "nmh: Code and Community 2.8 +.H1 "nmh 2.9 .P 2.10 In order to understand the condition, goals and dynamics of a project, 2.11 one needs to know the reasons behind them. 2.12 @@ -377,6 +377,7 @@ 2.13 appealing MUA should be removed. 2.14 This includes the mail submission and mail retrieval facilities. 2.15 Choice should be reduced to the main options. 2.16 +All tools should be tightly shaped. 2.17 .IP "Modernizing 2.18 Mmh's feature set needs to become more modern. 2.19 Better support for attachment and digital cryptography should be added. 2.20 @@ -384,9 +385,10 @@ 2.21 The modern email features need to be readily available, out-of-the-box. 2.22 On the other hand, 2.23 bulletin board support and similar obsolete facilities can be dropped out. 2.24 -Likewise, ancient technologies such as hardcopy terminals 2.25 -need not to be supported any further. 2.26 -.IP "Code style 2.27 +Likewise, ancient technologies should not be supported any further. 2.28 +The available concepts need to be expanded as far as possible. 2.29 +A small set of concepts should recur consistently. 2.30 +.IP "Styling 2.31 Mmh's source code needs to be updated to modern standards. 2.32 Standardized library functions should replace non-standard versions 2.33 whenever possible. 2.34 @@ -394,8 +396,5 @@ 2.35 Time and space optimizations should to be replaced by 2.36 clear and readable code. 2.37 A uniform programming style should prevail. 2.38 -.IP "Homogeneity 2.39 -The available concepts need to be expanded as far as possible. 2.40 -A small set of concepts should recur consistently. 2.41 The whole system should appear to be of-one-style; 2.42 it should feel like being cast as one.