Mercurial > docs > master
comparison ch03.roff @ 20:7a100c80fa91
Some new text (show/mhshow; prompter).
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Sun, 06 May 2012 17:33:45 +0200 |
parents | ab5253e48c74 |
children | bb8a8be49024 |
comparison
equal
deleted
inserted
replaced
19:ab5253e48c74 | 20:7a100c80fa91 |
---|---|
4 .P | 4 .P |
5 bar | 5 bar |
6 | 6 |
7 .H1 "Removal of Code Relicts | 7 .H1 "Removal of Code Relicts |
8 .P | 8 .P |
9 The code base of mmh originates in the late 70s, had been extensively | 9 The code base of mmh originates from the late 70s, had been extensively |
10 worked on in the mid 80s, and had been partly reorganized and extended | 10 worked on in the mid 80s, and had been partly reorganized and extended |
11 in the 90s. Relicts of all those times had gathered in the code base. | 11 in the 90s. Relicts of all those times had gathered in the code base. |
12 My goal was to remove any ancient code parts. One part of the task was | 12 My goal was to remove any ancient code parts. One part of the task was |
13 converting obsolete code constructs to standard constructs, the other part | 13 converting obsolete code constructs to standard constructs, the other part |
14 was dropping obsolete functions. | 14 was dropping obsolete functions. |
31 He converted large parts of the code to POSIX constructs, removing | 31 He converted large parts of the code to POSIX constructs, removing |
32 the conditionals compilation for now standardized features. | 32 the conditionals compilation for now standardized features. |
33 I'm thankful for this task being solved. I only pulled the changes into | 33 I'm thankful for this task being solved. I only pulled the changes into |
34 mmh. | 34 mmh. |
35 .P | 35 .P |
36 The other task of dropping ancient functionality to remove old code, | 36 The other task \(en dropping ancient functionality to remove old code \(en |
37 I did myself, though. My position to strip mmh to the bare minimum of | 37 I did myself, though. My position to strip mmh to the bare minimum of |
38 frequently used features is much more revolutional than the nmh community | 38 frequently used features is much more revolutional than the nmh community |
39 sees it. Without the need to justify my decisions, I was able to quickly | 39 likes it. Without the need to justify my decisions, I was able to quickly |
40 remove code I considered ancient. The need to discuss my decisions with | 40 remove functionality I considered ancient. |
41 peers likely would have slowed this process down. Of course, I did research | 41 The need to discuss my decisions with |
42 peers likely would have slowed this process down. Of course, I researched | |
42 if a particular feature really should be dropped. Having not had any | 43 if a particular feature really should be dropped. Having not had any |
43 contact to this feature within my computer life was a first indicator to | 44 contact to this feature within my computer life was a first indicator to |
44 drop it, but I also asked others and searched the literature for modern | 45 drop it, but I also asked others and searched the literature for modern |
45 usage of the feature. If it appeared to be truly ancient, I dropped it. | 46 usage of the feature. If it appeared to be truly ancient, I dropped it. |
46 The reason for dropping is always part of the commit message in the | 47 The reason for dropping is always part of the commit message in the |
119 the support for it. By this removal, MD5 computation is not needed | 120 the support for it. By this removal, MD5 computation is not needed |
120 anywhere in mmh. Hence, over 500 lines of code were removed by this one | 121 anywhere in mmh. Hence, over 500 lines of code were removed by this one |
121 change. Even if the `Content-MD5' header field is useful sometimes, | 122 change. Even if the `Content-MD5' header field is useful sometimes, |
122 I value its usefulnes less than the improvement in maintainability, caused | 123 I value its usefulnes less than the improvement in maintainability, caused |
123 by the removal. | 124 by the removal. |
125 | |
126 .U2 "Prompter's Control Keys | |
127 .P | |
128 The program | |
129 .Pn prompter | |
130 queries the user to fill in a message form. When used by | |
131 .Pn comp | |
132 as: | |
133 .DS | |
134 comp \-editor prompter | |
135 .DE | |
136 the resulting behavior is similar to | |
137 .Pn mailx . | |
138 Appearently, | |
139 .Pn prompter | |
140 hadn't been touched lately. Otherwise it's hardly explainable why it | |
141 still offered the switches | |
142 .Sn \-erase \fUchr\fP | |
143 and | |
144 .Sn \-kill \fUchr\fP | |
145 to name the characters for command line editing. | |
146 The times when this had been neccessary are long time gone. | |
147 Today these things work out-of-the-box, and if not, are configured | |
148 with the standard tool | |
149 .Pn stty . | |
124 | 150 |
125 | 151 |
126 .H1 "Draft and Trash Folders | 152 .H1 "Draft and Trash Folders |
127 .U2 "Draft Folder | 153 .U2 "Draft Folder |
128 .P | 154 .P |
387 | 413 |
388 .H1 "Attachments | 414 .H1 "Attachments |
389 .P | 415 .P |
390 foo | 416 foo |
391 | 417 |
418 .H1 "mhshow to show Transition | |
419 .P | |
420 Since the very beginning, already in the first concept paper, | |
421 .Pn show | |
422 had been MH's mail display program. | |
423 .Pn show | |
424 found out which pathnames the relevant messages had and invoked | |
425 .Pn mhl | |
426 then to let it render the content. | |
427 With the advent of MIME, this approach wasn't sufficient anymore. | |
428 MIME messages can consist of multiple parts, some of which aren't | |
429 directly displayable, and text content can be encoded in | |
430 foreign charsets. | |
431 .Pn show 's | |
432 simple approach and | |
433 .Pn mhl 's | |
434 limited display facilities couldn't cope with the task any longer. | |
435 Instead of extending these tools, new ones were written from scratch | |
436 and then added to the MH toolchest. Doing so is encouraged by the | |
437 toolchest approach. The new tools could be added without interfearing | |
438 with the existing ones. This is great. It allowed MH to be the | |
439 first MUA to implement MIME. | |
440 .P | |
441 The new MIME features were added in form of the single program | |
442 .Pn mhn . | |
443 The command | |
444 .DS | |
445 mhn \-show 42 | |
446 .DE | |
447 would show the MIME message numbered 42. | |
448 With the 1.0 release of nmh in February 1999, Richard Coleman finished | |
449 the split of | |
450 .Pn mhn | |
451 into a set of specialized programs, which together covered the | |
452 aspects of MIME. One of these resulting tools was | |
453 .Pn mhshow . | |
454 | |
455 | |
392 .H1 "Blind Carbon Copies | 456 .H1 "Blind Carbon Copies |
393 .P | 457 .P |
394 foo | 458 foo |
395 | 459 |
396 .H1 "Good Defaults | 460 .H1 "Good Defaults |