|
|
1.1 root 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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.