From 1a8f78d12723e301661fd469f39fb6a62bb10954 Mon Sep 17 00:00:00 2001 From: Doug Morris Date: Sat, 15 Apr 2000 04:28:27 +0000 Subject: [PATCH] Moved most of the documentation into a new "docs" subdirectory. Added a MAILING-LISTS file talking about the lists and archives, and updated the FAQ to refer to it. --- README | 79 +- docs/ChangeLog | 2204 ++++++++++++++++++++++++++++++++++++++++++++++++ docs/MACHINES | 123 +++ docs/MAILING-LISTS | 35 + docs/README.about | 58 ++ docs/README.developers | 172 ++++ 6 files changed, 2624 insertions(+), 47 deletions(-) create mode 100644 docs/ChangeLog create mode 100644 docs/MACHINES create mode 100644 docs/MAILING-LISTS create mode 100644 docs/README.about create mode 100644 docs/README.developers diff --git a/README b/README index a4e21cd..e948d76 100644 --- a/README +++ b/README @@ -1,52 +1,37 @@ # -# README -- I love README files. -# # $Id$ # ------------ -what is it? ------------ -nmh (new MH) is an electronic mail handling system. It was -originally based on the package MH-6.8.3, and is intended to be -a (mostly) compatible drop-in replacement for MH. - -Although development of nmh is ongoing, it appears to be generally -stable and is in current use. But it is possible that we may -break things as changes are made. - --------------- -installing nmh --------------- -To install nmh, check the INSTALL and MACHINES files. If you have -previously used MH, check the file DIFFERENCES for a list of the -differences between nmh and MH. - --------------------------------- -ftp and web sites, mailing lists --------------------------------- -To find out about the mailing lists, ftp sites, and web page -for nmh, check the FAQ included in this distribution. - ---------------- -nmh maintenance ---------------- -nmh is currently being developed and maintained by a loosely organized -group of volunteers. Please send bug reports and suggestions to the -nmh development mailing list at nmh-workers@mhost.com. - ----------------- -acknowledgments ----------------- -The original MH system was developed by the RAND Corporation and the -University of California. - -nmh was started by Richard Coleman (coleman@math.gatech.edu) after -development on MH mostly stopped. He did the original autoconfiscation -and most of the other work up until version 1.0. - -nmh uses (v)snprintf code from the Apache web server, so we need to -make the following acknowlegement: +Installing +---------- +Please read the INSTALL file. + +Copying +------- +nmh uses a BSD-style license, which should be in the top-level of the +distribution in a file named COPYRIGHT. + +Developers +---------- +Information of interest to nmh developers can be found in +the README.developers file in the docs subdirectory of this +distribution. If you're hacking on the code, you should also +definately subscribe to the nmh-workers mailing list. To do so, send +mail to nmh-workers-request@mhost.com with the subject "subscribe". If +you're interested in working on nmh, but aren't sure what to do, see +the TODO file in the docs subdirectory. There's plenty of work there. + +Working with your shell +----------------------- +The files COMPLETION-TCSH and COMPLETION-ZSH in the docs subdirectory +give cookbook examples of how to use the enhanced features of +these shells with nmh. There is also a section in Jerry Peek's book +covering nmh/MH and working with the shell. The section is available +online here: http://www.ics.uci.edu/~mh/book/mh/mhanthsh.htm + +For More information +-------------------- +There is more information, including a FAQ and a bit of historical +information in the docs subdirectory. There are also links to further +documentation on the nmh website located at http://www.mhost.com/nmh . -This product includes software developed by the Apache Group -for use in the Apache HTTP server project (http://www.apache.org/). diff --git a/docs/ChangeLog b/docs/ChangeLog new file mode 100644 index 0000000..7ec710c --- /dev/null +++ b/docs/ChangeLog @@ -0,0 +1,2204 @@ +Sat Apr 15 10:33:00 2000 Doug Morris + + * moved the documentation into a "docs" subdirectory. The + top-level directory was becoming messy. I also created another + file MAILING-LISTS describing the various nmh lists and the + archival system, and updated the FAQ to refer to it. I also + created a new README in the top level that is basically a list + of pointers to the various documentation. The old README I've + moved to docs/README.history, since that seemed like the right + thing to call it. + +Fri Apr 14 23:10:44 2000 Dan Harkless + + * Upped the version number to 1.0.4+dev until the next nmh release. + + * Added a "releasing nmh" section to README.developers, while the + process was fresh in my mind. + +Fri Apr 14 18:21:34 2000 Dan Harkless + + * Added new files README.developers, ChangeLog_MH-3_to_MH-6.6, and + ChangeLog_MH-6.7.0_to_MH-6.8.4.html to DIST target in Makefile.in. + + * Released nmh-1.0.4. + +Tue Apr 11 21:37:03 2000 Dan Harkless + + * Applied Brian Campbell 's mhn.defaults.sh + patch: + + It appears that there shouldn't be quotes around the %s in the + iso-8859-1 charset entry; xterm passes the remaining arguments + to the program, quoting them means that xterm thinks they're + part of the program's name. + + This %s isn't the same as the "Insert content subtype" one from + mhshow-show-* -- it doesn't come from MIME headers and is safe not + to quote. + +Sun Apr 09 13:03:59 2000 Doug Morris + + * added check in fmt_compile() to handle a single-character + format string. fmt_compile() depends on having an array of + format characters with an empty item at the end. A + single-character format would cause programs using this + function to segfault because the algorithm used to decide on + the length of the array mistakenly created a single-item array + when the format string was one character. This eventually + caused problems when the program attempted to test item+1 + in the array. + +Thu Apr 06 21:53:50 2000 Dan Harkless + + * Richard Coleman threw out a lot of old MH-specific files in nmh. + Much of the stuff, indeed, is not worth saving, but there are + nuggets that are very worthwhile, and should probably be added + back in. Most important, IMHO, are the MH change logs, as they + can help answer questions like "Why is this code like this?" or + "How long has this been broken?" or "What was this ever used for?" + + I've added a new file to the nmh tree called + ChangeLog_MH-3_to_MH-6.6. It's cobbled together from the + mh-6.8.4/papers/mh*/MHCHANGES files. I've re-ordered the entries + to go from newest at the top to oldest at the bottom to match the + ChangeLog convention. Unfortunately there are no change logs for + versions of MH prior to 3 in the MH tar files available at + . Also, it appears to me that there + are MH-6.6 changes that aren't documented in the logs. + + I've also added ChangeLog_MH-6.7.0_to_MH-6.8.4.html. This is + based on mh-6.8.4/papers/changes/mh-changes.ms. The nroff format + and its "catman"-type output are a pain to deal with, but I was + loath to throw away the formatting, so I converted the file to + HTML. The only actual markup in the body are the "" and "" + tags, and "<" and ">" instead of '<' and '>', so it's quite + doable to view the file in plain ASCII mode as well. Note that + some of the changes this file documents as having been made in + MH-6.8.4 may not be present in nmh -- Richard started with 6.8.3 + and later put in certain 6.8.4 stuff. + +Wed Apr 05 21:09:28 2000 Dan Harkless + + * Applied Eric Schnoebelen 's mhshowsbr.c patch + fixing apparent bugs in Dan Winship's new security quoting code: + + Since upgrading, I've been getting the following errors + while attempting to process some MIME messages: + + (1) Syntax error: Unterminated quoted string + exit 2 + + and: + + (2) line 1/10 (END)Segmentation fault (core dumped) + + (2) appears to be due to the testing of an unset pointer in + mhshowsbr.c:show_multi_aux(). (1) appears to be caused by + mis-quoting a filename being handed to the shell in + mhshowsbr.c:show_content_aux(). + + Resolving the pointer reference issue in + mhshowsbr.c:show_multi_aux() turned up a similar mis-quoting + problem in the routine. + +Tue Mar 28 16:17:39 2000 Doug Morris + + * Applied Todd.Miller@courtesan.com's patch to dropsbr.c to + prevent core dumping on packf. Here's the note from his message: + + Since sizeof(buffer) == sizeof(tmpbuffer) packf will dump + core on a file w/o a From line with a line >= BUFSIZ. + I noticed this because I had a junk file in my mail + spool somehow. + +Fri Mar 17 11:59:33 2000 Dan Harkless + + * wesley.craig@umich.edu did not document his previous KPOP patch, + so I did so, and asked him to check what I wrote. Unfortunately + he didn't notice my misunderstanding of his patch. I wrote that + if you #define POPSERVICE "kpop", inc and msgchk will use KPOP + exclusively, but if you leave it as "pop3", you can use Wesley's + new -kpop switch on a given invocation. Instead, however, -kpop + turned out to be necessary on every invocation, and a KPOP user + complained. Applied Wesley's new patch, which makes things work + like I thought his original patch did. After that, did one more + clarifying pass to the documentation in inc.man and msgchk.man. + +Wed Mar 15 18:45:45 2000 Dan Harkless + + * When I fixed the long-standing makedir() bugs in January, I had + the code call strtoul(..., 0), which I believed to be safe as all + modes specified as ASCII constants in the nmh code started with a + leading zero (signifying octal), which I did as it would work if + internal constants were ever changed to hex. Unfortunately I was + unaware of the "Folder-Protect:" .mh_profile entry, which + mh-profile.man documents as an octal-only constant, with no + leading zero required. I've changed the strtoul() call to an + atooi() call and removed the misleading leading zeroes on the + ASCII octal constants in the code and man pages. Also changed the + "Folder-Protect:" example in the man page to something more + interesting than a duplication of the default. + + * When I added my --enable-masquerade option, you'll note that I + didn't make it --enable-nmh-masquerade. I find the --enable-nmh-* + options too wordy and I'm not sure why Richard went that route. + I've renamed them to just --enable-*, but the old versions will + still work as well (they just aren't advertised). + + * Added a line to the "nmh configuration" output saying whether + POP is enabled. + + * Added a new README.developers file. From the file: + + This file is intended to provide a few tips for anyone doing + development on nmh. Developers who learn things "the hard + way" about the nmh codebase (as opposed to local info best + encoded in a comment) are encouraged to share their wisdom + here. + + Currently the topics are "autoconf files" and "directory structure". + +Tue Mar 14 12:41:48 2000 Dan Harkless + + * Applied, after some finessing, + Simon Burge 's --with-smtpservers patch: + + Here's a patch that allows you to add + + --with-smtpservers= + + to the ./configure command line to set the "servers: " line in + etc/mts.conf. Around here, we use "mailhost" so that all + machines in the current domain just talk to a central machine + and nothing else runs an MTA. Now, I can use + + --with-smtpservers=mailhost + + instead of having to remember to fix this by hand (and often + forgetting to do so!). + + * Inspired by Simon's patch, added an --enable-masquerade option + to configure. It will set the "masquerade:" line of mts.conf. + You may specify a subset of the three types of masquerading, like + --enable-masquerade="draft_from mmailid", or leave off explicit + arguments to enable all three types. + + * Alphabetized the --enable and --with options in configure.in and + INSTALL and added documentation of the two new options to the latter. + + * Added new dependency for mts.conf: Makefile. If this isn't + done, then when you reconfigure nmh with new values for + --enable-masquerade or --with-smtpservers, you'll fail to get an + updated copy of mts.conf. + + * Applied Simon Burge 's dtimep.lex patch: + + It seems that some MUA's didn't handle y2k very well - ELM + seems to be one of them, and Ultrix's DXmail (based on MH!). + I've got a few emails this month that look like: + + 575 Jan 00 Xxxxxx Xxxx 3603 ... + and + 22+ Jan 00 Xxx Xxxxx 1771 ... + + The first has "15 Jan 100" as the date and the second has + "19 Jan 00" as the date. The following works around this so + that scan, show, sortm, etc work ok. + + I put Simon's patch under the control of a new #define called + FIX_NON_Y2K_COMPLIANT_MUA_DATES. There's some commentary in + acconfig.h about when you might not want to #define it. + + * Created new dtimep.c-lexed with Simon's change using dtimep.lex + lexed on Solaris 2.6. Added missing dependency in + zotnet/tws/Makefile.in for dtimep.c: dtimep.c-lexed. + + * Added scan.MMDDYY and scan.YYYYMMDD format files. + +Mon Mar 13 21:32:00 2000 Dan Harkless + + * Applied Sullivan N. Beck 's mhshow-suffix patch: + + With the patch below, you can add lines like: + + mhshow-suffix-application/msword: .doc + mhshow-suffix-application/PostScript: .ps + + to the mhn.defaults file to append the given suffix to a + scratch file. This allows applications which require a + certain suffix to run properly. + + * Removed -force_html from lynx entry in mhn.defaults.sh (I + believe older versions of lynx lack that option) and added + "mhshow-suffix-text/html: .html". + + * Modified username_extension masquerading to only use the + extended address on generated [Resent-]From: lines and SMTP + envelope From:. With Neil's original implementation, nmh's global + idea of the username was changed, which would result in inc lying + and saying you had no new mail because it was looking for a + mailbox called, for instance, "dan-nmh" (where username was "dan" + and $USERNAME_EXTENSION was "-nmh"). + + * Applied Simon Burge 's dtime.c patch: + + There's a wrap-around problem that affects the implementation + of Zeller's congruence in dtime.c. This causes the day-of-week + calculations to fail for dates after Feb 29, 2000 (probably up + until some year far in the future). + +Mon Mar 06 12:20:20 2000 Dan Harkless + + * Applied Neil W Rickert 's msh.c patch: + + I finally tracked down the problem in msh that was causing + errors whenever I tried to examine a 'mmdf' style mailbox. + + It turns out that not enough memory was being allocated with + calloc(), causing memory pointers to be overwritten and + corrupted. + +Fri Mar 03 16:07:33 2000 Dan Harkless + + * Changed the new "plussed_user" option to mts.conf's + "masquerade:" to "username_extension" after getting feedback from + qmail users, who use '-' as a separator rather than '+'. Removed + checking of $USERPLUS variable. Now check $USERNAME_EXTENSION, + which needs to include the appropriate separator for your MTA + ('-', '+', or whatever) as its first character. + +Thu Mar 02 23:04:30 2000 Dan Harkless + + * Added a new "boolean" type to mh.h and TRUE and FALSE constants. + + * Added a note to DIFFERENCES stating that it's out-of-date + (Richard was the last one to update it) and that we should + consider only documenting incompatibilities with MH there. + + * Implemented (and documented) a third kind of username + masquerading: "plussed user" masquerading. This one was suggested + by Neil Rickert . It's based on sendmail's + "plussed user" feature, where mail sent to + will be + delivered to . When it's enabled, it's controlled by the + $USERPLUS environment variable. How is it enabled? Well, that + leads me to: + + * Renamed the "mmailid:" setting in mts.conf to "masquerade:", and + changed it so that rather than being a boolean, it can be set to + any combination of the three values "draft_from", "mmailid", and + "plussed_user". Thus it is now possible to enable the three types + of masquerading individually. + + * Fixed a bug with "mmailid" masquerading (dating back to MH?) + where if it was turned on, ','s would no longer be considered + GECOS field delimiters. + +Wed Mar 01 23:30:50 2000 Dan Harkless + + * Changed the GECOS-field '&' translation behavior to be + controlled by the BSD42 #define rather than GCOS_HACK, since it's + apparently always appropriate on OSes where BSD42 is #defined, and + never appropriate on any other OSes. Thanks to Kimmo Suominen for + responding to my "What is this code here for?" comment in mts.c + and explaining the feature. + +Mon Feb 28 21:50:29 2000 Dan Harkless + + * Upped the version number to 1.0.3+dev (ideally this should be + done by whoever makes a release tar file, immediately after doing + so). + + * Applied Paul Fox 's scansbr.c + patch, posted to comp.mail.mh, which he says prevents loss of mail + when inc'ing into a full filesystem. + + * Changed "echo > stamp-h.in" in Makefile.in to "date > stamp-h.in" + so that stamp-h.in will be different each time configure.in and + related files are changed, making it easier to check it in (which + is necessary to prevent unnecessary autoconf calls). + + * My declaration of initgroups() in slocal.c to eliminate the "no + prototype" warning wasn't portable (FreeBSD 3.[23] choked). Now + use AC_EGREP_HEADER to see where initgroups() is declared, if + anywhere. + +Sun Feb 20 12:17:15 2000 Ruud de Rooij + + * Fix security hole in mhshowsbr.c which allowed untrusted shell + code to be executed. + + * Released nmh 1.0.3. + +Thu Feb 10 10:54:36 2000 Dan Harkless + + * Oops. %-escapes on mhstore lines in mhn.defaults.sh should not + be surrounded by single quotes, as a shell is not spawned when + just saving files, and the filenames will end up with literal + quotes embedded in them. + +Fri Feb 04 12:29:12 2000 Dan Harkless + + * Whoever originally added the -help switch to all the commands + got too cute and had the option itself print out as "-(help)" in + the -help output. One theory is that they were making reference + to the fact that clearly you know about the -help option since + you're currently looking at its output. I think it's a bad idea + to overload the meaning of the parentheses, however -- they're + supposed to indicate what abbreviated prefix of the switch you're + allowed to specify. + + The other theory is that because you can say something like + "mhstore -" and get "mhstore: - ambiguous. It matches" followed + by the same list of switches you get with -help, they were saying + you can "sorta" abbreviate "-help" as "-". You don't get the + "Usage:" string, though, so it's not really the same thing. + +Thu Feb 03 17:52:01 2000 Dan Harkless + + * Applied wesley.craig@umich.edu's KPOP patches. According to him: + + The following patch fixes a problem with requesting a + service key for a machine that has multiple 'A' records. It + also makes "-kpop" a command line option, for users who + would like to use both "kpop" and "pop". + + Did no testing of the new features, as I don't have access to a + KPOP server. + + * Modified inc.man and msgchk.man to document Wesley's new -kpop. + + * Modified INSTALL and config.h.in to reflect the new -kpop feature. + +Fri Jan 28 17:39:24 2000 Dan Harkless + + * All %-escapes in mhn.defaults that actually expand to something + should be surrounded by single quotes. Added quotes to the ones + in mhn.defaults.sh that were missing them. + + * Added check for lynx to write mhshow-show-text/html line in + mhn.defaults.sh. + +Thu Jan 27 12:22:25 2000 Dan Harkless + + * makedir() had multiple bugs dating back to MH. An octal + constant was apparently being interpreted as decimal, resulting in + directories with no user read or execute permissions, making + nested directory creation fail. And there wasn't even an + _attempt_ to set desired permissions (e.g. from "Folder-Protect:" + in .mh_profile) on the outer directories of a nested directory. + + * A second `make install' would always fail because the check for + whether mh_profile.5 existed was written incorrectly. + +Wed Jan 26 02:22:00 2000 Dan Harkless + + * Added documentation on both types of masquerading to post's man + page. + +Tue Jan 25 22:58:12 2000 Dan Harkless + + * Doug's portability fix of my setgid inc autodetection had a + caching bug -- if you re-ran configure, uip/Makefile would be + corrupted, and installation would bomb out on OSes where inc needs + to be setgid. + + * Implemented a new kind of email address masquerading. Usually, + when a user writes a custom "From:" header in a draft, nmh uses it + rather than generating one. However, the user's true address is + used in the SMTP envelope "From:" and is revealed in the "Sender:" + header. Now, when mmailid is set to non-zero, the envelope + "From:" uses the address specified in the draft "From:" header, + and there is no "Sender:" header. This is useful when sending on + behalf of a remote POP3 account or when remote mail robots + incorrectly use the envelope "From:" in preference to the body + "From:". This processing has only been implemented for post, not + for the undocumented spost (which was already missing some "From:" + processing that post has). + +Mon Jan 24 22:26:06 2000 Dan Harkless + + * Got rid of the rest of the gcc -Wall warnings that I didn't have + time for on 1999-07-15 (and, it would seem, some new ones people + introduced since then). The primary ones were the warnings that + default prototypes were being used for [v]snprintf() and + str[n]casecmp(). As of right now, there are _no_ compilation + warnings except on dtimep.c-lexed (at least under AIX 4.1.5 and + Solaris 2.6). + +Sun Jan 2 23:42:18 2000 Ruud de Rooij + + * Move mhtest from bindir to libdir. + + * Move sendfiles from libdir to bindir. + + * Updated sendfiles manpage to reflect this change. + + * Added documentation for -build and -file switches to repl and + forw manpages (patch from Peter Maydell). + + * Fixed interaction between specifying -cc in profile and -group on + command-line. + +Tue Nov 1 13:48:10 1999 Dan Harkless + + * Changed the version number from 1.0.3 to 1.0.2+dev. There was + not unanimous support for my proposed even/odd release/developer + version number dichotomy. 1.0.2+dev implies release 1.0.2 plus + some development. + +Fri Oct 29 13:42:51 1999 Dan Harkless + + * Upped the version number to 1.0.3. If we don't do this, then + when people report bugs against 1.0.2, we won't know "which" 1.0.2 + they're talking about (since the development source is publically + available via CVS). I think the Linux kernel version numbers are + a good model, so the next time we roll a tarball, it should be + version 1.0.4 (or higher -- anyhow, an even-numbered version). + +Fri Oct 29 06:41:08 1999 Doug Morris + + * Released nmh-1.0.2. + +Tue Oct 26 22:57:00 1999 Doug Morris + + * Added check for whether "libtool" is in fact gnu libtool. If + it is, it is not used. This is the wrong behavior. If vendor + XYZ later on decides to create yet another libtool, we'll be + caught again. This works for now. + + * Minor updates to MACHINES refering to Mac OS X. + +Thu Oct 21 20:45:37 1999 Doug Morris + + * Added check for "libtool" (a ranlib type tool for Mac OS X) + and modified Makefiles so that nmh will build under Mac OS X. + +Sun Oct 17 08:28:56 1999 Ruud de Rooij + + * Changed repl defaults to partly revert to MH behaviour, + "-cc all" is now only implied with -group. + + * The replcomps template includes cc: header again (as in MH). + + * Updated repl man page to reflect these changes. + +Sat Oct 16 02:57:47 1999 Doug Morris + + * Tweaked configure to handle Solaris and SunOS after the BIND + changes. Both need more cleanup. + +Sat Oct 16 00:17:36 1999 Doug Morris + + * Removed BIND define and replaced it with a check for + gethostbyname (to determine if the host is DNS aware) and a + check for sethostent. This appears to be the right thing to + do, but there is no explanation of the reasoning behind the + BIND define in the code and it appears to have been used for + multiple purposes. + +Wed Oct 13 15:53:53 1999 Doug Morris + + * Updated manpages Makefile to link mh-profile.5 to + mh_profile.5 after installation. Suggestion from Richard Cohen + . + + * Modified configure.in to check for _IO_write_ptr and libio.h + to determine whether to define LINUX_STDIO instead of using + config.guess. + +Mon Oct 4 15:22:46 1999 Dan Harkless + + * Added '-L' to the calls of 'ls' in configure.in -- I have seen + multiple machines in the past where the mail spool was a symlink + to a directory on another device with more free space. + +Fri Oct 1 22:36:56 1999 Dan Harkless + + * Fixed a portability problem in Doug's fix of a portability + problem in my MAILGROUP autoconf support ('ls -l' vs. 'ls -lg'). + +Sat Sep 25 18:40:43 1999 Ruud de Rooij + + * Added config.sub and config.guess to the list of files to be + distributed. + + * Fixed bug in sbr/fmt_scan.c where an extra newline would be + added if a list of addresses was split over several header lines. + + * In mts/smtp/smtp.c, undefine strlen and strcpy if they are + macros, regardless of platform. + + * Allow q to quit mhshow, and n to skip to next part. Patch from + Kimmo Suominen . + + * Modified mhstore to recognize attachments created by sendfiles + with x-conversions=gzip. + +Mon Sep 13 21:20:10 1999 Doug Morris + + * added explicit cast to long from time_t for tclock in + post.c. + + * Commented out #ifdefs for in termsbr.c since + it's needed for ioctl() anyway. This prevents a warning about + implicit definition of ioctl(). + + * Moved guesses performed by AC_CANONICAL_SYSTEM back into the + "User Configuration" section of config.h (moved @TOP@ in + acconfig.h) so they're easier to find, should someone actually + want to mess with them. + +Sun Sep 12 15:50:34 1999 Doug Morris + + * updated Makefile.in so it recognized COMPLETION-TCSH and + COMPLETION-ZSH (only used in make nmhdist). + + * added prototype for ruserpas to . Fixes + warnings in mhparse.c and mhbuildsbr.c. + + * added include checks for and to + prevent warnings in fmt_compile.c, fmt_scan.c, lock_file.c, + sendsbr.c, mhbuildsbr.c, mhcachesbr.c, picksbr.c, and post.c. + + * added include for to ali.c, scan.c, ap.c, + rcvdist.c, rcvstore.c, rcvtty.c, and spost.c to remove + warnings about implicit definition of mts_init(). + + * added to slocal.c to prevent warnings about + function initgroups. + + * added to prevent warning about missing SIGNAL + function. + + * added function prototypes to smtp.c, whatnowproc.c, + mhbuildsbr.c, mhparse.c, mshcmds.c, show.c, whatnow.c, mhl.c + to fix warnings. + + * explicitly declared mbx_style in mshcmds.c and lused in + fmtdump.c as type static int instead of just static to + prevent warnings. + + * various code cleanups to prevent ambiguous statements + (brackets for if/thens and parens for complicated if + statements). + + +Sun Sep 12 09:19:27 1999 Doug Morris + + * commented out _cleanup() in mf.c because it's the only + location in all of the source code where it exists. It was + preventing compilation on at least linux. + + * Added check for which is the new location where + linux systems appear to be stuffing this header file. + +Thu Sep 09 23:15:49 1999 Doug Morris + + * fixed varous mkstmep bugs introduced in 1.0.1 by me. Whups! + + * added mh_profile SEGV patch from Richard Cohen + that prevents crashing when + mh_profile doesn't end in a newline. A similar patch was + previously sent in by Andrew Bettison . + + * fixed bug in associated with MAILGROUP #define (group "mail" + is not universal) -- hard to believe, but true. + +Tue Sep 7 16:47:03 1999 Dan Harkless + + * Renamed ZSH.COMPLETION to COMPLETION-ZSH and added COMPLETION-TCSH. + +Tue Aug 17 16:06:29 1999 Dan Harkless + + * Automated #define of MAILGROUP and installation of inc as setgid mail + when the mail spool directory isn't world-writable. + +Thu Jul 15 18:37:07 1999 Dan Harkless + + * slocal -debug used to leave a file in /tmp for each message + processed. Very bad for folks with slocal -debug in their .forward! + + * Got rid of a ton of compilation warnings. Most were "junk" + warnings due to the use of gcc -Wall (without -Wno-parentheses), + but a few represented real bugs. There remain many warnings to be + tackled that are due to missing function prototypes (e.g. snprintf()). + + * Default rcvdistcomps no longer puts a copy of all outgoing + messages in outbox. Added an rcvdistcomps.outbox that does. + +Sat Jun 09 12:22:47 1999 Doug Morris + + * Updated configure to check for mkstemp (available on OpenBSD) and + substitute it for mktemp if available. + +Thu May 13 16:40:19 1999 Doug Morris + + * Added config.sub and config.guess and updated acconfig.h and + configure.in to automatically detect system type and set the + proper #defines. + +Wed May 12 23:41:33 1999 Dan Winship + + * Released nmh-1.0.1. + +Fri May 7 17:18:28 1999 Dan Winship + + * Fixed flist to properly deal with relative folder names. + Problem noted by Jerry Peek . + + * Fixed --with-krb4 to work with original Kerberos 4 libraries as + well as the Kerberos 5 compat libraries. Based on a patch from + Assar Westerlund . + + * Added a check in configure.in to test if modf is in libc and + link with libm if not. This is needed by at least Digital UNIX. + Problem pointed out by Kevin Oberman . + + * Fix a bug from the "mhn -show" to "mhshow" renaming that + made the "list" command in whatnow not work for some users. + From Ruud de Rooij . + + * Replaced "extern int errno" with "#include " in a + number of files. Suggested by Stephen Wilson Bailey + . + + * Fixed a problem in how "packf -mbox" translated "Return-Path:" + lines. From Kimmo Suominen . + + * Fixed a segmentation fault in inc. Patch originally from Ruud de + Rooij . + + * Allow display of 8bit encoded messages. From Kimmo Suominen + . + + * Fixed repl to not add line breaks in the middle of long + addresses when building a reply. From Ruud de Rooij + . + + * Added -library switch to spost so it can parse user aliases like + post does. From Ruud de Rooij . + + * Changed configure.in's check for sigsetjmp to properly deal + with systems like Linux where it is a macro. From + . + + * Fixed a bug in whatnow that could cause it to sometimes exit + without prompting the user. Based on a patch by Richard Geiger + . + + * Added code to deal with SIGPIPE in mhl so it doesn't print + "Broken pipe" if you quit out of the moreproc. + + * Documentation: Added a note to MACHINES about Irix make. Added a + pointer to the online copy of the MH book in INSTALL. Added + some additional information to the whatnow and packf man pages, + suggested by Jerry Peek . + + * Updated INSTALL, FAQ, etc to not refer to Richard as the + maintainer or math.gatech.edu as the home any more. + +1999-02-06 Richard Coleman + + * Released nmh-1.0. + + * Merged mbx_open and mbx_Xopen in dropsbr.c. Fixed + mbx_open so that the mode of zero length maildrops + would not be changed. + + * Replaced the substitute version of snprintf() with the + one from the Apache web server. + + * Changed to default mode for creating new messages to 0600 + (this should have been done a long time ago). + + * Changed "flist" to handle searching for multiple sequences + for each folder. Also flist will now correctly split + Unseen-Sequence if it consists of multiple sequences. + + * Added new switches `-unlink' and `-nounlink' to "refile". + + * Added new switches `-unlink' and `-nounlink' to "rmm". + + * More cleanups of slocal output. Changed adorn() to + send to stdout, instead of stderr (to match rest of + verbose printing). + + * Merged mbx_create() into mbx_open, so that creating and + opening a nonexistent maildrop is done atomically. This + removes a bad race condition. + + * Fixed bug that caused slocal to be unable to save to MMDF + style drop file. + + * Added new wrapper function usr_folder() to slocal.c to + handle adding message to folder (currently, it still uses + usr_pipe() to call rcvstore). + + * seq_list() checks for empty folder before scanning for + sequence information. + + * num_digits() in flist.c and folder.c now returns correct + value for 0. Also added sanity check. + + * folder_delmsgs() now correctly decrements internal message + count. + + * Don't attempt to read sequence information if folder + is empty. + + * Split seq_read into seq_public and seq_private. + + * Small change to sigmsg.awk, since newer versions of gawk + interpret 034 as octal. + + * In flist, don't scan for sequence information in empty folder. + + * Updated mhn.defaults.sh to output profile entries for mhshow, + mhstore, and mhbuild. + + * Changed configuration parameter "mhn-access-ftp" to + "nmh-access-ftp". Updated man pages + + * Moved the code in InitMultipart to reverse the order of the + parts in a multipart, into its own function "reverse_parts()". + + * Changed code in mhbuildsbr.c to store unencoded content + in the c_cefile structure when building. + + * Changed code in mhoutsbr.c to look for unencoded content + in the c_cefile structure when outputing message. + + * Changed configuration parameter "mhn-cache" and + "mhn-private-cache", to "nmh-cache" and "nmh-private-cache", + since it is used in mhstore, mhlist, and mhshow. Updated man pages + + * Change configuration parameter "mhn-storage" to + "nmh-storage", since it is now used in mhstore, mhlist, + and mhshow. Updated man pages + + * Add autoconf support for KPOP (kerberized pop). + + * Add autoconf support for Hesiod. + + * Split routines to output a message given a Content structure + (output_message, output_content, write7Bit, etc..) to a new + file "mhoutsbr.c". + + * Split output_content(), into output_content() and build_headers(). + + * Changed copy_some_headers() in mhstoresbr.c, to use the linked + list of header fields, rather than reopening the message. + + * Added free_header() to mhfree.c to free structures containing + header field information. + + * Changed get_content() to use the linked list of header fields + when parsing the various MIME headers (Content-XXX). + + * Changed get_content() to store linked list of header field + values when parsing a content. + + * Changed mhbuild, mhn, mhlist, mhshow, mhstore, to use the + routines in mhcachesbr.c to handle the content cache. + + * Split various funtions (find_cache, find_cache_aux, find_cache_aux2, + cache_content) into new file mhcachesbr.c. + + * More calls to sprintf/strcpy (primarily in mhparse.c + and mhbuildsbr.c) converted to snprintf/strncpy. + + * When a message is displayed with `mhshow', it is now + removed from the "unseen" sequence. + + * Change the default "showmimeproc" to "mhshow". + + * Split "mhn -show" off into separate command "mhshow". + + * Split "mhn -store" off into separate command "mhstore". + + * Split "mhn -list" off into separate command "mhlist". + + * Add sanity checks to context_find(), context_replace(), + and context_del(), to abort if context file hasn't been + read. + + * Add calls to context_read(), to the beginning of all nmh + commands (instead of being called indirectly by context_find). + + * Changes the "substitute" version of vsnprintf/snprintf for + operating systems without native versions, to just call the + native vsprintf(), and ignore the buffer length. This is + faster, but less secure than the previous version that used + temporary files. This should only be a problem for systems + which do not have a native snprintf(), and require `inc' to + be setuid/setgid. + + * Lots more calls to sprintf/strcpy converted to snprintf/strncpy. + + * Changes client() routine to take additional parameter, which is + the buffer length of the parameter "response". Then added + buffer length checks for this parameter. + + * Changed getws() to get_fields(), since that is apparently the + name of a wide character version of gets() on some archetitures. + + * Lots of sprintf/strcpy calls converted to snprintf/strncpy. + + * Change the code in most of the commands that take multiple + message names/sequences/ranges on the command, such that + the msgs array is expanded dynamically. This removes most + of the limits on the length of command lines. + + * Add additional parameter to copyip(), to specify the + maximum number of strings that can be copied (security + fix). + + * Create new function getarguments(), to massage the argument + vector before parsing it (add any arguments from your + profile to the beginning of the argument vector). This + also removed the general limit on the number of command line + arguments. + +1998-07-04 Richard Coleman + + * Released nmh-0.27. + + * Added a new command "delete", that is available during + a "whatnow" session. It is equivalent to "quit -delete". + + * Added another parameter to editfile (in whatnowsbr.c), + that controls whether editfile should remember the last + program that was exec'ed. This way the whatnow command + "mime", will not be re-executed if "edit" is later given + with no arguments. + + * Changed whatnowsbr.c, so that whatnow doesn't abort if + mhbuild returns an error. + + * Added parameter to sendsbr(), so you may specify whether to + rename the draft file. + + * Pass delay time to splitmsg() as a parameter, rather than + use a global variable. + + * Moved code to rename draft file after sending message from + splitmsg and sendaux, to sendsbr. + + * Removed all the code in viamail to split messages and then + mail them. Replaced this with the standard sendsbr.c routines. + + * Changed sendsbr(), so that when splitting messages into + messages of type "message/partial", the header fields that + are copied are more compliant with RFC-2046. + + * Fixed mhbuild to track temporary files better. They are + now correctly removed when mhbuild aborts. + + * Created a new man page for "sendfiles". The information + about "mhn -viamail" in the "mhn" man page was moved to + this new page. + + * Changed the name of the "viamail" shell script to + "sendfiles". Modified "sendfiles" to use the new + viamail program. + + * Moved the functionality for "mhn -viamail" out of mhn, + and into a separate executable called "viamail". + + * When storing MIME contents to a folder using mhn -store, + they are now accumulated in a temporary file, and then added + to the folder using folder_addmsg(). + + * Moved code to save content to a folder from store_content + to new function output_content_folder. + + * Moved code to save content to file from store_content to + new function output_content_file. + + * Moved code to parse storage format string from store_content + to new function parse_format_string. + + * Fix copy_some_headers() in mhstoresbr.c, so that the + correct header fields in the first enclosing message/partial + will be copied (according to RFC2046), when using mhn -store + to reassemble messages of type message/partial. + + * Fixed bug to openFTP() in mhparse.c, that caused the + tmp file to not be removed, when transferring a + message/external file from ftp. + + * Moved the code in mhparse.c to process -auto switch (scan + contents for the attribute "name"), to a new function + "get_storeproc" in mhstoresbr.c. + + * Moved routines to free data structures related to MIME + content from mhparse.c and mhbuildsbr.c, to new file + mhfree.c. + + * Moved code to show/display MIME content into new + file mhshowsbr.c. + + * Moved code to store MIME content from into + new file mhstoresbr.c + + * Moved code to parse MIME content into new + file mhparse.c. + + * Moved code to list information about MIME content + into new file mhlistsbr.c. + + * Move part_ok(), type_ok(), content_error(), flush_errors(), + and set_endian() to new file mhmisc.c. + + * Start to isolate the code to show, list, and store MIME + messages. One side effect is that only one flag (-show, + -list, or -store) can be used at a time now. + + * mhn -store -auto wasn't storing file in correct directory. + + * Removed a few dead variables from sbr/ruserpass.c + + * move code for creating tmp files, and renaming the + the composition draft in mhbuild, from build_mime() + to main(). + + * remove left-over code in mhbuild.c, mhbuildsbr.c, for + the -[no]auto switch (which isn't used in mhbuild). + + * split mhn.c into mhn.c and mhnsbr.c (name later changed + to mhparse.c). + + * split mhbuild.c into mhbuild.c and mhbuildsbr.c. + +1998-05-25 Richard Coleman + + * Released nmh-0.26. + + * Added (unlisted) options [no]dashstuffing to send, post, + and whatnow to determine whether to do RFC934 quoting + (dashstuffing) for encapsulated BCC messages. The default + is still the same (dashstuffing). + + * Changed the undocumented feature "nodashmunging" in forw + and mhl, into the documented feature "nodashstuffing". The + default for forw, is still "dashstuffing" for backward + compatibility, although I don't believe that bursting + RFC934 digests is very common anymore. + + * Added an option to define REALLYDUMB in the default config.h. + But it is not on by default. + + * moved creation of config file mts.conf from zotnet/mts + to etc. This simplified the Makefile in zotnet/mts. + + * simplified directory support/general to etc. + + * removed unneeded directory support/bboards. + + * split getusername() into getusername() and getuserinfo(). + + * Changed getusr() routine to getusername(). + + * Slight cleanup in folder_pack.c on code that records the new + number of the "cur" message when packing. + +1998-05-08 Richard Coleman + + * Released nmh-0.25. + + * Change install process, so that hard linking the correct mts + library to libmts.a, is not necessary. The final link process + uses the original name of the library. + + * Fixed bug in flist.c and folder.c, so that symbolic links which + point to directories, will not decrement the number of directory + links remaining. + + * Split the function list_content (in mhn.c and mhbuild.c) into + list_content and list_debug. + + * Don't pack (folder -pack) an empty folder. + + * Exit gracefully in flist.c, if no sequence is specified, + and no "Unseen-Sequence" is given in nmh profile. + +1998-02-27 Richard Coleman + + * Released nmh-0.24. + + * Small clarification to the man page for `ali'. + + * Fix bug in inc.c so that if both flags `-file' and `-truncate' + are given, that order doesn't matter. + + * Fix bug in seq_list.c when realloc'ing for + large sequence line. + +1998-02-23 Richard Coleman + + * Released nmh-0.23. + + * Add new section on "Transfer Encodings" to man page for mhbuild. + + * In mhbuild.c, split compose_content into compose_content + (parse and execute composition string), and scan_content (scan + content, decided transfer encoding, check for clash with boundary + string). I did a good amount of rearranging of this code. + + * Moved definitions for data structures for parsing MIME + messages from mhn.c and mhbuild.c to a new include + file h/mhnsbr.h. + + * Small amount of rearranging in sendsbr.c + + * Small changes to MAIL.FILTERING file. + + * Add the file MAIL.FILTERING to nmh distribution. + + * Add line to packf so that if message begins with + "X-Envelope-From:" field, it is converted to "From ". + + * Fix packf to add "From " line to beginning of message, + even if Return-Path doesn't exist. + + * Add note to MACHINES file that on Linux, configure + doesn't find the functions sigsetjmp/siglongjmp. + + * Fix configuration for machines that don't have (or find) + sigsetjmp/siglongjmp. + +1998-02-11 Richard Coleman + + * Released nmh-0.22. + + * Add a configure check for sigsetjmp. Add some conditional + #define's in h/signals.h in case it's not found. + + * Added additional notes about -auto switch in mhn man page. + + * Added note about MM_CHARSET environment variable to + mh-profile(5) man page. + + * Fix signal problem in mhn.c (change setjmp/longjmp to + sigsetjmp/siglongjmp). + +1998-02-09 Richard Coleman + + * Released nmh-0.22-pre1. + + * Changed the first line in mhl.format from + " -- using template mhl.format -- " to a blank line. + + * Added note about automimeproc to mh-profile man page. + + * Reorganize the main entry point for parsing a MIME message + or file in mhn. Add new function parse_file() as new main + entry point for parsing MIME files. + + * Add note to mhn man page, that "mhn -file -" will accept the + source message on the standard input. + + * Changed a sanity check in folder_realloc that was too strict. + + * -norfc934mode is now the default for mhbuild, + rather than -rfc934mode. + + * Fix mhbuild, so that Content-Description and RFC-822 comments + from #forw directive will be correctly included if there is + only one message. + + * Change mhn to correctly default parts of multipart/digest to + message/rfc822 (leftover code from rfc934mode was removed). + + * Restore HP specific code to zotnet/tws/lexstring.c. Apparently + it is still needed. + +1998-02-06 Richard Coleman + + * Released nmh-0.21. + + * If the file given to mhbuild is "-", then accept the draft on + standard input, and output the MIME message to standard output. + + * Cleaned up code in mhbuild.c that decides what transfer + encoding to use. + + * Cleaned up code in mhbuild.c that decides what character set + to use for text contents. + + * Removed old hpux specific code from zotnet/tws/lexstring.c + +1998-02-02 Richard Coleman + + * Released nmh-0.21-pre2. + + * Added the "decode" variable to mhl.format and mhl.header. + + * Added new variable "decode" to mhlsbr.c to decode text in + header fields as per RFC-2047. + + * Make sure that when decoding RFC-2047 header fields, that any + spaces at the ends of the encoded text are not ignored, but the + spaces between encoded word are. + + * Removed #ifdef's for MIME. MIME support is always compiled in. + + * scan/inc will now decode both Subject and From lines as + RFC-2047 encoded header fields. + + * Added new function write_charset_8bit() to sbr. It returns + the character set to use for 8bit text in composition draft. + Changed mhbuild to use this function. + + * Split mhn man page into man pages for mhn and mhbuild. + + * mhn -show will only now only use default method for content + of type plain, if it is NOT a part of a multipart/alternative. + + * Split mhn -build into mhbuild. Did some code cleanup. + + * Added support for %(decode) to fmtdump.c. + + * check_charset() now accepts US-ASCII as a subset of any + ISO-8859-X character set. + + * Changed the default "showproc" to mhl, instead of the + pager more. + + * When reading file into mhn composition file, only need read + permissions, not write permissions. + + * Added own version of strcasecmp to distribution, since + nmh calls it frequently with NULL pointers (ughh). + + * Replaced uleq.c with strcasecmp. Removed uleq.c from + distribution. + +1998-01-22 Richard Coleman + + * Released nmh-0.21-pre1. + + * If a message is missing charset parameter to text/plain, show + will assume US-ASCII, rather than just calling showmimeproc. + + * Change show.c and mshcmds.c to use check_charset to see if text + message contains valid character set. + + * Added new scan format file "scan.nomime" to support/general + that doesn't do any RFC-2047 decoding. + + * Modified all the scan format files in support/general to do + RFC-2047 decoding of Subject field. + + * Did more work on sbr/fmt_rfc2047.c, so that it will correctly + ignore whitespace between two valid encoded words, but not + between an encoded word and normal text. + + * Created new file sbr/check_charset.c. Moved code from + fmt_rfc2047.c to check for valid character set to this file. + + * Added format escape %(decode) to decode contents of "str" register + as a RFC-2047 header field. + + * The command install-mh now recognizes the switches -version + and -help. + + * Added a new argument to print_help.c to decide whether to + print profile entries (needed for install-mh to prevent weird + loops). + + * Changed folder_read.c and folder_realloc.c so that mp->lowoff + is initialize to max (mp->lowmsg, 1) rather than always 1. + + * Changed macros for sequence/attribute manipulation so that + message status array doesn't need to always start at 1. + + * Small cleanups in folder_realloc(). + +1998-01-09 Richard Coleman + + * Released nmh-0.20. + + * Added configure option --with-pager=PAGER. + + * Added configure option --with-editor=EDITOR. + + * Changed the default format file for mhl (mhl.format) to + also ignore (not display) the header fields Content-Type, + Content-Transfer-Encoding, and Content-ID + + * Fixed core dump in addrsbr.c when using %(proper) format function + and the To: line was missing. + + * Added the file ZSH.COMPLETION to the distribution. + +1998-01-04 Richard Coleman + + * Released nmh-0.20-pre2. + + * Added new switch -snoop to both `msgchk' and `inc', so you can + watch the POP transaction. + + * Changed "replgroupcomps" to check for Mail-Followup-To header + first, and use it if available. + + * Changed "replcomps" to check for Mail-Reply-To header + first, and use it if available. + +1998-01-03 Richard Coleman + + * Released nmh-0.20-pre1. + + * Changed seq_list.c to dynamically enlarge the buffer for + collecting the message ranges in a long sequence line. + This should remove the last hard limit on the size of a + sequence line. + + * Changed seq_read.c so that can read long sequence lines. + It will use multiple calls to m_getfld() when m_getfld() + returns the state FLDPLUS. + + * Changed brkstring.c to dynamically add more space for pointers + if necessary. This is needed when splitting up large sequence + lines. + + * Did some small cleanups in seq_save.c. + + * Added new switches `-[no]unseen' to rcvstore, to control + whether new messages are added to Unseen-Sequence. + + * Moved locking routines (zotnet/mts/lock.c) to sbr/lock_file.c + + * Changed the internal UNSEEN flag to SELECT_UNSEEN which is + more appropriate. Changed the MHPATH flag to ALLOW_NEW. + + * Changed "replcomps" to not include CC and TO lines so that + that reply message is only directed at the author of the + message to which you are replying. + + * Added new switch `-group' to command repl, which causes repl + to use new forms file "replgroupcomps". This is intended for + making group replies. + + * Removed #ifdef for ATHENA. + +1997-12-28 Richard Coleman + + * Released nmh-0.19. + + * Fix repl,forw so that switch `-form file' will not abort + as ambiguious (silly mistake on my part). + + * Cleaned up the mhn man page. Added info about a few escapes + for the formatting/display strings that were not documented + (%%, %t). Moved the BNF grammar for the mime composition file, + to the end of the man page. + + * Added the options -[no]format to the command repl. The + switch `-format' will filter the message to which you are + replying with the standard message filter "mhl.reply", which + is now included in the distribution. The `-noformat' option + will negate the use of -format or -filter and not include + the message to which you are replying in the draft. + + * Did some cleaning and reorganization on many of the man + pages. + + * Added debugging switch `-debug' to mhparam, which displays + the values of all `procs' (and some other misc configuration + info) that nmh keeps in global variables. + + * When using `refile -preserve', if a conflict occurs, then use + the next available number above the message number you wish + to preserve. + + * In forw.c, split the code for creating MIME style forwarding + out of copy_draft, and into copy_mime_draft. + + * Move routines in mark.c to print sequences, into new + file sbr/seq_print.c + + * flist will now update the current folder. + + * Added the switches -[no]fast to flist, to replace + -[no]total. The previous switches are still accepted + but now undocumented. + + * More reorganization in flist of the code for + traversing folders. + + * The command "flist +foo -all" will now scan the folder + "foo" and all its 1st level children. + + * Add missing include file to sbr/snprintf.c + + * Fix alarm bug in rcvtty, so that when it calls external + process, the alarm is never longer than 30 minutes. + +1997-12-17 Richard Coleman + + * Released nmh-0.18. + + * Fixed bug in mark, so that "mark -list -seq foo" will + correctly indicate if "foo" is a private sequence. I found + this bug mentioned in Jerry Peek's book. + + * Simplified the code in seq_setcur(), since seq_addmsg() now + retains the public/private status of sequences. + + * Changed sequence handling so that if the switches -public + or -nopublic, are not specified for the commands mark, pick, + or rcvstore, then existing sequences will retain their + previous public/private status. + + * mhparam now handles the mh-sequences profile entry + correctly. + + * flist -all will now also check readonly folders (for + private sequences). + + * Improve the leaf optimization for folder command. + It will now track the number of directories in a folder, + and stop stat'ing files once it has hit all the subfolders. + + * Renamed m_getfolder to getfolder. Changed getfolder to + take option to determine whether it should get current + folder, or just default folder (Inbox). Changed rcvstore, + inc, and rmf to use the new getfolder. + + * flist now indicates if a sequence is private. + + * Change WUNTRACED to 0, in pidwait.c, so that commands will + wait for stopped processes. + + * conflict will dynamically allocate space for group names, + so it can now handle system with more than 100 groups. + +1997-12-09 Richard Coleman + + * Released nmh-0.18-pre4. + + * Check if we have enough message status space, before we + call folder_realloc() in burst, mhpath, and m_draft(). + + * mhn will now correctly identify a formatting string of "-" + for the option -store, and send content to stdout. + + * Change the way that memory for message status is + allocated. It is dynamcially allocated separately from + the folder/message structure. This required changing + folder_read.c, folder_realloc.c, folder_free.c. + + * Removed all the MTR code (experimental code for message + status allocation). + + * Renamed m_readfolder.c to folder_read.c and simplified + the code. + + * Renamed m_freefolder.c to folder_free.c. + + * Add function trim() to slocal.c to pretty print + the debugging output. + + * Changed the name of m_packfolder() to folder_pack(). + Changed the name of m_remsg() to folder_realloc(). + +Wed Dec 3 23:33:38 1997 Richard Coleman + + * Released nmh-0.18-pre3. + + * Changed installation to add `flists' which is hard linked + to `flist'. This is a equivalent to `flist -all'. + + * For flist, -showzero is on by default. + + * Major changes to flist. Default is now for flist to search + current folder. The switch `-all' is now used to specify + searching all top level folders. The new switch `-showzero' + is used to print out folders that don't contain any messages + in the given sequence. + + * Split BuildFolderList in flist.c into 2 functions + (BuildFolderList, BuildFolderListR). Changed these functions + so that flist now does better leaf optimization, and will stop + stat'ing directory entries when it knows it has hit all the + subdirectories of a given directory. + + * Reorganized code in folder.c, so that all relevant folders + are scanned first and information recorded. Then all the + folder summaries at printed out at one time. + + * Made the options of folder(s) more orthogonal. Now + "folder -all -noheader -nototal" will do the right thing. + + * Added `-noall' switch to folder, for completeness. + + * Changed the default mode for creation of new folders + to 0700 (was 0711). + + * Slightly changed the format for flist. It now indicates + if a folder is current. Also the width of the various + fields are now calculated at runtime. + + * Changed the format for folder(s). Folder names + are now left justified. The width of the various fields + are calculated at runtime. + +Sun Nov 30 19:14:53 1997 Richard Coleman + + * Released nmh-0.18-pre2. + + * Add paragraph to man page for install-mh and to INSTALL file + about checking for global mh.profile. + + * Renamed m_find() to context_find(). + Renamed m_replace() to context_replace(). + Renamed m_delete() to context_del(). + Renamed m_update() to context_save(). + Renamed m_getdefs() to context_read(). + Renamed m_foil() to context_foil(). + + * Change rcvstore to use routine folder_addmsg(), instead of + adding message to folder itself. + + * Changed refile, so that if the switch -preserve is used, + and a conflict occurs for a particular folder, then folder_addmsg() + will just use next highest available number for that folder, + instead of exiting. + + * Make folder_addmsg() more robust. It will make repeated + attempts to link file into folder if link returns with + the error EEXIST. + + * Fix bug, so that that if forking sendmail, HELO will be sent + unless clientname: option is defined but empty (so now it + is the same as the direct smtp code). + + * Changed sprintb to snprintb (now we pass the buffer length + to new routine). Changed code to use new function. + + * Added snprintf to sbr. Added configure check to build it + if you don't have a native version (but haven't changed much + code to use it yet). + +Thu Nov 13 18:42:18 1997 Richard Coleman + + * Released nmh-0.18-pre1. + + * Fixed alarm bug in slocal, so that alarm is never + called with a value larger than 30 mintues. + + * Fixed race condition in rmm and refile, so that + context is updated before external rmmproc is called. + + * Removed all the OVERHEAD code. + + * Move code to add message to folder from refile.c + to folder_addmsg.c + +Fri Jul 25 19:39:29 1997 Richard Coleman + + * Did some rearranging of the internals of inc.c. + + * Make -inplace the default for anno, forw, dist, and repl. + + * Changed --enable-smtp to --with-mts={smtp,sendmail} + + * Created new directory mts/sendmail for direct sendmail + interface (although it currently still uses SMTP). + + * Removed all the TMA (trusted mail agent) code + + * Removed all the TTYD (terminal access daemon) code + + * Removed all the MF (uucp filtering) code. + + * Removed all the code for BERK. + + * Removed all the code for stand-alone delivery (MHMTS). + + * Split the file mts/sendmail/smail.c into sendmail.c and + smtp.c. Changed the name of the directory to mts/smtp. + + * Changed autoconf to use @sysconfdir@ for location of + configuration files. + + * Changed #define in mhn.c from FTP to BUILTIN_FTP. + +Mon Jul 21 03:22:34 1997 Richard Coleman + + * Released nmh-0.17. + + * MAKEDEFS weren't passed down to recursive makes correctly. + + * slocal.c now checks for UTMP_FILE and _PATH_UTMP instead + of hard-coding "/etc/utmp". + + * rcvtty.c check for _PATH_UTMP if UTMP_FILE is not + defined. + + * Remove configure checks for ulong and ushort. Changed + code to just use unsigned {short, long}. + + * Change addmsg function in refile.c to return new + number of refiled message. + + * Added check in get_returnpath for empty unixbuf. + + * Cleanup of sbr/pidstatus to use more POSIX macros + for return value of wait(). + + * Change configure to also check /bin for "more". + +Sat Jul 12 00:02:23 1997 Richard Coleman + + * Released nmh-0.16. + +Mon Jun 23 20:13:24 1997 Richard Coleman + + * Added automimeproc, which should replace automhnproc. + + * multipart messages will no longer abort for messages + of type 8bit or binary (although we still can't really + deal with binary messages, yet). + + * Fix double free of c_storage. From John MacMillan. + + * mhn now treats unknown subtypes of "text" as text/plain. + + * mhn changed so that specifying mhn-show-multipart, or + mhn-show-multipart/{mixed, alternate, etc...) will override + the use of the internal method for displaying these types. + Previously mhn would always use the internal method for subtypes + mixed, alternate, digest, and parallel (even if an alternate + method was specified in mhn.defaults). + + * mhn show treats unknown subtypes of multipart, as type + multipart/mixed (as specified RFC2046). + + * mhn checks for the parameter "name" rather than "x-name". + From MH-6.8.4 patch. + + * Fix double free of ctinfo in user_content when using + #forw with single message. From John MacMillan (and + MH-6.8.4 patch). + + * Changed -mhnproc switch for show, to -showmimeproc. + + * Changed profile entry "mhnproc" to "showmimeproc". + + * Added "mime" option to "whatnow", which calls the program + "buildmimeproc" (default is mhn -build) to process MIME + composition files. + + * Added -build switch to mhn, to process MIME composition + files. + + * Did some reorganizing of mhn.c. + + * Changed casting in mts/sendmail/smail.c from (char) to + (signed char) so SMTP reply codes work correctly for machines + which used unsigned chars by default. + +Sat Jun 21 01:21:47 1997 Richard Coleman + + * Released nmh-0.15. + + * Added new form "scan.unseen" to distribution. It marks messages + which are in any sequence in Unseen-Sequence. + + * Do some rearranging of date/time code in zotnet/tws/dtime.c + + * Fix sign extension bugs in fmt_scan.c. + + * Fix m_atoi.c so that strings ending in non-digit characters + return 0. + + * Split code in burst.c so that finding delimiters of digested + messages and bursting a message into multiple messages are + two separate functions (find_delim and burst). + + * Add workaround fo AC_PATH_PROG in configure.in, so + that BSD4.4 machines can find sendmail, vi, more. + + * Added "-width" option to rcvtty. + + * Change a few variable names in zotnet/mts/client.c since + they conflict with defines on AIX. + + * Makefile in zotnet/tws assumes lexing of dtimep.lex was + unsuccessful if resulting file is less than 500 lines long + (rather than 10, which was previous value), since AIX + sed gives mangled file of about 200 lines. + + * Extract code in rcvstore.c to link message into folder, + and put in own subroutine. + + * Extract code in refile.c to link message into folder, + and put in own subroutine. + + * Moved code to remove messages from folder into own + routine "folder_delmsgs" in sbr. Changed rmm.c and + refile.c to use new routine. + +Fri May 16 06:09:31 1997 Richard Coleman + + * Renamed m_seqok to seq_nameok. + + * Changed m_setunseen, msh, mshcmds, flist, and scan to use + seq_getnum. + + * Changed m_seqflag to return the number of a sequence rather + than its bit flag. Changed its name to seq_getnum and renamed + file to sbr/seq_getnum.c. + + * Removed function m_seqnew and file sbr/m_seqnew.c since it is + no longer used. + + * Added zero switch to m_seqadd function to zero out bits before + adding message to sequence. + + * Renamed function m_setvis to m_setunseen, and renamed + corresponding file in sbr. + + * Renamed function m_setseq to m_setprev, and renamed corresponding + file in sbr. + + * Changed mark.c and pick.c to use m_seqaddsel and m_seqdelsel. + + * Added new function m_seqdelsel to m_seqdel.c, which deletes + all selected messages from a sequence. + + * Added new function m_seqaddsel to m_seqadd.c, which adds all + selected messages to a sequence. + + * Split sbr/m_seqnew.c into m_seqadd.c, m_seqdel.c, m_seqnew.c, + and m_seqok.c. + +Thu May 15 00:53:17 1997 Richard Coleman + + * Renamed function pack_folder to m_packfolder, and moved it + from uip/folder.c into its own file sbr/m_packfolder.c + +Wed May 14 23:38:00 1997 Richard Coleman + + * Changed function m_gmsg to m_readfolder. Renamed file + sbr/m_gmsg.c to sbr/m_readfolder.c. + +Mon May 5 19:57:11 1997 Richard Coleman + + * Expanded rcvtty man page, and added small patch from + MH-6.8.4 distribution. + +Fri May 2 15:24:34 1997 Richard Coleman + + * Released nmh-0.14. + + * Comment out configure test and code for tgetent to allocate its + own termcap buffer when passed a NULL argument. + +Sat Apr 26 03:46:38 1997 Richard Coleman + + * Added new options `-checkmime', `-nocheckmime', and `-mhnproc' + to show. Restructured code to handle options to various + `procs' better. Deprecated `-noshowproc' option and NOMHNPROC + environment variable. + + * Added new man page `mh-draft' which documents the + draft folder facility in nmh. + + * Renamed fmtsbr.h to fmt_scan.h. Renamed fmtcompile.h + to fmt_compile.h. + + * split fmtsbr.c into fmt_scan.c and fmt_new.c. Renamed + fmtcompile.c to fmt_compile.c, and formataddr.c to + fmt_addr.c. + + * `send -help' wasn't showing the -(no)mime and -split + options. + +Fri Apr 25 02:50:36 1997 Richard Coleman + + * Released nmh-0.13. + + * Changed mhpath so it doesn't abort if a message sequence + such as "mhpath all" expands to more than 1000 messages. + Also mhpath now dynamically reallocated space for message + names (The number of command line arguments is still limited + to MAXARGS). + + * Did some general restructuring of the code in folder.c + that checks for folder information, and prints it. + +Thu Apr 24 01:04:37 1997 Richard Coleman + + * Changed `folder' to reallocate space for folder names if + necessary. So `folders' can now handle more than 300 folders. + +Tue Apr 22 14:01:26 1997 Richard Coleman + + * Change configure to use a compile check to see if the tm struct + has tm_gmtoff, rather than using egrep. + +Mon Apr 21 02:19:17 1997 Richard Coleman + + * Released nmh-0.12. + + * Had set_exists and unset_exists macros backwards. + + * Released nmh-0.11. + +Thu Apr 10 02:39:53 1997 Richard Coleman + + * Added documentation to mh-profile.man about the various + `procs' (mhlproc, showproc, lproc, etc...). + + * Replace the bit twiddling for SELECTED, UNSEEN, and + mp->attrstats with macros. + + * If system doesn't have SIGEMT (like Linux), then use SIGTERM + in msh.c instead. + + * Change fstat to stat in m_gmsg.c since Linux wants + to hide dd->dd_fd. + + * Merge Linux patch sent in by Michel Oosterhof (original + patch from bsa@kf8nh.wariat.org). + + * Document an undocumented MH feature. mhn -form mhl.null + will suppress the display of the message header. + + * mhparam will now return "mhparam etcdir". + + * Add catproc to /config/config.c and use that in show.c + and mshcmds.c, rather than hard coding in /bin/cat. + + * Add mhnproc to the list of `procs' in mh-profile.man. + + * Add configure test for lorder and tsort commands. + + * Commented out the padding in the `msgs` struct in h/mh.h + + * Change m_gmsg.c to allocate elements to the `info' array by + 500 elements at a time (rather than MAXFOLDERS / 5). + + * Add note to man page for mhmail that zero length messages are + not sent. Need to use -body "" to send empty messages. + + * zotnet/mts/mts.c : compare character with '\0', not NULL. + + * sbr/getcpy.c : assign '\0' to character, not NULL. + + * add m_fmsg to most programs in uip so that they explicitly free + folder/message structure when done with folder. + + * uip/slocal.c : cleanup processing of sender. Make sure it is + defined even if message is missing "From " line. + +Mon Mar 31 03:37:35 1997 Richard Coleman + + * Released nmh-0.10. + +Sun Mar 30 21:46:17 1997 Richard Coleman + + * Add configure check for . Turn on LOCALE support + by default. + +Thu Mar 20 03:21:24 1997 Richard Coleman + + * Reversed previous decision to retain "From " lines in slocal. + The "From " line is now removed from all messages. + + * inc now saves the date from the "From " envelope in the + Delivery-Date header for all messages. + + * sbr/m_getfld.c: Clean up processing of Return-Path and + Delivery-Date from the "From " envelope. + +Mon Mar 17 19:03:36 1997 Richard Coleman + + * client.c: cast iaddr to int before comparing return value + of inet_addr with NOTOK. + +Tue Mar 11 04:38:10 1997 Richard Coleman + + * Grep test for signal names was failing on some OS'es because + of missing tabs in regex. + +Sat Mar 8 01:58:22 1997 Richard Coleman + + * Released nmh-0.09. + + * Move config files and format files to *.old before installing. + + * Add configure check for killpg. + + * msh.c: include instead of and + . + + * prompter.c: don't include anymore. + +Thu Mar 6 04:03:24 1997 Richard Coleman + + * Added `-mime' and `-nomime' options to `repl'. + From MH-6.8.4 diff. + +Tue Mar 4 03:10:37 1997 Richard Coleman + + * ruserpass.c : removed conflicting prototypes. + + * rcvtty.c : Fixed rcvtty to obey terminal permissions granted + by `mesg' command. Previously only worked on BSD machines. + +Mon Mar 3 00:18:59 1997 Richard Coleman + + * rcvtty.c : Changed to use #define UTMP_FILE (if exists) rather + than hard coded "/etc/utmp". + + * Released nmh-0.08. + + * Changed slocal to lock .maildelivery (or file given by -maildelivery) + when accessing ndbm/db file for duplicate suppression, instead of + locking database itself. + +Thu Feb 27 05:28:09 1997 Richard Coleman + + * Added slocal action `mmdf' to deliver to a file in mmdf format. + + * Changed the slocal actions `file' and `>' to always deliver in + mbox (uucp) format rather than be determined by RPATHS config + option. + + * Changed the slocal action `mbox' to deliver in mbox (uucp) format + rather than mmdf format. + + * slocal now adds Delivery-Date field to all messages (previously it + only added it to messages when delivering them to a file). The + "From " line is now retained on all messages if compiling with + RPATHS, rather than being discarded. + + * rcvpack no longer adds the Delivery-Date field to messages. + +Sun Feb 23 22:03:54 1997 Richard Coleman + + * Removed the script packmbox, since it's functionality has been + added to packf. + + * Changed packf so that it uses mbox (uucp) format by default + rather than mmdf format. Added options -mbox and -mmdf to + packf so you can choose the preferred format. + + * Changed rcvpack so that it uses mbox (uucp) format by default + rather than mmdf format. Added options -mbox and -mmdf to + rcvpack so you can choose the preferred format. + +Tue Feb 18 00:01:05 1997 Richard Coleman + + * Changed nmh to use dot locking by default (although you + can still easily change this in config.h). + + * Simplified locking code. Removed code allowing setting of + locking type in mts.conf. Now the locking type and locking + directory (if any) can only be set at compile time. + +Fri Feb 14 02:49:18 1997 Richard Coleman + + * Prefer getting timezone information from tm->gmtoff rather + than tzset and external timezone variable. + +Thu Feb 13 00:35:45 1997 Richard Coleman + + * Fixed typo in ruserpass.c in the variable toktabs. + + * When ruserpass was added to LIBOBJS, it was missing + the suffix. + + * Released nmh-0.07. + +Tue Feb 11 01:29:47 1997 Richard Coleman + + * Add check to configure, so that if ruserpass, or _ruserpass + is not found, build version of ruserpass in sbr. + + * Added define's to discard.c, m_getfld.c, and scansbr.c so + the code that manipulates internals of stdio, will build + on SCO 5.x. + + * Added #define to control whether to compile the simple + built-in FTP client in mhn. + + * Added configure check for ushort and ulong. Change code + to use ushort/ulong rather than u_short/u_long. + + * A couple of small cleanups in locking code. + + * Added configure check for gmtoff element in struct tm. + + * Added configure check for tzset. + +Fri Feb 7 03:01:57 1997 Richard Coleman + + * Released nmh-0.06. + + * Removed code for machines that don't have socket + interface (how could they get mail anyway?). + + * Removed code for BSD41 machines. I don't think there are + many such machines around anymore. + + * Add configure check for function uname, and prefer it + over gethostname. General cleanup of zotnet/mts/mts.c. + + * Change all `lseek' calls to use POSIX symbolic constants + SEEK_SET, SEEK_CUR, SEEK_END. + +Thu Feb 6 01:16:30 1997 Richard Coleman + + * Check lex generated file in zotnet/tws and use + pre-generated version if necessary. + + * Released nmh-0.05. + + * Change to use reliable signals on all platforms that have + sigaction. Change so that interrupted system calls are + restarted for all signals except SIGALRM. This fixes alarm + handling code in smail.c for BSD based systems. + + * Added lorder and tsort commands so that created libs can + be linked in one pass. + +Tue Feb 4 01:33:00 1997 Richard Coleman + + * Changed pidwait so that while it is waiting for a child, + it should block signals rather than ignore them. + +Mon Feb 3 21:05:30 1997 Richard Coleman + + * Add checks to configure for dbm_open and -lndbm. + +Thu Jan 30 05:15:42 1997 Richard Coleman + + * folder -pop and folder -push were freeing some memory too + quickly, which caused the entry popped from the stack to not + become the current folder. + +Wed Jan 29 01:28:02 1997 Richard Coleman + + * Released nmh-0.04. + + * Define ospeed and PC in termsbr.c is OS doesn't have + it. + +Sun Jan 26 20:25:10 1997 Richard Coleman + + * editfile will create a symbolic link to the altmsg if it + can't make a link, on any machine supporting lstat. Formerly + this would happen only on BSD42 based machines. + +Sat Jan 25 22:54:26 1997 Richard Coleman + + * traverse (in popsbr.c) wasn't calling va_start before using + variable argument list. Fixes core dump in inc when using POP. + +Fri Jan 24 03:27:59 1997 Richard Coleman + + * The variable pass in remotemail needed to be set to + NULL. (From MH-6.8.4 diff). Fixes core dump of msgchk when + using POP. + + * inc and msgchk were using -rpop by default when configured + with POP support. Default is now -norpop. + +Thu Jan 23 02:01:17 1997 Richard Coleman + + * By default, post will now give the SMTP HELO command with + the local hostname. If you specify a hostname with the + clientname: option in mts.conf file, post will give the + HELO command with that name instead. If the argument to the + clientname: option is empty, no HELO command is given. + (From the MH-6.8.4 diff) + +Wed Jan 22 01:55:45 1997 Richard Coleman + + * When using `-help' for a command, it will also print its + profile compents from .mh_profile. (From MH-6.8.4 diff) + + * "slocal -file" will now correctly takes its input from + a file (currently need to specify full path). + +Sun Jan 19 20:37:21 1997 Richard Coleman + + * "slocal -debug" will now issue a warning if a non-blank + line in the .maildelivery file has less than 5 fields. + +Sat Jan 18 02:26:41 1997 Richard Coleman + + * Changed slocal so that code for duplicate suppression + (MH config was MSGID) is always built. Added the options + -[no]suppressdup to slocal to turn this on/off. + +Thu Jan 16 00:26:34 1997 Richard Coleman + + * Released nmh-0.03. + + * Fixed problem where mark would core dump if no + .mh_sequence file existed. + + * Fixed problem where slocal would core dump if -debug + option was given, and certain headers were missing. + + * Added patch to slocal to add `folder' (+) action, which + is shorthand for piping message to rcvstore. Updated + man page. + +Wed Jan 15 21:30:17 1997 Richard Coleman + + * Changed flist option -unseen to -[no]all. Cleaned up + flist man page. + +Fri Jan 10 20:36:33 1997 Richard Coleman + + * Fixed flist. Changed the profile component `Folder-Order' + to `Flist-Order. Added option `-sequence' to flist, so + you can specify the name of the sequence to search for. + +Thu Jan 9 00:20:48 1997 Richard Coleman + + * A few minor portability cleanups. Changed to use PATH_MAX + rather than MAXPATHLEN. Don't assume ospeed variable exists + in termsbr.c. Removed some conflicting prototypes. + +Wed Jan 8 11:05:02 1997 Richard Coleman + + * Add configure test to check if tgetent will accept NULL + and allocate its own buffer. Borrowed from zsh. + + * Changed libpath to etcpath. + +Mon Jan 6 04:15:35 1997 Richard Coleman + + * Cleaned up source code and Makefiles, so that if your `make' + supports the VPATH option, you can build nmh in a different + directory from where the source code is located. + +Fri Jan 3 05:05:18 1997 Richard Coleman + + * Released nmh-0.02. + +Wed Jan 1 17:41:52 1997 Richard Coleman + + * Split mhook man page into man pages for rcvdist, rcvpack, + and rcvtty. + +Tue Dec 31 03:07:48 1996 Richard Coleman + + * Changed code to use strerror, rather than using sys_errlist + and sys_nerr directly. + +Mon Dec 30 02:15:25 1996 Richard Coleman + + * -compat switch from install-mh removed. + + * Changed the default POP port from "pop" to "pop3". + +Sat Dec 28 13:25:05 1996 Richard Coleman + + * Changed mhn_defaults to mhn.defaults. Changed create_mhn_defaults + (again) to mhn.defaults.sh. Changed find_program (again) to + mhn.find.sh. mhn.defaults.sh now takes the search path + as an argument. Default search path is now specified in Makefile + rather than in script. + +Fri Dec 27 16:34:01 1996 Richard Coleman + + * Changed mtstailor file to mts.conf. Updated man pages. + + * Changed si_value to si_val in mhn.c, since it conflicts with + macro defined on Solaris. + +Thu Dec 26 02:50:15 1996 Richard Coleman + + * Added --enable-nmh-mhe (and --disable-nmh-mhe) to enable/disable + support for Emacs front-end mhe. It is on by default. + + * Added the following configure options: --enable-nmh-pop to + enable client side pop support, --enable-nmh-smtp to enable + SMTP support. Client-side pop support now compiles. Man + pages for inc, msgchk, mh-chart now correctly added pop + options if enabled. + +Tue Dec 24 14:33:20 1996 Richard Coleman + + * Added configure test for bug in C libraries where linker + can't find ruserpass, but can find _ruserpass. + + * Fixed configure test so that termcap variable ospeed is + correctly found. + +Mon Dec 23 19:40:17 1996 Richard Coleman + + * Source files converted to ANSI C. + + * md5 now compiled separately rather than being included + in mhn.c. Changed md5 to use memset and memcpy. + +Fri Dec 20 02:29:37 1996 Richard Coleman + + * Collected the error routines adios, advise, admonish, and advertise + into one file (error.c), and did some rearranging of the code. + +Thu Dec 19 19:05:29 1996 Richard Coleman + + * Added awk script sigmsg.awk (originally written by + Geoff Wing for zsh) to + automatically generate signal messages for pidstatus.c. + Added files sbr/signals.c, h/signals.h. Code now uses + sigprocmask to block signals (if available). Code now uses + signal blocking on non-BSD machines. + +Wed Dec 18 01:55:17 1996 Richard Coleman + + * Add configure check for ATTVIBUG. From Soren's mh autoconf work. + + * Released nmh-0.01. + + * Added configure code to check for type of signals functions + you have (POSIX or BSD style signals). Added function + SIGPROCMASK to simulate sigprocmask on machines that don't + have POSIX signals. + +Fri Dec 13 19:40:48 1996 Richard Coleman + + * Added -version switch to all commands. Also added to + their man pages. + +Mon Dec 9 16:36:54 1996 Richard Coleman + + * Renamed uip/trmsbr.c to termsbr.c and changed it to use + POSIX termios.h style functions if present. + +Tue Dec 3 16:18:39 1996 Richard Coleman + + * Changed support/general/bootmhn.sh to output new mhn_defaults + file to standard output by default (makes it easier for testing). + Changed name of script to create_mhn_defaults. Changed bootmhn.findit + script to find_program. + +Sun Dec 1 10:00:00 1996 Richard Coleman + + * Added patch to uip/folder.c from exmh distribution to + speed up -recurse option. + + * Added flist command from exmh distribution. It doesn't work + yet, but it compiles :-) + + * Changed default location for install to + /usr/local/nmh/{bin,etc,lib,man}. Split files so that format + and configuration files go in nmh/etc, and support binaries go + in nmh/lib. Of course, all this can now be changed in the top + level Makefile. + + * Started with mh-6.8.3 as based and converted to autoconf. + Rewrote all the Makefiles. Currently only works with sendmail/smtp. + Pop support and plenty of other things, are now broken. diff --git a/docs/MACHINES b/docs/MACHINES new file mode 100644 index 0000000..df884bb --- /dev/null +++ b/docs/MACHINES @@ -0,0 +1,123 @@ +# +# MACHINE -- operating system specific information +# +# $Id$ +# + +-------------------------------------- + +FreeBSD: +OpenBSD: +NetBSD: + +Some BSD4.4 machines have problems when running nmh's configure script. +They will be unable to find the location of vi and sendmail. This is +due to POSIX features (breakage?) in the shell sh. The solution is to +run the configure script under the shell `bash' + +bash configure + +-------------------------------------- +Mac OS X/Rhapsody 5: + +Version 5.3 at least has the same sh/bash bug as the *BSD systems +above. This appears to be fixed in 5.5. + +Will not compile correctly unless you configure with the --enable-debug +option. It appears to find conflicts in the headers only when debugging +is disabled. With debugging enabled, it compiles and runs happily. + +-------------------------------------- + +HPUX: + +Lots of problems have been reported with using HPUX `cc'. In particular, +problems with `scan' giving incorrect dates (everything is 01/00). +It is highly recommended that you use `gcc' instead. + +Also, new versions of HPUX (10.20?) will core dump in `scan' because +of some workaround code in zotnet/tws/lexstring.c. This workaround is +needed for older versions of HPUX, but causes problems on newer versions. +The solution is the added the line + +#undef hpux + +after line 15 of the file zotnet/tws/lexstring.c. + +-------------------------------------- + +Irix (SGI): + +Irix make is notoriously buggy. If you're using it, you should "touch +config.h.in" before configuring to prevent a problem where it tries to +rebuild targets that shouldn't be rebuilt. (Alternately, you can just +use GNU make instead of Irix make.) + +If you are compiling nmh with POP support, then the configuration +process will search for (and find) the Irix version of "ruserpass". +Unfortunately, this version is buggy and causes core dumps. The best +bet is to use the version that comes with nmh. After running configure, +edit the Makefile in the "sbr" directory, and add "ruserpass.o" to the +LIBOBJS line. Then run "make" as normal. + +-------------------------------------- + +Linux: + +*** No longer necessary *** +Make sure you uncomment the Linux section in the config.h file after +running configure. + +*** This test has been updated and should work now *** +The configuration script does a test to discover the functions +sigsetjmp/siglongjmp. Since they are macros on Linux, the configuration +process doesn't find them. After running configure, you should change +the line in config.h to define HAVE_SIGSETJMP. + +*** This test has been updated and should work now *** +For some Linux distributions, the configure script doesn't find the +ndbm/gdbm library (dbm_open, dbm_close). In this case, you should try to +configure nmh like this: + + LIBS=-lgdbm ./configure [configure options] + +The configuration script does a test to discover if your vi is broken +(if it reports non-zero exit codes on certain pseudo-errors). This test +will hang if the program `ex' on your system is a link to the vi clone +`vile'. The workaround is to replace the command ex as a link to another +vi clone such as nvi or elvis. + +-------------------------------------- + +SCO: + +*** currently handled by config.guess *** +Make sure you uncomment the SCO section in the config.h file after +running configure. + +-------------------------------------- + +Solaris: + +With --enable-debug you'll see a lot of warnings. This is even worse +when compiling using the Sun Workshop compiler since it issues a +warning for every instance of a problem instead of summarizing them. +The main one concerns arrays with an index of type char. This is ok. +The array itself is a hash of chars, so the array size and the type +match. There isn't another safe and portable way to do this at the +moment. An explicit cast would get rid of the warnings, but I think +it's better to leave it complaining for now until we come up with +a better solution. The whole thing is probablly going to be chucked +with UTC-8 support anyway. + +Other than the warnings, it builds ok. + +-------------------------------------- + +SunOS 4.1.1/4.1.3/4.1.4: + +You can't use the C compiler that comes with SunOS 4 since +it isn't ANSI C. But nmh builds just fine with gcc. With +--enable-debug you will see a lot of warnings. + +-------------------------------------- diff --git a/docs/MAILING-LISTS b/docs/MAILING-LISTS new file mode 100644 index 0000000..afbbe01 --- /dev/null +++ b/docs/MAILING-LISTS @@ -0,0 +1,35 @@ +# +# $Id$ +# + +There are currently three mailing lists, related to nmh. + +nmh-bugs@mhost.com +------------------ +This an open-submission list for reporting bugs. It is moderated to +prevent being spammed. Any nmh-related mail is approved. + +nmh-announce@mhost.com +---------------------- +This is a very low-traffic mailing list for announcing new releases, +patches, and important events related to nmh. + +nmh-workers@mhost.com +--------------------- +This is the main list for discussing work on nmh. Both of the above +mailing lists are forwarded to this one. + +mail archives +------------- +The mail archives are only available to people subscribed to the +mailing list. This restriction is in place to prevent harvesting of +email addresses by spammers. To access the archives, you need to send +mail to nmh-workers-request with an archive access command. You can +get a current list of commands the archive server understands by +sending a message to nmh-workers-request@mhost.com with the subject +"archive help". + +Of interest in the archive are the directories "latest" which contains +everything since the nmh-workers mailing list has been hosted on +mhost.com, and "old-list" which contians all the mail from when the +list was formerly hosted at math.gatech.edu. diff --git a/docs/README.about b/docs/README.about new file mode 100644 index 0000000..e755961 --- /dev/null +++ b/docs/README.about @@ -0,0 +1,58 @@ +# +# README -- I love README files. +# +# $Id$ +# + +----------- +what is it? +----------- +nmh (new MH) is an electronic mail handling system. It was +originally based on the package MH-6.8.3, and is intended to be +a (mostly) compatible drop-in replacement for MH. + +Although development of nmh is ongoing, it appears to be generally +stable and is in current use. But it is possible that we may +break things as changes are made. + +-------------- +installing nmh +-------------- +To install nmh, check the INSTALL and MACHINES files. If you have +previously used MH, check the file DIFFERENCES for a list of the +differences between nmh and MH. + +-------------------------------- +ftp and web sites, mailing lists +-------------------------------- +To find out about the mailing lists, ftp sites, and web page +for nmh, check the FAQ included in this distribution. + +--------------- +nmh maintenance +--------------- +nmh is currently being developed and maintained by a loosely organized +group of volunteers. Please send bug reports and suggestions to +nmh-bugs@mhost.com. This list is moderated (to prevent spamming) but +allows submissions from anyone. General discussion of the development +work is available by subscribing to the nmh development mailing list +at nmh-workers@mhost.com. Note that you can only post to this list if +you are subscribed as well. To subscribe, send a message to +nmh-workers-request@mhost.com with "subscribe" in the subject. You do +not need to provide anything in the message body. + +---------------- +acknowledgments +---------------- +The original MH system was developed by the RAND Corporation and the +University of California. + +nmh was started by Richard Coleman (coleman@math.gatech.edu) after +development on MH mostly stopped. He did the original autoconfiscation +and most of the other work up until version 1.0. + +nmh uses (v)snprintf code from the Apache web server, so we need to +make the following acknowlegement: + +This product includes software developed by the Apache Group +for use in the Apache HTTP server project (http://www.apache.org/). diff --git a/docs/README.developers b/docs/README.developers new file mode 100644 index 0000000..4437340 --- /dev/null +++ b/docs/README.developers @@ -0,0 +1,172 @@ +# +# README.developers +# +# $Id$ +# + +This file is intended to provide a few tips for anyone doing development on nmh. +Developers who learn things "the hard way" about the nmh codebase (as opposed to +local info best encoded in a comment) are encouraged to share their wisdom here. + +The topics are organized alphabetically. + + +-------------- +autoconf files +-------------- + +If you wish to change the `configure' script or its related files, you'll need +to first install GNU m4, available from and then +GNU autoconf (). + +Most of the configure-related files are automatically generated. The only files +you should need to manually edit are acconfig.h and configure.in. Don't, for +instance, edit config.h.in. Though it is an input file from the point of view +of the users (and the configure script) it is an output file from the point of +view of the developers (and the autoconf script). + +If you do change acconfig.h or configure.in and want to `cvs commit' them, be +sure to regenerate the output files and commit them as well. The easiest way to +regenerate the files is to simply run `make' -- it'll do the necessary calls of +autoconf and autoheader and will do a `./config.status --recheck', which will +exercise your new configure script. + +When you commit the configure-related files, it's very important to commit them +in the right order. The timestamps on the files in the CVS archive are based on +the current time at the moment they were committed -- the timestamps from the +local files you commit are not copied over. If you commit the files in the +wrong order, you'll cause unnecessary calls of `autoconf' to occur when people +try to `make' their copies of the latest CVS source. These people may be +end-users who don't have any interest in changing the configure-related files +and don't have autoconf installed. They'll be unable to make without playing +around with `touch'. + +The correct order to commit the configure-related files is: + + % cvs commit acconfig.h config.h.in configure.in configure stamp-h.in + +If you haven't changed all of those files, just commit the rest in the stated +order (e.g. cvs commit acconfig.h config.h.in stamp-h.in). + + +------------------- +directory structure +------------------- + +Following is a list of nmh's directories along with a brief description of the +purpose of each one. Meanings are given for the abbreviations, but note that +these meanings are just informed guesses as to what the MH developers were +thinking. + +./ + The top-level directory. Contains files like README and INSTALL. + +config/ + Contains utility files for the `configure' process. Ordinarily nothing in + here needs to be messed with. + +etc/ + Contains files, file templates, and scripts to generate files that will be + installed in the ${prefix}/etc directory. Stuff like replcomps. + +h/ + Most of nmh's header (.h) files are kept not in the individual source + directories, but in this central location. + +man/ + Contains all the input files that are processed to generate nmh's manual + pages. + +mts/ + "mts" stands for "Message Transfer Service". Source files specific to the + different MTSs go in the subdirectories. + +mts/mmdf/ + "mmdf" stands for "Multichannel Memorandum Distribution Facility". It is an + alternative to sendmail used primarily on SCO UNIX. + +mts/sendmail/ + When nmh is configured --with-mts=sendmail, the files in this directory are + used. + +mts/smtp/ + When nmh is configured to just talk to an SMTP server over TCP/IP, the + source in this directory is compiled. + +sbr/ + "sbr" stands for "subroutine(s)". For the most part, each source file in + this directory contains a single function with the same name as the source + file. These functions are of general use and are called from throughout + nmh. + +uip/ + "uip" stands for "User Interface Programs". Most nmh commands have a file + in this directory named .c containing the code for that command + (e.g. repl.c). In some cases there is also an auxiliary file called + sbr.c which contains additional subroutines called from .c + (which would contain not much else besides main()). + +zotnet/ + Files in this hierarchy were either written by or moved here by UCI + (University of California, Irvine) after they took over MH from the Rand + Corporation. "Zot!" is the sound effect made by the anteater in the "B.C." + comic strip when its tongue lashes out at ants. The anteater is UCI's + official mascot. Not sure whether UCInet was once called ZotNet... + +zotnet/bboards/ + UCI added Bulletin Board functionality to MH with the `bbc' command. This + functionality has been removed from nmh but apparently files in this + directory are still needed for other purposes. + +zotnet/mf/ + "mf" stands for "Mail Filter". The filtering in this case apparently refers + to translation between different address and mailbox formats. + +zotnet/mts/ + MTS code not specific to any single MTS apparently goes here. + +zotnet/tws/ + No idea what "tws" stands for, other than 't' almost certainly standing for + "time". Date and time manipulation routines go here. + + +------------- +releasing nmh +------------- + +To make a public release of nmh (we'll use version 1.0.4 and my mhost.com +account, danh, as examples here): + +1. % echo 1.0.4 > VERSION + +2. Put a comment like "Released nmh-1.0.4." in the ChangeLog. + +3. % cvs commit ChangeLog VERSION + +4. % cvs tag nmh-1_0_4 + (cvs treats dots specially, so underscores are substituted here.) + +5. % make nmhdist + +6. Preferably make an MD5 hash and/or a PGP signature of nmh-1.0.4.tar.gz. + +7. Preferably test out the tarball, making sure you can uncompress and untar it, + and configure, make, install, and use nmh from it. + +8. % scp -p nmh-1.0.4.tar.gz* your-uid@mhost.com:/home/ftp/pub/nmh + +9. Send an announcement to exmh-users@redhat.com, exmh-workers@redhat.com, + mh-users@ics.uci.edu, and nmh-announce@mhost.com. If the release fixes + significant security holes, also send an announcement to + bugtraq@securityfocus.com. None of these lists require you to be subscribed + to post. Note that you don't need to post separately to comp.mail.mh, as the + mh-users mailing list is apparently bidirectionally gatewayed to it. + + Preferably, the announcement should contain the MD5 hash generated above, and + should be PGP-signed. It should include the FTP URL for the tarball as well + as the URL of the website. It should contain a brief summary of visible + changes, as well as the URL of the cvsweb diff page that would show a + detailed list of changes. The changes between 1.0.3 and 1.0.4 would be shown + by: + + http://www.mhost.com/cgi-bin/cvsweb/nmh/ChangeLog?r1=1.40&r2=1.71 -- 1.7.10.4