Added sources to historical documents downloaded from
[mmh] / docs / historical / mh5 / text.tex
1 % begin text
2 \banner
3 \section{Acknowledgements}
4 The \MH/ system described herein is based on the original Rand \MH/ system.
5 It has been extensively developed (perhaps too much so) by Marshall Rose and
6 John Romine at the University of California, Irvine.
7 Einar Stefferud, Jerry Sweet, and Terry Domae provided numerous suggestions
8 to improve the UCI version of \MH/.
9
10 \section{Disclaimer}
11 The Regents of the University of California wish to make it known that:
12 \bigquote
13 Although each program has been tested by its contributor,
14 no warranty, express or implied,
15 is made by the contributor or the University of California,
16 as to the accuracy and functioning of the program
17 and related program material,
18 nor shall the fact of distribution constitute any such warranty,
19 and no responsibility is assumed by the contributor
20 or the University of California in connection herewith.
21 \endbigquote
22
23 \section{Conventions}
24 In this document,
25 certain \TeX -formatting conventions are adhered to:
26 \smallskip
27 {\advance\leftskip by\parindent
28 \item{1.} The names of \unix/ commands, such as \pgm{comp},
29 are presented in {\it text italics}.
30 \item{2.} Arguments to programs, such as \arg{msgs},
31 are presented in {\tt typewriter style} and delimited by single-quotes.
32 \item{3.} \unix/ pathnames and envariables,
33 such as \file{/usr/uci/} and \file{\$SIGNATURE},
34 are presented in {\sl slanted roman}.
35 \item{4.} Text presenting an example, such as
36 \example comp\ -editor\ zz\endexample
37 is presented in {\tt typewriter style}.
38 \smallskip}
39
40 \bop\section{General Changes}
41 The author is pleased to announce that there are actually very few
42 user-visible changes to \mh5 from the \mh4 distribution.
43 The majority of \mh5 development was in the form of bug fixes and slight
44 generalizations.
45 In addition, \mh5 is somewhat faster than \mh4:
46 all programs have been speeded-up slightly,
47 a few, such as \pgm{msh}, have been speeded-up signficantly.
48
49 \subsection{Library Paths}
50 When a filter or form file argument is given to an \MH/ program,
51 and the name specified is not absolute (doesn't start with a \file{/\/}),
52 then the \MH/ program will first check in the user's \MH/ directory.
53 If the file is not present,
54 then program will consult the standard \MH/ library for the file.
55 This convention allows the PostMaster to make available system-wide
56 templates and skeletons.
57
58 \subsection{MH Directory}
59 If the \MH/ directory of a user doesn't exist,
60 then \MH/ will query the user if it should be created.
61 This is primarily useful when copying a \profile/ from one host to another,
62 or when the site administrator creates a \profile/ for a user when creating
63 the associated login.
64
65 \subsection{Documentation}
66 Two new documents have been prepared for the \mh5 distribution:
67 {\sl The Rand MH Message Handling System: Tutorial},
68 which is cited as \cite{MH.TUT};
69 and,
70 {\sl The Rand MH Message Handling System: The UCI BBoards Facility},
71 which is cited as \cite{MH.BB}.
72 The former is a useful tutorial for novice users of \MH/.
73 The latter describes BBoard handling and \MH/.
74
75 \section{Draft Handling}
76 This section discusses how the handling of drafts has been changed in \mh5.
77
78 The most important change is that the {\it draft-folder} notation
79 and the {\it push} option at \whatnow/ level have been explicitly made
80 visible in the \MH/ system.
81 There's a new profile entry called \eg{Draft-Folder} which defines the
82 default draft-folder for the \MH/ user.
83 By using this entry, such as \example Draft-Folder:\ +drafts\endexample
84 the \MH/ user needn't add \switch{draftfolder\ drafts} to the entries
85 for \pgm{comp}, \pgm{dist}, \pgm{forw}, and \pgm{repl} in the user's
86 \profile/ file.
87
88 \subsection{What Happens if the Draft Exists}
89 A new option has been added to \pgm{comp}, \pgm{dist}, \pgm{forw}, and
90 \pgm{repl} when the draft already exists: \eg{refile\ +folder}.
91 This allows you to \pgm{refile} the draft into another folder and then get a
92 fresh draft.
93
94 \subsection{Editing Environment}
95 In previous versions of \MH/,
96 when \pgm{comp}, \pgm{dist}, \pgm{forw}, and \pgm{repl} allowed the user to
97 edit the draft,
98 the \MH/ user's current working directory was somewhere inside of the user's
99 \MH/ directory.
100 This often lead to confusing results.
101 In \mh5,
102 when the user edits a draft,
103 the current working directory is unchanged.
104 Furthermore, two envariables are defined during the editing session for
105 \pgm{dist} and \pgm{forw}:
106 \file{\$editalt},
107 which is the name of the message (\unix/ file) being distributed or replied-to;
108 and,
109 \file{\$mhfolder},
110 which is the name of the folder (\unix/ directory) containing the message
111 being distributed or replied-to.
112
113 \subsection{Rapid Composition}
114 The \pgm{prompter} command has two new switches \switch{rapid} and
115 \switch{norapid}.
116 If the \switch{rapid} option is given then \pgm{repl} won't display an
117 existing body of the draft being edited.
118 This is useful for using \pgm{forw} with a slow terminal.
119
120 \subsection{Ultra Rapid Composition}
121 The \pgm{comp}, \pgm{dist}, \pgm{forw}, and \pgm{repl} commands have a new
122 option, \switch{noedit}.
123 If \switch{noedit} is given,
124 then the initial edit is supressed.
125 This is useful for various canned applications
126 (and perhaps more graceful than \switch{-editor /bin/true\/}).
127
128 \subsection{Digest Generation}
129 The \pgm{forw} command has the beginnings of a digest-composition facility,
130 with the \switch{digest\ list}, \switch{issue\ number},
131 and \switch{volume\ number} switches.
132
133 If \pgm{forw} is given the argument \eg{list} to the \switch{digest} switch,
134 and the \switch{issue\ number} switch is not given,
135 then \pgm{forw} looks for a profile entry called
136 \eg{digest-issue-list:} and increments its value to use as the issue
137 number.
138 Similarly,
139 if the \switch{volume\ number} switch is not given,
140 then \pgm{forw} looks for \eg{digest-volume-list:}
141 (but does not increment its value) to use as the volume number.
142
143 Having calculated the name of the digest and the volume and issue numbers,
144 \pgm{forw} will look for a profile entry called \eg{sedproc:}
145 (which defaults to \pgm{/bin/sed\/})and filter the components file
146 (as specified with the \switch{form\ formfile} switch)
147 with the following definitions:
148 \eg{@(digest)}, \eg{@(issue)}, \eg{@(volume)}, and \eg{@(date)}.
149
150 \tagdiagram{1}{Sample skeleton for digest composition}{digestcomps}
151 A good components file to use, (which might be called \file{digestcomps\/}) is
152 shown in Figure~\digestcomps.
153
154 \pgm{Forw} will now compose the draft,
155 using the standard digest encapsulation algorithm
156 (even putting a \eg{End of list Digest} trailer in the draft).
157 Once the draft is composed by \pgm{forw},
158 it writes out the volume and issue profile entries for the digest,
159 and then invokes the editor.
160
161 \tagdiagram{2}{Sample template for digest messages}{mhldigest}
162 Naturally, when composing the draft,
163 the \pgm{forw} program will honor the\hbreak
164 \switch{filter\ filterfile} switch,
165 which is given to \pgm{mhl} to filter each message being forwarded prior to
166 encapsulation in the draft.
167 A good filter file to use, (which might be called \file{mhl.digest\/})
168 is shown in Figure~\mhldigest.
169
170 \subsection{Replies}
171 The \pgm{repl} command has two new switches \switch{query} and
172 \switch{noquery}.
173 If the \switch{query} option is given then for each address that would go in
174 the \eg{cc:} field of the reply,
175 \pgm{repl} asks the user if the address should be included.
176 This is sometimes useful for replying to mail sent to a large number of people.
177 (Obviously, one could simply edit the draft produced by \pgm{repl},
178 but the \switch{query} option is useful if \pgm{prompter} is the editor used
179 by \pgm{repl} and one doesn't want to invoke a second editor.)
180
181 Previous versions of \pgm{repl} would terminate if a \eg{From:} or
182 \eg{Sender:} field was not found or could not be parsed.
183 The \pgm{repl} program in \mh5 will continue to compose the reply draft,
184 after advising you of this anomaly.
185
186 \subsection{Blind Carbon Copies}
187 After much experimentation, \MH/ has finally stabilized on the format of
188 blind-carbon-copies.
189 As in \mh4, when \pgm{post} generates a draft for blind recipients,
190 a new draft is composed with a minimal set of headers.
191 In \mh5 however, the \eg{BCC-Disclaimer:} field is no longer used.
192 Instead, the draft for the blind recipients contains the original message as a
193 forwarded message.
194 This more clearly identifies a blind-carbon-copy to the blind recipient.
195
196 \subsection{File Carbon Copies}
197 A message draft can now have more than one folder listed in a \eg{Fcc:} field.
198 Each folder should be separated by a comma, just like the addresses in a
199 \eg{cc:} field.
200 In addition, the folders listed in a \eg{Fcc:} field may use the
201 relative-folder addressing notation
202 (though this latter activity is not recommended).
203
204 \subsection{Refiling the Draft}
205 At \whatnow/ level, there is a new option, \eg{refile}.
206 This options takes any arguments acceptable to the \pgm{refile} program,
207 and \pgm{refile\/}'s the message draft into the named folder(s).
208
209 \subsection{Annotations}
210 If the \switch{annotate} switch is given to \pgm{dist}, \pgm{forw}, or
211 \pgm{repl}, and the message is (re)moved by the user prior to the successful
212 posting of the draft, the \MH/ program will not complain as before.
213 Hence, users of the \eg{push} option at \whatnow/ level need not worry about
214 asynchronous error messages.
215
216 \section{Other Changes}
217 This last section describes the other more program-specific changes made to
218 \MH/.
219
220 \subsection{Bursting}
221 The bursting mechanism in \MH/ has been made sufficiently general to allow
222 \pgm{burst} to work on forwarded messages and blind-carbon-copies in addition
223 to digests.
224 Although \pgm{burst} can not always successfully decapsulate messages
225 encapsulated by sites not running \MH/,
226 it handles forwarded messages and blind-carbon-copies,
227 as constructed by \pgm{forw} and \pgm{send}, easily.
228
229 In addition, the \pgm{send} program has two new switches,
230 \switch{forward}, and \switch{noforward}.
231 If the \switch{forward} option is given,
232 then if a \pgm{send} which has been \pgm{push\/}'d in the background fails,
233 in addition to containing the reasons for the failure,
234 the failure notice contains the draft as a forwarded message.
235 This means one can simply \pgm{burst} the failure notice to get the draft
236 back,
237 instead of hunting around for it.
238
239 \subsection{Incorporation of Mail}
240 There's a new profile entry called \eg{MailDrop} which can be used to define
241 the default maildrop that \pgm{inc} should use.
242 In addition, if the envariable \file{\$MAILDROP} is defined,
243 then \pgm{inc} will use its value as the default maildrop.
244
245 The \pgm{inc} program also has a new option:
246 \switch{truncate} and \switch{notruncate},
247 which indicates if the maildrop should be truncated.
248 By default, \switch{truncate} is used defualt maildrop is used,
249 otherwise \switch{notruncate} is used.
250
251 \subsection{Clearing the Display}
252 The \switch{ff} and \switch{noff} switches have been removed from the
253 \pgm{scan} and \pgm{mhl} programs.
254 Instead, the \pgm{scan} has been given two switches,
255 \switch{clear} and \switch{noclear}
256 (\pgm{mhl} already has these switches).
257 The action of the \switch{clear} option is simple:
258 if the standard output to the \MH/ program is a terminal,
259 then the program will output the correct ``escape sequence'' to clear the
260 terminal's screen;
261 if the standard output is not a terminal,
262 then the program will output a formfeed.
263
264 In addition,
265 both \pgm{scan} and \pgm{mhl} consult the \file{\$TERM} envariable to
266 determine such things as the length and width of your terminal.
267 The \pgm{scan} program uses this to determine how long each line of the scan
268 listing should be.
269 The \pgm{mhl} program uses this to determine the default length and width
270 of your terminal (instead of the $40$ by $80\/$),
271 prior to reading the template or consulting command line options.
272
273 \subsection{Folder Handling}
274 If the \pgm{folder} command is given the name of a folder that does not exist,
275 \pgm{folder} will query the user if the folder should be created.
276 This is useful for creating a folder that the \MH/ user intends to access
277 later.
278
279 In previous releases of \MH/,
280 the \pgm{rmf} program would consider a folder writable if it was writable by
281 the user.
282 Since \pgm{rmf} ultimately removes the folder itself,
283 \pgm{rmf} considers a folder writable if the folder and its parent are
284 writable by the user.
285 If not, the folder is treated as a read-only folder by \pgm{rmf}.
286
287 \subsection{MailDrops}
288 The name of the \pgm{pack} program has been changed to \pgm{packf}.
289 The author didn't want to do this.
290 Some people don't know when to leave well enough alone.
291
292 \subsection{Refiling}
293 The \pgm{refile} program now has a \switch{draft} switch saying to file the
294 current draft.
295
296 \subsection{RcvMail Support}
297 In addition to the standard \pgm{rcvpack} and \pgm{rcvtty} receive mail hooks,
298 and the \pgm{rcvtrip} shell script,
299 there's a new rcvmail hook called \pgm{rcvdist}.
300 The \pgm{rcvdist} hook allows a user of \MH/ to have his/her mail forwarded
301 without the intervention of the PostMaster.
302 (By the way, the \pgm{rcvpack} hook used to be called \pgm{rcvcron\/}.)
303
304 \subsection{Reading BBoards}
305 The \pgm{msh} program (which used to be called \pgm{bbr\/})
306 implements an \MH/ shell.
307 In addition to the commands that the old \pgm{bbr} program had,
308 \pgm{msh} also has the
309 \pgm{inc}, \pgm{mhmail}, \pgm{pack}, \pgm{rmm} and \pgm{sortm} commands.
310
311 In addition, \pgm{msh} uses a ``maildrop mapping'' mechanism to
312 significantly speed-up its start-up time compared to the old \pgm{bbr}.
313 The \pgm{pack} program supports this mechanism as well,
314 so \pgm{msh} starts quickly on ordinary \pgm{pack\/}'d files as well.
315
316 Finally, \pgm{mhl} is now built-in to \pgm{msh},
317 so with a \eg{showproc} of \pgm{mhl},
318 the \pgm{msh} user gets speedy response in listing messages.