]> diplodocus.org Git - nmh/blob - DIFFERENCES
Just reworded the bit about '%s' being safe not to quote (it's only safe not to
[nmh] / DIFFERENCES
1 [NOTE: This file is out-of-date. Updating it every time new features are added
2 to nmh forevermore is a pain. Perhaps we should limit it to
3 documentation of _incompatibilities_ with MH (which should be rare).]
4
5 The following are the differences between nmh and MH-6.8.3. UCI has
6 since released MH-6.8.4. Most of the new features it adds have
7 also been added to nmh, but those differences are not listed here.
8 There are a few new features in MH-6.8.4 that are missing from nmh,
9 but they are primarily undocumented in MH-6.8.4 (and no one has
10 ever asked me for them).
11
12 GENERAL
13 -------
14 *) nmh has been converted to autoconf (configure) and should be
15 more portable and easier to install than MH. In particular, nmh
16 will now compile on Linux.
17 *) All of MH's Makefiles have been rewritten for nmh. You can now
18 use GNU make without any problems. Also, if your make supports
19 the VPATH variable (such as GNU make), you can now compile in a
20 different directory from the one containing the source code.
21 *) The source code for nmh has been substantially cleaned up.
22 It now requires an ANSI C compiler (gcc is fine) to compile.
23 *) A new option `-version' has been added to all the commands.
24 *) The POP server (popd) has been removed from the distribution.
25 But the client-side support for POP and KPOP is still present.
26 Also nmh doesn't currently support some of the alternate forms of
27 POP such as APOP or RPOP that are contained in MH (although they
28 could easily be resurrected, if necessary).
29 *) The support for MH-style bulletin boards has been removed
30 (NNTP makes this obsolete anyway).
31 *) Currently nmh doesn't support using shared libraries for libmh.
32 This may return in the future, but is not a high priority, since
33 the nmh commands are not that large, and disk space gets cheaper
34 every day.
35 *) Almost all of the commands in nmh have been modified to accept
36 an arbitrary number of command line arguments (most MH commands
37 will not accept more than 1000 arguments on the command line).
38 *) nmh should be more secure than MH. Hundreds of buffer overflow
39 problems have been fixed in the source code. Of course, I still
40 don't make any guarantees.
41
42 DOCUMENTATION
43 -------------
44 *) Many of the man pages have been cleaned up or clarified.
45 *) The mhook man page has been split into separate man pages for
46 rcvtty, rcvdist, and rcvpack.
47 *) Added new man page `mh-draft' which discusses the nmh draft
48 folder facility.
49 *) The various `procs' (rmmproc, moreproc, showmimeproc, etc...)
50 are now documented in the "mh-profile" man page. Many of these
51 were previously undocumented.
52
53 FORMATTING
54 ----------
55 *) Added a new formatting string escape %(decode) to decode and
56 display RFC-2047 encoded header fields.
57
58 SEQUENCES
59 ---------
60 *) The is no longer a limitation on the length of lines in the file
61 containing your public sequences (.mh_sequences). That should be
62 the end of the error message ".mh_sequences is poorly formatted".
63
64 ANNO
65 ----
66 *) The switch -inplace is now on by default.
67
68 CONFLICT
69 --------
70 *) Conflict now works on systems that define more
71 than 100 groups.
72
73 DIST
74 ----
75 *) The switch -inplace is now on by default.
76
77 FLIST
78 -----
79 *) A new command `flist' has been added to nmh, that will list the
80 folders that contain messages in a given sequence (such as the
81 unseen sequence). This was a much needed command in the MH suite
82 of programs.
83
84 FOLDER
85 ------
86 *) `folder -all' now dynamically allocates space for folder names and can
87 handle more than 300 folders.
88 *) `folder' now uses the standard Unix trick of looking at the number of
89 links to a directory entry, in order to avoid doing a stat(2) call
90 on messages in folders with no subfolders. This greatly increases
91 the speed of `folder -all -recurse' on large mail setups.
92 *) The switches `-header' and `-total' are more orthogonal. The command
93 `folder -all -noheader -nototal' now does the right thing.
94
95 FORW
96 ----
97 *) The switch -inplace is now on by default.
98 *) Added switches `-dashstuffing' and `-nodashstuffing', to determine
99 whether forwarded messages are RFC934 quotes (dashstuffed).
100 (This corresponds to the undocumented switch "nodashmunging"
101 in MH).
102
103 INC
104 ---
105 *) If compiled with RPATHS, a Delivery-Date header is now added to all
106 messages incorporated with `inc'.
107 *) Using the new format string escape %(decode), the scan lines for `inc'
108 will correctly decode RFC-2047 encoded headers.
109
110 MARK
111 ----
112 *) If neither of the switches -public/-nopublic are specified, then
113 existing sequences will retain their current public/private status,
114 instead of being changed to public.
115 *) The command "mark -list -sequence foo" will now indicate if the
116 sequence "foo" is a private sequence.
117
118 MHBUILD
119 -------
120 *) The functionality in `mhn' to create MIME messages, has been cleaned
121 up substantially, and moved to separate command `mhbuild'.
122 *) If given a file argument of "-", mhbuild will now accept the MIME
123 composition file on the standard input, and output the new MIME
124 message to the standard output. This makes it much easier to use
125 this functionality in shell scripts.
126 *) The switch -norfc934mode is now the default.
127
128 MHL
129 ---
130 *) There is a new variable "decode" which instructs `mhl' to decode
131 a component as a RFC-2047 encoded header field.
132
133 MHLIST
134 ------
135 *) The functionality of `mhn -list' has been moved to the new
136 command `mhlist'.
137
138 MHN
139 ---
140 *) mhn is now obsolete. It has been split into the commands mhbuild,
141 mhlist, mhshow, mhstore, and viamail. mhn still exists for
142 backward compatibility, but the new commands should be preferred.
143 *) Changed the profile entry automhnproc to automimeproc
144 (which has slightly different semantics).
145
146 MHPATH
147 ------
148 *) `mhpath all' will no longer abort if the folder has more than
149 998 messages.
150
151 MHSHOW
152 ------
153 *) The functionality of `mhn -show' has been moved to the new
154 command `mhshow'.
155 *) mhshow now correctly treats unknown subtypes of text as
156 text/plain, as specified by RFC-2046.
157 *) mhshow now correctly treats unknown subtypes of multipart as
158 multipart/mixed, as specified by RFC-2046.
159 *) You can now override the default method by which mhshow handles
160 subtypes of multipart that are known internally (mixed, alternate,
161 etc...). Previously the behavior on these types could not be
162 changed.
163
164 MHSTORE
165 -------
166 *) The functionality of `mhn -store' has been moved to the new
167 command `mhstore'.
168 *) mhstore will now correctly identify a formatting string of "-"
169 and send the content to stdout.
170
171 PACKF
172 -----
173 *) When packing a folder, the default format is now `mbox' format, rather
174 than `mmdf' format. The options -mbox and -mmdf have been added to
175 `packf' so you can choose the desired format.
176
177 PACKMBOX
178 --------
179 *) The script packmbox has been removed from the nmh distribution, since
180 its functionality has been added to the command packf.
181
182 PICK
183 ----
184 *) If neither of the switches -public/-nopublic are specified, then
185 existing sequences will retain their current public/private status,
186 instead of being changed to public.
187
188 RCVPACK
189 -------
190 *) The default format for `rcvpack' is now `mbox' format, rather than
191 `mmdf' format. The options -mbox and -mmdf have been added to
192 `rcvpack' so you can choose the desired format.
193 *) Rcvpack no longer adds the field "Delivery-Date", as that is added
194 by `slocal'.
195
196 RCVSTORE
197 --------
198 *) Added new switches -unseen/-nounseen to control whether new messages
199 are added to the Unseen-Sequence.
200
201 RCVTTY
202 ------
203 *) The option `-width' has been added.
204
205 REFILE
206 ------
207 *) If an conflict occurs when using the `-preserve' switch,
208 then refile will search for and use the next available
209 message number above the one you wish to preserve, rather
210 than aborting with an error.
211 *) Added new options `-unlink' and `-nounlink' which specify
212 that that messages "removed" from the source folder should
213 just be unlinked, rather than moved to name with prefix.
214
215 REPL
216 ----
217 *) Added new options `-format' and `-noformat'. The switch `-format'
218 will filter the message to which you are replying with a standard
219 message filter "mhl.reply" which is included in the distribution.
220 The switch `-noformat' will negate `-format' and `-filter', so that
221 the message to which you are replying is not included in the draft.
222 *) Added new options `-group' and `-nogroup'. These switches direct
223 repl as to whether or not this is a group reply. A group reply uses
224 a different forms (components) file (default is replgroupcomps).
225 *) The standard forms files "replcomps" and "replgroupcomps" now have
226 support for the "Mail-Reply-To:" and "Mail-Followup-To:" header fields.
227 *) The switch -inplace is now on by default.
228
229 RMM
230 ---
231 *) Added new options `-unlink' and `-nounlink' which specify
232 that that "removed" messages should just be unlinked, rather
233 than moved to name with prefix.
234
235 SCAN
236 ----
237 *) Using the new format string escape %(decode), the scan lines created
238 by `scan' will correctly decode RFC-2047 encoded headers.
239
240 SHOW/NEXT/PREV
241 --------------
242 *) Added new options `-checkmime' and `-nocheckmime' which allow you
243 to enable and disable the test for MIME messages.
244 *) The "mhnproc" profile entry has been changed to "showmimeproc".
245 *) Added `-showmimeproc' switch to specify the showmimeproc at the
246 command line.
247 *) The default "showproc" has been changed to `mhl'.
248 *) The default "showmimeproc" is now `mhshow'.
249 *) `show' is better at handling alternate character sets. It knows that
250 US-ASCII is a subset of any ISO-8859-X character set.
251
252 SLOCAL
253 ------
254 *) Added new action `folder' or `+' to slocal, which adds new message
255 to a nmh folder. Currently, this is handled by piping the new
256 message to rcvstore, although this may change in the future.
257 *) The action `mbox' now delivers to a file in mbox format. Previously
258 it delivered to a file in mmdf format.
259 *) Added new action `mmdf' to deliver to a file in mmdf format.
260 *) Added new options -[no]suppressdup to slocal to check for duplicate
261 messages. The code for suppression of duplicate messages (MH config
262 was MSGID) is now always built into slocal.
263 *) Improved the debugging of slocal ".maildelivery" files. It will now
264 warn when an entry in this file is skipped because there are not
265 enough fields. Also the debugging output of slocal has been cleaned up,
266 so that it is much easier to read.
267 *) Slocal now adds the Delivery-Date header to all delivered messages.
268 Previously it only added them to messages delivered to a file.
269
270 VIAMAIL
271 -------
272 *) The functionality of this new command, was formerly part of
273 `mhn' as the (undocumented) option `mhn -viamail'.
274
275 WHATNOW
276 -------
277 *) Added new action "mime" to whatnow, which causes whatnow to call
278 program specified by "buildmimeproc" profile entry, to process
279 MIME composition files (default is mhbuild).
280 *) Added new action "delete" to whatnow, which deletes draft file
281 and exits.