annotate ch03.roff @ 75:0927d38589af

style: Increased middle margin a bit, decreasing line length. Mapped hyphen to minus for CW fonts.
author markus schnalke <meillo@marmaro.de>
date Tue, 05 Jun 2012 11:15:18 +0200
parents cefaa856d431
children 2e61e0004a8f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1 .H0 "Discussion
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
2 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
3 This main chapter discusses the practical work done in the mmh project.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
4 It is structured along the goals to achieve. The concrete work done
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
5 is described in the examples of how the general goals were achieved.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
6
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
7
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
8
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
9
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
10 .H1 "Stream-lining
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
11
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
12 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
13 MH had been considered an all-in-one system for mail handling.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
14 The community around nmh has a similar understanding.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
15 In fundamental difference, I believe that mmh should be a MUA but
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
16 nothing more. I believe that all-in-one mail systems are not the way
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
17 to go. There are excellent specialized MTAs, like Postfix;
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
18 there are specialized MDAs, like Procmail; there are specialized
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
19 MRAs, like Fetchmail. I believe it's best to use them instead of
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
20 providing the same function ourselves. Doing something well requires to
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
21 focus on this particular aspect or a small set of aspects. The more
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
22 it is possible to focus, the better the result in this particular
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
23 area will be. The limiting resource in Free Software community development
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
24 usually is human power. If the low development power is even parted
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
25 into multiple development areas, it will hardly be possible to
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
26 compete with the specialists in the various fields. This is even
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
27 increased, given the small community \(en developers and users \(en
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
28 that MH-based mail systems have. In consequence, I believe that the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
29 available resources should be concentrated at the point where MH is
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
30 most unique. This is clearly the MUA part.
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
31 .P
60
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
32 The goal for mmh was to remove peripheral parts and stream-line
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
33 it for the MUA task.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
34
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
35
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
36 .H2 "Removal of Mail Transfer Facilities
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
37 .P
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
38 In contrast to nmh, which also provides mail submission and mail retrieval
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
39 facilities, mmh is a MUA only.
66
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
40 This general difference in the view on the character of nmh
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
41 strongly supported the development of mmh.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
42 Removing the mail transfer facilities had been the first work task
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
43 for the mmh project.
60
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
44 .P
66
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
45 The MSA is called \fIMessage Transfer Service\fP (MTS) in nmh.
60
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
46 The facility establishes TCP/IP connections and speaks SMTP to submit
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
47 messages for relay to the outside world.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
48 This part is implemented in the
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
49 .Pn post
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
50 command.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
51 Demanded by the changes in
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
52 emailing, this part of nmh required changes in the last years.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
53 Encrypted connections needed to be supported, hence SASL was introduced
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
54 into nmh. This added complexity to the nmh without improving it in
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
55 its core functions. Also, keeping up with recent developments in
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
56 this field needs requires development power and specialists.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
57 Mmh cuts this whole facility off and depends on an external MTA instead.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
58 The only outgoing interface available to mmh is the
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
59 .Pn sendmail
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
60 command.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
61 Almost any MTA provides a
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
62 .Pn sendmail
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
63 command.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
64 It not, any program can be substituted if it reads the
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
65 message from the standard input, extracts the recipient addresses
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
66 from the message header and does not conflict
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
67 with sendmail-specific command line arguments.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
68 .P
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
69 To retrieve mail, the
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
70 .Pn inc
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
71 command in nmh has the ability to establish TCP/IP connections
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
72 and speaks POP3 to retrieve mail from remote servers.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
73 As with mail submission, here encrypted connections are required
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
74 today, thus SASL support was added.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
75 As POP3 is superseded by IMAP more and more, support for message
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
76 retrieval through IMAP will become necessary to be added soon.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
77 Mmh has no support for retrieving mail from remote locations.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
78 It depends on an external tool to cover this task.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
79 There are two ways for messages to enter mmh's mail storage:
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
80 Incorporate them with
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
81 .Pn inc
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
82 from the system maildrop, or with
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
83 .Pn rcvstore
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
84 from the standard input.
66
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
85 In consequence, mmh has not any longer networking code
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
86 and thus does no more need to do transfer encryption and authentication.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
87 Two large functional units are removed.
60
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
88 .P
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
89 With the removal of the MSA and MRA, mmh converted from an all-in-one
66
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
90 mail system to being only a MUA.
60
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
91 Following the Unix philosophy, it focuses on one job and to do that well.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
92 Now, of course, mmh depends on third-party software.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
93 An external MTA/MSA is required to transfer mail to the outside world;
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
94 an external MRA is required to retrieve mail from remote machines.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
95 There exist excellent implementations of such software,
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
96 which do this specific task likely much better than the internal
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
97 versions of nmh do it. Also, this provides the choice for the best
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
98 suiting one of the available implementation.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
99 .P
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
100 As it had already been possible to use an external MSA or MRA,
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
101 why not keep the internal version for convenience?
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
102 If this would question the sense in having a fall-back pager in all
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
103 the command line tools, in case
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
104 .Pn more
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
105 or
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
106 .Pn less
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
107 wouldn't be available, the answer is intuitively seen.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
108 Now, an MSA or MRA is clearly more complex than a text pager, but
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
109 still the concept holds: If programs become complex, split them;
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
110 if projects become complex, split them.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
111 Complexity is demanded by the problem to solve. Decades ago,
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
112 emailing had been small and simple.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
113 (Remember,
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
114 .Pn /bin/mail
66
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
115 had once covered anything there was to email and still had been small.)
60
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
116 As the complexity in emailing increased, MH remainded mostly unchanged.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
117 Nontheless, in nmh the POP server, which the original MH had included,
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
118 was removed. Now is the time to take one step further and remove
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
119 the MSA and MRA.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
120 Not only does it decrease the code amount of the project,
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
121 but more important, it removes the whole field of message transfer
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
122 with all its implications from the project.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
123 .P
66
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
124 If a project needs some kind of function, there's always the choice
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
125 between implementing the the function in the project directly or
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
126 depending on a library that provides the function or depending on
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
127 a program that provides the function.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
128 Whereas adding the function directly to the project increases the
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
129 code size most, it makes the project most independent.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
130 On the other end, interfacing external programs keeps the interface
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
131 smallest, but the depencency highest.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
132 Using a library is in the middle.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
133 Adding the function directly to the project is a bad choice for
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
134 any function of higher complexity, unless it's not available in other ways.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
135 Hence, the dependencies only change in kind, not in their existence.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
136 In mmh, library dependencies on
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
137 .Pn libsasl2
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
138 and
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
139 .Pn libcrypto /\c
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
140 .Pn libssl
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
141 were treated against program dependencies on an MSA and an MRA.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
142 Besides program dependencies providing the stronger separation
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
143 and being more flexible, they also allowed
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
144 over 6\|000 lines of code to be removed from mmh.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
145 This made mmh's code base about 12\|% smaller.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
146 Reducing the projects code size by such an amount without actually
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
147 losing function is a convincing argument.
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
148 .P
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
149 Users of MH should have not problem to set up an external MSA and MRA.
60
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
150 Also, the popular MSAs and MRAs have large communities and a lot
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
151 of documentation available.
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
152 .P
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
153 Choices for MSAs range from the full-featured
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
154 .I Postfix
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
155 over mid-size solutions like
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
156 .I masqmail
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
157 and
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
158 .I dma
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
159 to small forwarders like
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
160 .I ssmtp
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
161 and
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
162 .I nullmailer .
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
163 Choices for MRAs include
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
164 .I fetchmail ,
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
165 .I getmail ,
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
166 .I mpop
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
167 and
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
168 .I fdm .
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
169
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
170
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
171 .H2 "Removal of non-MUA Tools
6a92e0208de0 Wrote about the removal of the mail transfer facilities.
markus schnalke <meillo@marmaro.de>
parents: 58
diff changeset
172 .P
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
173 Some of nmh's tools were removed from mmh because they didn't
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
174 match the main focus of adding to the MUA's task.
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
175 .BU
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
176 .Pn conflict
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
177 was removed because it is a mail system maintenance tool.
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
178 Besides, it even checks
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
179 .Fn /etc/passwd
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
180 and
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
181 .Fn /etc/group
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
182 for consistency, which has nothing at all to do with emailing.
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
183 The tool might be useful, but it should not be shipped with mmh.
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
184 .BU
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
185 .Pn rcvtty
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
186 was removed because its usecase of writing to the user's terminal
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
187 on receiving of mail is hardly wanted today. If users like to be
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
188 informed of new mail, then using the shell's
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
189 .Ev MAILPATH
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
190 variable or graphical notifications are likely more
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
191 appealing.
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
192 Writing directly to a terminals is hardly ever wanted today.
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
193 If though one wants to have it this way, the standard tool
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
194 .Pn write
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
195 can be used in a way similar to:
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
196 .DS
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
197 scan -file - | write `id -un`
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
198 .DE
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
199 .BU
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
200 .Pn viamail
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
201 was removed when the new attachment system was introduced, because
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
202 .Pn forw
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
203 could can now the task itself.
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
204 The program
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
205 .Pn sendfiles
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
206 was rewritten as a shell script wrapper around
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
207 .Pn forw .
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
208 .BU
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
209 .Pn msgchk
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
210 was removed, because it lost its usefulness when POP support was removed.
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
211 .Pn msgchk
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
212 provides hardly more information than:
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
213 .DS
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
214 ls -l /var/mail/meillo
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
215 .DE
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
216 It does separate between old and new mail, but that's merely a detail
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
217 and can be done with
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
218 .Pn stat (1)
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
219 too.
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
220 A very small shell script could be written to output the information
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
221 in a convenient way, if truly necessary.
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
222 As mmh's inc only incorporates mail from the user's local maildrop
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
223 and thus no data transfers over slow networks are involved,
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
224 there's hardly need to check for new mail before incorporating it.
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
225 .BU
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
226 .Pn msh
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
227 was removed because the tool was in conflict with the
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
228 philosophy of MH. It provided an interactive shell to access the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
229 features of MH. One major feature of MH is being a tool chest.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
230 .Pn msh
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
231 wouldn't be just another shell, tailored to the needs of mail
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
232 handling, but one large program to have the MH tools built in.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
233 It's main use was for accessing Bulletin Boards, which have seized to
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
234 be popular.
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
235 .P
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
236 Removing
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
237 .Pn msh ,
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
238 together with the truly obsolete code relicts
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
239 .Pn vmh
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
240 and
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
241 .Pn wmh ,
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
242 saved more than 7\|000 lines of C code \(en
66
4c9f4d05d90e Rework and extension of text from yesterday.
markus schnalke <meillo@marmaro.de>
parents: 63
diff changeset
243 about 15\|% of the project's original source code amount.
63
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
244 Having the same functionality in less code (with equal readability,
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
245 of course) is an advantage.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
246 Less code means less bugs and less maintenance work.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
247 If
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
248 .Pn rcvtty
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
249 and
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
250 .Pn msgchk
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
251 are rarely used and can be implemented in different ways,
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
252 then why should one keep them?
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
253 .Pn viamail 's
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
254 use case is now partly obsolete and partly covered by
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
255 .Pn forw ,
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
256 hence there's no reason to still have
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
257 .Pn viamail
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
258 around.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
259 .Pn conflict
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
260 is not related with the mail client, and
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
261 .Pn msh
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
262 conflicts with the basic concept of MH.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
263 Both tools could still be useful, but not as part of mmh.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
264 .P
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
265 It is a design goal of mmh to remove those parts that are rarely used.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
266 The project shall become more stream-lined.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
267 Rarely used and loosely related tools distract from the lean appearance.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
268 They require maintenance cost without adding to the core task.
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
269 Therefore they were removed.
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
270
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
271
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
272 .H2 "Merge of \f(CWshow\fP and \f(CWmhshow\fP
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
273 .P
69
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
274 Since the very beginning \(en already in the first concept paper \(en
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
275 .Pn show
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
276 had been MH's message display program.
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
277 .Pn show
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
278 found out which pathnames the relevant messages had and invoked
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
279 .Pn mhl
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
280 then to have the content formated.
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
281 With the advent of MIME, this approach wasn't sufficient anymore.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
282 MIME messages can consist of multiple parts, some of which aren't
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
283 directly displayable, and text content might be encoded in
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
284 foreign charsets.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
285 .Pn show 's
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
286 simple approach and
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
287 .Pn mhl 's
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
288 limited display facilities couldn't cope with the task any longer.
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
289 .P
69
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
290 Instead of extending these tools, additional ones were written from scratch
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
291 and then added to the MH tool chest. Doing so is encouraged by the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
292 tool chest approach. The new tools could be added without interfering
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
293 with the existing ones. This is great. The ease of adding new tools
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
294 even made MH the first MUA to implement MIME.
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
295 .P
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
296 First, the new MIME features were added in form of the single program
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
297 .Pn mhn .
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
298 The command
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
299 .Cl "mhn \-show 42
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
300 would show the MIME message numbered 42.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
301 With the 1.0 release of nmh in February 1999, Richard Coleman finished
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
302 the split of
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
303 .Pn mhn
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
304 into a set of specialized programs, which together covered the
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
305 multiple aspects of MIME. One of these resulting tools was
69
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
306 .Pn mhshow ,
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
307 which replaced the
62
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
308 .Cl "mhn \-show
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
309 call.
24aabbfe5794 Minor rework of larger text areas.
markus schnalke <meillo@marmaro.de>
parents: 60
diff changeset
310 .P
69
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
311 From then on, two message display tools were part of nmh.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
312 Because it should not require user actions to invoke the right tool
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
313 whether the message uses MIME or not,
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
314 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
315 was extended to automatically hand the job over to
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
316 .Pn mhshow
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
317 if displaying the message would be beyond
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
318 .Pn show 's
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
319 abilities.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
320 For convenience,
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
321 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
322 would still display MIME messages if they contained only a single text
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
323 part.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
324 In consequence, the user would invoke
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
325 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
326 (possibly through
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
327 .Pn next
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
328 or
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
329 .Pn prev )
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
330 and get the message printed with either
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
331 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
332 or
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
333 .Pn mhshow ,
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
334 whatever was more appropriate.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
335 (There was also a switch for
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
336 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
337 to never invoke
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
338 .Pn mhshow .)
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
339 .P
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
340 Having two similar tools for essentially the same task is redundant.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
341 Both programs needed to be developed syncronously as they were
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
342 used as a single tool by the user. Thus they needed to act in a
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
343 similar way to not distract the user.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
344 .P
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
345 Today, non-MIME messages are rather seen to be a special case of
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
346 MIME messages, than MIME messages are seen to be an extension to
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
347 original mail.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
348 As
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
349 .Pn mhshow
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
350 had already be able to display non-MIME messages, it was natural
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
351 to drop
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
352 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
353 in favor of using
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
354 .Pn mhshow
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
355 exclusively.
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
356 .Ci 4c1efddfd499300c7e74263e57d8aa137e84c853
69
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
357 This decision follows the idea of orthogonal design.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
358 .P
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
359 To allow this replacement,
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
360 .Pn mhshow
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
361 was reworked to behave more like
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
362 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
363 first.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
364 Section XXX describes this rework from a different perspective.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
365 Once the tools behaved similar, the replacing became a natural decision.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
366 In mmh,
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
367 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
368 is the one single message display program again, but it handles
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
369 MIME messages as well as non-MIME messages.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
370 There's only one program to maintain and users don't need to deal
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
371 with the existance of two display programs.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
372 .P
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
373 Though, there's one reason why removing the old
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
374 .Pn show
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
375 hurts: It had been such a simple program.
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
376 Its lean elegance is missing to
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
377 .Pn mhshow ,
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
378 i.e. the new
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
379 .Pn show .
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
380 But there is no chance, because supporting MIME causes essentially
f80ced4e749b Wrote more about the show-mhshow merge.
markus schnalke <meillo@marmaro.de>
parents: 66
diff changeset
381 higher complexity.
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
382
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
383
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
384 .H2 "Removal of Configure Options
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
385 .P
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
386 Choice is a double-edged sword.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
387 It allows customization and thus better suiting solutions,
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
388 but that comes with costs.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
389 First, there is the cost of code complexity to have choice.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
390 Second, there is the cost of less tested setups, because there are
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
391 more possible setups and especially corner-cases.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
392 Third, there is the cost of choice itself.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
393 The code complexity affects the developers.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
394 Less tested code affects both, users and developers.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
395 The problem of choice affects the users, for once simply by having to
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
396 choose but also by complexer interfaces that require more documentation.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
397 Whenever options add little advantages, they should be considered for
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
398 removal.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
399 .P
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
400 I have reduced the number of project-specific configure options from
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
401 fifteen to three.
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
402
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
403 .U3 "Mail Transfer Facility Options
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
404 .P
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
405 With the removal of the mail transfer facilities five option vanished:
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
406 .IP \f(CW--with-mts=[smtp|sendmail]\fP
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
407 Specified the default mail transport service, which now is sendmail always.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
408 .IP \f(CW--with-smtpservers=[server1...]\fP
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
409 Specified the default SMTP servers for the smtp mail transfer service.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
410 .Ci 128545e06224233b7e91fc4c83f8830252fe16c9
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
411 .IP \f(CW--with-cyrus-sasl\fP
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
412 Enabled SASL support for mail transfer.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
413 .IP \f(CW--with-tls\fP
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
414 Enabled TLS support for mail transfer.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
415 .IP \f(CW--enable-pop\fP
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
416 Enabled the message retrieval facility.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
417
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
418 .U3 "Backup Prefix
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
419 .P
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
420 The default backup prefix, i.e. the string that was prepended to message
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
421 filenames to tag them as deleted, had been the comma `\f(CW,\fP'.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
422 There was a configure option to change the default to the hash symbol
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
423 `\f(CW#\fP':
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
424 .CW --with-hash-backup .
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
425 The implication of the hash symbol is that it introduces a comment
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
426 in the Unix shell.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
427 Thus, the command line
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
428 .Cl "rm #13 #15
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
429 calls
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
430 .Pn rm
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
431 without arguments because the first hash symbol starts the comment
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
432 that reaches until the end of the line.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
433 To delete the backup files,
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
434 .Cl "rm ./#13 ./#15"
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
435 needs to be used.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
436 .\" XXX check historical background
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
437 Besides this effect, the choice was personal preference.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
438 I removed the configure option but added the profile entry
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
439 .Pe backup-prefix ,
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
440 which allows to specify an arbitrary string as backup prefix.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
441 .Ci 6c40d481d661d532dd527eaf34cebb6d3f8ed086
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
442 This did not remove the choice but moved it to a location where
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
443 it suited better.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
444 Profile entries are the common method to change mmh's behavior.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
445 The name of the
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
446 .Fn .mh-sequences ,
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
447 for instance, is specified there, too.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
448 Moving the specification of the backup prefix there, appears to be right.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
449 Eventually, the new trash folder obsoleted the concept of the
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
450 backup prefix completely.
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
451 (Well, there still are corner-cases to remove until the backup
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
452 prefix can be layed to rest, eventually.)
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
453 .\" FIXME: Do this work in the code!
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
454 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
455 The two configure options
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
456 .CW --with-editor=EDITOR
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
457 .CW --with-pager=PAGER
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
458 were used to specify the default editor and pager at configure time.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
459 Doing so at configure time made sense in the Eighties,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
460 when the available editors and pagers varied more across different systems.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
461 Today, the situation is much more homegenic.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
462 The programs
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
463 .Pn vi
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
464 and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
465 .Pn more
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
466 can be expected to be available anywhere on every Unix system,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
467 as they are specified by POSIX since two decades.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
468 (The specifications for
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
469 .Pn vi
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
470 and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
471 .Pn more
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
472 appeared in
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
473 .[
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
474 posix 1987
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
475 .]
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
476 and,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
477 .[
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
478 posix 1992
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
479 .]
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
480 respectively.)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
481 As a first step, these two tools were hard-coded as defaults.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
482 .Ci 5d43a99db70c12a673028c7758c20cbe3e13ef5f
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
483 Not changed were the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
484 .Pe editor
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
485 and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
486 .Pe moreproc
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
487 profile entries, which allowed the user to change the default
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
488 by personal preference.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
489 Later, the concept was reworked to respect the standard environment
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
490 variables
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
491 .Ev VISUAL
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
492 and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
493 .Ev PAGER
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
494 if they were set.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
495 Today, mmh determines the editor to use in the following order,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
496 taking the first available and non-empty item:
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
497 .IP (1)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
498 Environment variable
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
499 .Ev MMHEDITOR
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
500 .IP (2)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
501 Profile entry
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
502 .Pe Editor
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
503 .IP (3)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
504 Environment variable
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
505 .Ev VISUAL
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
506 .IP (4)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
507 Environment variable
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
508 .Ev EDITOR
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
509 .IP (5)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
510 Command
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
511 .Pn vi .
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
512 .P
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
513 The pager to use is deteminded in the following order,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
514 also taking the first available and non-empty item:
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
515 .IP (1)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
516 Environment variable
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
517 .Ev MMHPAGER
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
518 .IP (2)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
519 Profile entry
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
520 .Pe Pager
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
521 (replaces
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
522 .Pe moreproc )
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
523 .IP (3)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
524 Environment variable
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
525 .Ev PAGER
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
526 .IP (4)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
527 Command
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
528 .Pn more .
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
529 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
530 .Ci f85f4b7ae62e3d05a945dcd46ead51f0a2a89a9b
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
531 .Ci 0c4214ea2aec6497d0d67b436bbee9bc1d225f1e
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
532 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
533 The new behavior confirms better to the common behavior on Unix
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
534 systems, as
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
535 .Ev VISUAL /\c
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
536 .Ev EDITOR
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
537 and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
538 .Ev PAGER
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
539 are respected.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
540 Additionally, the new approach is more uniform and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
541 without surprise for users.
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
542
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
543 .U3 "Locale
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
544 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
545 The configure option
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
546 .Sw --disable-locale
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
547 was removed because today there's hardly any need to disable locale
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
548 support.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
549 .Ci ccf4f175ef4c4e7522f9510a4a1149c15d810dd9
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
550
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
551 .U3 "\fLslocal\fP Supress Duplicates
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
552 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
553 .Pn slocal
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
554 is an MDA included in mmh.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
555 This is a violation of the idea that mmh is a MUA only.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
556 .Pn slocal
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
557 should become a separate project.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
558 Nonetheless, ouf of convenience and due to lack of convincement,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
559 yet it remains being part of mmh.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
560 This is likely to change in the future.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
561 Already,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
562 .Pn slocal was stripped down.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
563 It used to depend on
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
564 .I ndbm ,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
565 a database library.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
566 The database is used to store the message ids of all messages delivered.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
567 This enables
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
568 .Pn slocal
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
569 to suppress delivering the same message to the same user twice.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
570 (This features was enabled by the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
571 .Sw -suppressdup
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
572 switch.)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
573 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
574 A variety of version of the database library exist.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
575 Complicated autoconf code was needed to detect them correctly.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
576 Further more, the configure switches
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
577 .Sw --with-ndbm=ARG
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
578 and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
579 .Sw --with-ndbmheader=ARG
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
580 were added to help with difficult setups that would
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
581 not be detected automatically.
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
582 .P
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
583 By removing the suppress duplicates feature of
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
584 .Pn slocal ,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
585 the dependency on
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
586 .I ndbm
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
587 was removed and 120 lines of complex autoconf could be saved.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
588 .Ci ecd6d6a20cb7a1507e3a20d6c4cb3a1cf14c6bbf
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
589 The change removed funtionality too, but the value it would have added
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
590 is minor to the weight loss by dropping the dependency and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
591 the complex autoconf code.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
592
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
593 .U3 "mh-e Support
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
594 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
595 The configure option
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
596 .Sw --disable-mhe
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
597 was removed when the mh-e support was reworked.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
598 Mh-e is the Emacs front-end to MH.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
599 It requires MH to act different in some minor ways.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
600 The configure option could switch the extension off.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
601 After removing support for old versions of mh-e,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
602 only the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
603 .Sw -build
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
604 switches for
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
605 .Pn forw
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
606 and
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
607 .Pn repl
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
608 are left to be mh-e-specific.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
609 They are now always available because they add little code and complexity.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
610 This change was first done in nmh and thereafter merged into mmh.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
611 The interface changes in mmh require mh-e to be adjusted to use mmh
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
612 as the back-end. This requires minor changes to mh-e, though removing
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
613 the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
614 .Sw -build
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
615 switches would require larger adjustments.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
616 The
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
617 .Sw --disable-mhe
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
618 configure option was removed and the remaining support for mh-e is always
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
619 built in.
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
620 .Ci a7ce7b4a580d77b6c2c4d980812beb589aa4c643
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
621 Removing the option removed a second code setup that would have
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
622 needed to be tested.
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
623
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
624 .U3 "Masquerading
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
625 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
626 The configure option
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
627 .Sw --enable-masquerade
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
628 could take up to three items: draft_from, mmailid, username_extension.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
629 They activated different types of address masquerading.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
630 All of them were implemented in the SMTP-speaking
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
631 .Pn post
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
632 command.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
633 Mmh no longer speaks SMTP and the replacing
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
634 .Pn spost
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
635 command no longer does MTA jobs like this one.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
636 Because address masquerading is an MTA's task and mmh does not cover
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
637 this field anymore, the funtion needs to be implemented in the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
638 external MTA used.
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
639 .P
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
640 The
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
641 .I mmailid
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
642 masquerading type is the oldest one of the three and the only one
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
643 available in the original MH.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
644 It provided a
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
645 .I username
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
646 to
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
647 .I fakeusername
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
648 mapping, based on the value of the password file's GECOS field.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
649 The man page
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
650 .Mp mh-tailor(5)
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
651 described the use case as being the following:
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
652 .QP
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
653 This is useful if you want the messages you send to always
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
654 appear to come from the name of an MTA alias rather than your
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
655 actual account name. For instance, many organizations set up
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
656 `First.Last' sendmail aliases for all users. If this is
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
657 the case, the GECOS field for each user should look like:
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
658 ``First [Middle] Last <First.Last>''
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
659 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
660 As mmh sends outgoing mail via the local MTA only,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
661 it is the best location to do such global rewrites.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
662 Besides, the MTA is conceptionally the right location because it
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
663 does the reverse mapping for incoming mail (aliasing), too.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
664 The masquerading set up there is set up once for all
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
665 mail software on the system.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
666 .Ci 0836c8000ccb34b59410ef1c15b1b7feac70ce5f
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
667 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
668 The
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
669 .I username_extension
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
670 masquerading type did not replace the username but could append a suffix
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
671 to it.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
672 The suffix needed to be specified by the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
673 .Ev USERNAME_EXTENSION
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
674 environment variable.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
675 It provided support for the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
676 .I user-extension
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
677 feature of qmail and the similar
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
678 .I "plussed user
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
679 processing of sendmail.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
680 The decision to remove this username_extension masquerading was
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
681 motivated by the fact that
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
682 .Pn spost
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
683 hadn't supported it.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
684 .Ci 2abae0bfd0ad5bf898461e50aa4b466d641f23d9_username_extension
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
685 Mmh now provides a more general, though in this case less convenient,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
686 kind of masquerading.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
687 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
688 The
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
689 .I draft_from
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
690 masquerading type instructed
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
691 .Pn post
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
692 to use the value of the `From:' header as SMTP envelope sender.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
693 This allowes to replace the sender address completely.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
694 .Ci b14ea6073f77b4359aaf3fddd0e105989db9
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
695 Mmh now offers a kind of masquerading similar in effect, but
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
696 with technical differences.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
697 As mmh does not transfer messages itself, the local MTA has full control
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
698 over the sending address. Any masquerading mmh introduces may be reverted
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
699 by the MTA. In times of pedantic spam checking, an MTA will likely do so
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
700 to keep its own reputation up.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
701 Nonetheless, the MUA can set the `From:' header and thus propose
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
702 a sender address to be used to the MTA.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
703 The MTA may then decide to take that one or generate the canonical sender
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
704 address for use as envelope sender address.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
705 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
706 In mmh, the MTA will always extract the recipient and sender from the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
707 headers (\c
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
708 .Pn sendmail 's
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
709 .Sw -t
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
710 switch).
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
711 The `From:' header of the draft may be set arbitrary by the user.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
712 If it is missing, the canonical sender address will be generated by the MTA.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
713
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
714 .U3 "Remaining Options
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
715 .P
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
716 Two configure options remain in mmh.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
717 One is the locking method to use:
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
718 .Sw --with-locking=[dot|fcntl|flock|lockf] .
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
719 Removing all other methods except the portable dot locking and having
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
720 that as default is appealing, but requires deeper investigation into the
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
721 topic.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
722 The other,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
723 .Sw --enable-debug ,
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
724 compiles the programs with debugging symbols and does not strip them.
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
725 This option is likely to stay.
72
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
726
bae9273b5802 Wrote about configure options (not finished yet).
markus schnalke <meillo@marmaro.de>
parents: 69
diff changeset
727
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
728
63
abbaca05ee8e More text.
markus schnalke <meillo@marmaro.de>
parents: 62
diff changeset
729
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
730 .H2 "Removal of switches
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
731 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
732
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
733
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
734
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
735
74
cefaa856d431 A lot of new text about configure switches.
markus schnalke <meillo@marmaro.de>
parents: 72
diff changeset
736 .H1 "Modernizing
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
737
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
738
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
739 .H2 "Removal of Code Relicts
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
740 .P
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
741 The code base of mmh originates from the late Seventies,
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
742 had been extensively
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
743 worked on in the mid Eighties, and had been partly reorganized and extended
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
744 in the Nineties. Relicts of all those times had gathered in the code base.
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
745 My goal was to remove any ancient code parts. One part of the task was
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
746 converting obsolete code constructs to standard constructs, the other part
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
747 was dropping obsolete functions.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
748 .P
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
749 As I'm not even thirty years old and have no more than seven years of
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
750 Unix experience, I needed to learn about the history in retrospective.
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
751 Older people likely have used those ancient constructs themselves
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
752 and have suffered from their incompatibilities and have longed for
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
753 standardization. Unfortunately, I have only read that others had done so.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
754 This put me in a much more difficult positions when working on the old
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
755 code. I needed to recherche what other would have known by heart from
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
756 experience. All my programming experience comes from a time past ANSI C
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
757 and past POSIX. Although I knew about the times before, I took the
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
758 current state implicitly for granted most of the time.
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
759 .P
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
760 Being aware of
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
761 these facts, I rather let people with more historic experience solve the
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
762 task of converting the ancient code constructs to standardized ones.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
763 Luckily, Lyndon Nerenberg focused on this task at the nmh project.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
764 He converted large parts of the code to POSIX constructs, removing
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
765 the conditionals compilation for now standardized features.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
766 I'm thankful for this task being solved. I only pulled the changes into
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
767 mmh.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
768 .P
20
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
769 The other task \(en dropping ancient functionality to remove old code \(en
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
770 I did myself, though. My position to strip mmh to the bare minimum of
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
771 frequently used features is much more revolutional than the nmh community
20
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
772 likes it. Without the need to justify my decisions, I was able to quickly
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
773 remove functionality I considered ancient.
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
774 The need to discuss my decisions with
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
775 peers likely would have slowed this process down. Of course, I researched
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
776 if a particular feature really should be dropped. Having not had any
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
777 contact to this feature within my computer life was a first indicator to
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
778 drop it, but I also asked others and searched the literature for modern
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
779 usage of the feature. If it appeared to be truly ancient, I dropped it.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
780 The reason for dropping is always part of the commit message in the
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
781 version control system. Thus, it is easy for others to check their
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
782 view on the topic with mine and possibly to argue for reinclusion.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
783
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
784 .U2 "MMDF maildrop support
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
785 .P
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
786 I did drop any support for the MMDF maildrop format. This type of format
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
787 is conceptionally similar to the mbox format, but uses four bytes with
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
788 value 1 (\fL^A^A^A^A\fP) as message delimiter,
18
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
789 instead of the string ``\fLFrom\ \fP''.
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
790 Due to the similarity and mbox being the de-facto standard maildrop
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
791 format on Unix, but also due to the larger influence of Sendmail than MMDF,
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
792 the MMDF maildrop format had vanished.
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
793 .P
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
794 The simplifications within the code were only moderate. Switches could
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
795 be removed from tools like
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
796 .L packf ,
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
797 which generate packed mailboxes. Only one packed mailbox format remained:
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
798 mbox.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
799 The most important changes affect the equally named mail parsing routine in
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
800 .L sbr/m_getfld.c .
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
801 The direct MMDF code had been removed, but as now only one packed mailbox
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
802 format is left, code structure simplifications are likely possible.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
803 The reason why they are still outstanding is the heavily optimized code
18
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
804 of
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
805 .Fu m_getfld() .
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
806 Changes beyond a small local scope \(en
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
807 which restructuring in its core is \(en cause a high risk of damaging
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
808 the intricate workings of the optimized code. This problem is know
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
809 to the developers of nmh, too. They also avoid touching this minefield
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
810 if possible.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
811
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
812 .U2 "UUCP Bang Paths
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
813 .P
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
814 More questionably than the former topic is the removal of support for the
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
815 UUCP bang path address style. However, the user may translate the bang
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
816 paths on retrieval to Internet addresses and the other way on posting
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
817 messages. The former can be done my an MDA like procmail; the latter
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
818 by a sendmail wrapper. This would ensure that any address handling would
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
819 work as expected. However, it might just work well without any
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
820 such modifications, as mmh does not touch addresses much, in general.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
821 But I can't ensure as I have never used an environment with bang paths.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
822 Also, the behavior might break at any point in further development.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
823
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
824 .U2 "Hardcopy terminal support
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
825 .P
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
826 More of a funny anecdote is the remaining of a check for printing to a
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
827 hardcopy terminal until Spring 2012, when I finally removed it.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
828 I surely would be very happy to see such a terminal in action, maybe
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
829 actually being able to work on it, but I fear my chances are null.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
830 .P
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
831 The check only prevented a pager to be placed between the outputting
18
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
832 program (\c
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
833 .Pn mhl )
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
834 and the terminal. This could have been ensured with
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
835 the
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
836 .Sw \-nomoreproc
db3567c9cc3f style: Added format macros for files, functions, switches, etc.
markus schnalke <meillo@marmaro.de>
parents: 17
diff changeset
837 at the command line statically, too.
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
838
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
839 .U2 "Removed support for header fields
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
840 .P
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
841 The `Encrypted' header had been introduced by RFC\^822, but already
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
842 marked legacy in RFC 2822. It was superseded by FIXME.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
843 Mmh does no more support this header.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
844 .P
21
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
845 Native support for `Face' headers
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
846 had been removed, as well.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
847 The feature is similar to the `X-Face' header in its intent,
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
848 but takes a different approach to store the image.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
849 Instead of encoding the image data directly into the header,
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
850 the the header contains the hostname and UDP port where the image
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
851 date could be retrieved.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
852 Neither `X-Face' nor the here described `Face' system
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
853 \**
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
854 .FS
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
855 There is also a newer but different system, invented 2005,
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
856 using `Face' headers.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
857 It is the successor of `X-Face' providing colored PNG images.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
858 .FE
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
859 became well used in the large scale.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
860 It's still possible to use a Face systems,
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
861 although mmh does not provide support for any of the different systems
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
862 anymore. It's fairly easy to write a small shell script to
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
863 extract the embedded or fetch the external Face data and display the image.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
864 Own Face headers can be added into the draft template files.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
865 .P
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
866 `Content-MD5' headers were introduced by RFC\^1864. They provide only
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
867 a verification of data corruption during the transfer. By no means can
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
868 they ensure verbatim end-to-end delivery of the contents. This is clearly
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
869 stated in the RFC. The proper approach to provide verificationability
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
870 of content in an end-to-end relationship is the use of digital cryptography
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
871 (RFCs FIXME). On the other hand, transfer protocols should ensure the
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
872 integrity of the transmission. In combinations these two approaches
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
873 make the `Content-MD5' header field useless. In consequence, I removed
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
874 the support for it. By this removal, MD5 computation is not needed
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
875 anywhere in mmh. Hence, over 500 lines of code were removed by this one
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
876 change. Even if the `Content-MD5' header field is useful sometimes,
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
877 I value its usefulnes less than the improvement in maintainability, caused
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
878 by the removal.
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
879
20
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
880 .U2 "Prompter's Control Keys
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
881 .P
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
882 The program
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
883 .Pn prompter
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
884 queries the user to fill in a message form. When used by
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
885 .Pn comp
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
886 as:
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
887 .DS
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
888 comp \-editor prompter
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
889 .DE
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
890 the resulting behavior is similar to
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
891 .Pn mailx .
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
892 Apparently,
20
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
893 .Pn prompter
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
894 hadn't been touched lately. Otherwise it's hardly explainable why it
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
895 still offered the switches
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
896 .Sn \-erase \fUchr\fP
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
897 and
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
898 .Sn \-kill \fUchr\fP
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
899 to name the characters for command line editing.
21
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
900 The times when this had been necessary are long time gone.
20
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
901 Today these things work out-of-the-box, and if not, are configured
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
902 with the standard tool
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
903 .Pn stty .
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
904
21
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
905 .U2 "Vfork and Retry Loops
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
906 .P
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
907 MH creates many processes, which is a consequence of the tool chest approach.
21
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
908 In earlier times
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
909 .Fu fork()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
910 had been an expensive system call, as the process's whole image needed
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
911 to be duplicated. One common case is replacing the image with
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
912 .Fu exec()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
913 right after having forked the child process.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
914 To speed up this case, the
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
915 .Fu vfork()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
916 system call was invented at Berkeley. It completely omits copying the
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
917 image. If the image gets replaced right afterwards then unnecessary
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
918 work is omited. On old systems this results in large speed ups.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
919 MH uses
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
920 .Fu vfork()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
921 whenever possible.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
922 .P
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
923 Memory management units that support copy-on-write semantics make
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
924 .Fu fork()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
925 almost as fast as
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
926 .Fu vfork()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
927 in the cases when they can be exchanged.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
928 With
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
929 .Fu vfork()
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
930 being more error-prone and hardly faster, it's preferable to simply
21
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
931 use
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
932 .Fu fork()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
933 instead.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
934 .P
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
935 Related to the costs of
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
936 .Fu fork()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
937 is the probability of its success.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
938 Today on modern systems, the system call will succeed almost always.
51
49cf68506b5d Spell checking.
markus schnalke <meillo@marmaro.de>
parents: 49
diff changeset
939 In the Eighties on heavy loaded systems, as they were common at
21
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
940 universities, this had been different. Thus, many of the
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
941 .Fu fork()
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
942 calls were wrapped into loops to retry to fork several times in
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
943 short intervals, in case of previous failure.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
944 In mmh, the program aborts at once if the fork failed.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
945 The user can reexecute the command then. This is expected to be a
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
946 very rare case on modern systems, especially personal ones, which are
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
947 common today.
bb8a8be49024 Wrote about Face support and vfork().
markus schnalke <meillo@marmaro.de>
parents: 20
diff changeset
948
12
7ca384d68edc Wrote some text for removal of old code.
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
949
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
950 .H2 "Attachments
22
99409e4546d2 Wrote about the removal of tools.
markus schnalke <meillo@marmaro.de>
parents: 21
diff changeset
951 .P
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
952 MIME
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
953
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
954
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
955 .H2 "Digital Cryptography
22
99409e4546d2 Wrote about the removal of tools.
markus schnalke <meillo@marmaro.de>
parents: 21
diff changeset
956 .P
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
957 Signing and encryption.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
958
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
959
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
960 .H2 "Good Defaults
22
99409e4546d2 Wrote about the removal of tools.
markus schnalke <meillo@marmaro.de>
parents: 21
diff changeset
961 .P
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
962 foo
22
99409e4546d2 Wrote about the removal of tools.
markus schnalke <meillo@marmaro.de>
parents: 21
diff changeset
963
99409e4546d2 Wrote about the removal of tools.
markus schnalke <meillo@marmaro.de>
parents: 21
diff changeset
964
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
965
14
55ec590cfa07 Wrote about the draft folder.
markus schnalke <meillo@marmaro.de>
parents: 12
diff changeset
966
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
967 .H1 "Code style
16
81f703140554 Wrote about the trash folder.
markus schnalke <meillo@marmaro.de>
parents: 14
diff changeset
968 .P
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
969 foo
16
81f703140554 Wrote about the trash folder.
markus schnalke <meillo@marmaro.de>
parents: 14
diff changeset
970
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
971
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
972 .H2 "Standard Code
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
973 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
974 POSIX
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
975
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
976
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
977 .H2 "Separation
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
978
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
979 .U2 "MH Directory Split
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
980 .P
19
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
981 In MH and nmh, a personal setup had consisted of two parts:
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
982 The MH profile, named
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
983 .Fn \&.mh_profile
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
984 and being located directly in the user's home directory.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
985 And the MH directory, where all his mail messages and also his personal
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
986 forms, scan formats, other configuration files are stored. The location
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
987 of this directory could be user-chosen. The default was to name it
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
988 .Fn Mail
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
989 and have it directly in the home directory.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
990 .P
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
991 I've never liked the data storage and the configuration to be intermixed.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
992 They are different kinds of data. One part, are the messages,
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
993 which are the data to operate on. The other part, are the personal
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
994 configuration files, which are able to change the behavior of the operations.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
995 The actual operations are defined in the profile, however.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
996 .P
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
997 When storing data, one should try to group data by its type.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
998 There's sense in the Unix file system hierarchy, where configuration
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
999 file are stored separate (\c
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1000 .Fn /etc )
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1001 to the programs (\c
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1002 .Fn /bin
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1003 and
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1004 .Fn /usr/bin )
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1005 to their sources (\c
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1006 .Fn /usr/src ).
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1007 Such separation eases the backup management, for instance.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1008 .P
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1009 In mmh, I've reorganized the file locations.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1010 Still there are two places:
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1011 There's the mail storage directory, which, like in MH, contains all the
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1012 messages, but, unlike in MH, nothing else.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1013 Its location still is user-chosen, with the default name
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1014 .Fn Mail ,
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1015 in the user's home directory. This is much similar to the case in nmh.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1016 The configuration files, however, are grouped together in the new directory
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1017 .Fn \&.mmh
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1018 in the user's home directory.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1019 The user's profile now is a file, named
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1020 .Fn profile ,
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1021 in this mmh directory.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1022 Consistently, the context file and all the personal forms, scan formats,
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1023 and the like, are also there.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1024 .P
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1025 The naming changed with the relocation.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1026 The directory where everything, except the profile, had been stored (\c
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1027 .Fn $HOME/Mail ),
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1028 used to be called \fIMH directory\fP. Now, this directory is called the
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1029 user's \fImail storage\fP. The name \fImmh directory\fP is now given to
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1030 the new directory
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1031 (\c
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1032 .Fn $HOME/.mmh ),
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1033 containing all the personal configuration files.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1034 .P
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1035 The separation of the files by type of content is logical and convenient.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1036 There are no functional differences as any possible setup known to me
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1037 can be implemented with both approaches, although likely a bit easier
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1038 with the new approach. The main goal of the change had been to provide
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1039 sensible storage locations for any type of personal mmh file.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1040 .P
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1041 In order for one user to have multiple MH setups, he can use the
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1042 environment variable
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1043 .Ev MH
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1044 the point to a different profile file.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1045 The MH directory (mail storage plus personal configuration files) is
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1046 defined by the
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1047 .Pe Path
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1048 profile entry.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1049 The context file could be defined by the
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1050 .Pe context
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1051 profile entry or by the
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1052 .Ev MHCONTEXT
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1053 environment variable.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1054 The latter is useful to have a distinct context (e.g. current folders)
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1055 in each terminal window, for instance.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1056 In mmh, there are three environment variables now.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1057 .Ev MMH
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1058 may be used to change the location of the mmh directory.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1059 .Ev MMHP
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1060 and
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1061 .Ev MMHC
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1062 change the profile and context files, respectively.
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1063 Besides providing a more consistent feel (which simply is the result
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1064 of being designed anew), the set of personal configuration files can
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1065 be chosen independently from the profile (including mail storage location)
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1066 and context, now. Being it relevant for practical use or not, it
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1067 de-facto is an improvement. However, the main achievement is the
ab5253e48c74 Wrote about the directory split.
markus schnalke <meillo@marmaro.de>
parents: 18
diff changeset
1068 split between mail storage and personal configuration files.
17
b3c37947764e Several minor text improvements.
markus schnalke <meillo@marmaro.de>
parents: 16
diff changeset
1069
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
1070
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1071 .H2 "Modularization
20
7a100c80fa91 Some new text (show/mhshow; prompter).
markus schnalke <meillo@marmaro.de>
parents: 19
diff changeset
1072 .P
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1073 whatnowproc
0
dc2bfef4cda7 Initial commit: Basic structure, macros and fonts.
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
1074 .P
49
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 23
diff changeset
1075 The \fIMH library\fP
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 23
diff changeset
1076 .Fn libmh.a
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 23
diff changeset
1077 collects a bunch of standard functions that many of the MH tools need,
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 23
diff changeset
1078 like reading the profile or context files.
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 23
diff changeset
1079 This doesn't hurt the separation.
d3a02f5e63b3 Various rework.
markus schnalke <meillo@marmaro.de>
parents: 23
diff changeset
1080
58
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1081
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1082 .H2 "Style
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1083 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1084 Code layout, goto, ...
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1085
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1086
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1087
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1088
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1089 .H1 "Concept Exploitation/Homogeniety
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1090
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1091
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1092 .H2 "Draft Folder
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1093 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1094 Historically, MH provided exactly one draft message, named
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1095 .Fn draft
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1096 and
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1097 being located in the MH directory. When starting to compose another message
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1098 before the former one was sent, the user had been questioned whether to use,
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1099 refile or replace the old draft. Working on multiple drafts at the same time
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1100 was impossible. One could only work on them in alteration by refiling the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1101 previous one to some directory and fetching some other one for reediting.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1102 This manual draft management needed to be done each time the user wanted
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1103 to switch between editing one draft to editing another.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1104 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1105 To allow true parallel editing of drafts, in a straight forward way, the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1106 draft folder facility exists. It had been introduced already in July 1984
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1107 by Marshall T. Rose. The facility was deactivated by default.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1108 Even in nmh, the draft folder facility remained deactivated by default.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1109 At least, Richard Coleman added the man page
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1110 .Mp mh-draft(5)
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1111 to document
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1112 the feature well.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1113 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1114 The only advantage of not using the draft folder facility is the static
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1115 name of the draft file. This could be an issue for MH frontends like mh-e.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1116 But as they likely want to provide working on multiple drafts in parallel,
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1117 the issue is only concerning compatibility. The aim of nmh to stay compatible
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1118 prevented the default activation of the draft folder facility.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1119 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1120 On the other hand, a draft folder is the much more natural concept than
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1121 a draft message. MH's mail storage consists of folders and messages,
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1122 the messages named with ascending numbers. A draft message breaks with this
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1123 concept by introducing a message in a file named
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1124 .Fn draft .
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1125 This draft
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1126 message is special. It can not be simply listed with the available tools,
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1127 but instead requires special switches. I.e. corner-cases were
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1128 introduced. A draft folder, in contrast, does not introduce such
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1129 corner-cases. The available tools can operate on the messages within that
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1130 folder like on any messages within any mail folders. The only difference
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1131 is the fact that the default folder for
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1132 .Pn send
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1133 is the draft folder,
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1134 instead of the current folder, like for all other tools.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1135 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1136 The trivial part of the change was activating the draft folder facility
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1137 by default and setting a default name for this folder. Obviously, I chose
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1138 the name
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1139 .Fn +drafts .
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1140 This made the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1141 .Sw \-draftfolder
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1142 and
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1143 .Sw \-draftmessage
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1144 switches useless, and I could remove them.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1145 The more difficult but also the part that showed the real improvement,
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1146 was updating the tools to the new concept.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1147 .Sw \-draft
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1148 switches could
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1149 be dropped, as operating on a draft message became indistinguishable to
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1150 operating on any other message for the tools.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1151 .Pn comp
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1152 still has its
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1153 .Sw \-use
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1154 switch for switching between its two modes: (1) Compose a new
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1155 draft, possibly by taking some existing message as a form. (2) Modify
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1156 an existing draft. In either case, the behavior of
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1157 .Pn comp is
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1158 deterministic. There is no more need to query the user. I consider this
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1159 a major improvement. By making
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1160 .Pn send
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1161 simply operate on the current
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1162 message in the draft folder by default, with message and folder both
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1163 overridable by specifying them on the command line, it is now possible
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1164 to send a draft anywhere within the storage by simply specifying its folder
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1165 and name.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1166 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1167 All theses changes converted special cases to regular cases, thus
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1168 simplifying the tools and increasing the flexibility.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1169
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1170
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1171 .H2 "Trash Folder
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1172 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1173 Similar to the situation for drafts is the situation for removed messages.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1174 Historically, a message was deleted by renaming. A specific
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1175 \fIbackup prefix\fP, often comma (\c
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1176 .Fn , )
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1177 or hash (\c
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1178 .Fn # ),
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1179 being prepended to the file name. Thus, MH wouldn't recognize the file
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1180 as a message anymore, as only files whose name consists of digits only
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1181 are treated as messages. The removed messages remained as files in the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1182 same directory and needed some maintenance job to truly delete them after
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1183 some grace time. Usually, by running a command similar to
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1184 .DS
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1185 find /home/user/Mail \-ctime +7 \-name ',*' | xargs rm
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1186 .DE
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1187 in a cron job. Within the grace time interval
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1188 the original message could be restored by stripping the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1189 the backup prefix from the file name. If however, the last message of
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1190 a folder is been removed \(en say message
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1191 .Fn 6
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1192 becomes file
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1193 .Fn ,6
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1194 \(en and a new message enters the same folder, thus the same
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1195 numbered being given again \(en in our case
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1196 .Fn 6
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1197 \(en, if that one
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1198 is removed too, then the backup of the former message gets overwritten.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1199 Thus, the ability to restore removed messages does not only depend on
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1200 the ``sweeping cron job'' but also on the removing of further messages.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1201 This is undesirable, because the real mechanism is hidden from the user
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1202 and the consequences of further removals are not always obvious.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1203 Further more, the backup files are scattered within the whole mail
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1204 storage, instead of being collected at one place.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1205 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1206 To improve the situation, the profile entry
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1207 .Pe rmmproc
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1208 (previously named
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1209 .Pe Delete-Prog )
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1210 was introduced, very early.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1211 It could be set to any command, which would care for the mail removal
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1212 instead of taking the default action, described above.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1213 Refiling the to-be-removed files to some garbage folder was a common
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1214 example. Nmh's man page
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1215 .Mp rmm(1)
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1216 proposes
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1217 .Cl "refile +d
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1218 to move messages to the garbage folder and
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1219 .Cl "rm `mhpath +d all`
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1220 the empty the garbage folder.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1221 Managing the message removal this way is a sane approach. It keeps
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1222 the removed messages in one place, makes it easy to remove the backup
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1223 files, and, most important, enables the user to use the tools of MH
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1224 itself to operate on the removed messages. One can
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1225 .Pn scan
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1226 them,
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1227 .Pn show
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1228 them, and restore them with
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1229 .Pn refile .
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1230 There's no more
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1231 need to use
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1232 .Pn mhpath
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1233 to switch over from MH tools to Unix tools \(en MH can do it all itself.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1234 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1235 This approach matches perfect with the concepts of MH, thus making
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1236 it powerful. Hence, I made it the default. And even more, I also
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1237 removed the old backup prefix approach, as it is clearly less powerful.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1238 Keeping unused alternative in the code is a bad choice as they likely
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1239 gather bugs, by not being constantly tested. Also, the increased code
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1240 size and more conditions crease the maintenance costs. By strictly
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1241 converting to the trash folder approach, I simplified the code base.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1242 .Pn rmm
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1243 calls
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1244 .Pn refile
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1245 internally to move the to-be-removed
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1246 message to the trash folder (\c
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1247 .Fn +trash
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1248 by default). Messages
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1249 there can be operated on like on any other message in the storage.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1250 The sweep clean, one can use
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1251 .Cl "rmm \-unlink +trash a" ,
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1252 where the
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1253 .Sw \-unlink
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1254 switch causes the files to be truly unliked instead
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1255 of moved to the trash folder.
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1256
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1257
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1258 .H2 "Path Notations
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1259 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1260 foo
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1261
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1262
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1263 .H2 "MIME Integration
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1264 .P
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1265 user-visible access to whole messages and MIME parts are inherently
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1266 different
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1267
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1268
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1269 .H2 "Of One Cast
814c33b96d89 Restructured the content in ch03.
markus schnalke <meillo@marmaro.de>
parents: 51
diff changeset
1270 .P