22 years agoUpdated POP capability to include APOP.
Shantonu Sen [Tue, 9 May 2000 06:27:38 +0000 (06:27 +0000)]
Updated POP capability to include APOP.

22 years agoRemoved unnecessary comments, such as "*This warning no longer applies*"
Shantonu Sen [Tue, 9 May 2000 06:16:52 +0000 (06:16 +0000)]
Removed unnecessary comments, such as "*This warning no longer applies*"

22 years agoFix some compile-time warnings.
Shantonu Sen [Tue, 9 May 2000 06:09:05 +0000 (06:09 +0000)]
Fix some compile-time warnings.

22 years agoDoug informed me that the way I had restored the "lost" version histories was
Dan Harkless [Tue, 9 May 2000 04:52:55 +0000 (04:52 +0000)]
Doug informed me that the way I had restored the "lost" version histories was
wrong, because `cvs checkout's of old versions of nmh wouldn't work properly.
It occurs to me that this could be fixed by simply deleting those tags in the
new-location *,v files, but oh well.  I'm putting everything back to the way
Doug originally had it.  To get the old version history for a file that used to
be in the top directory, you'll need to "blindly" do a `cvs log' there (even
though you won't have a local copy of the file in that directory).  `cvs diff'
will no longer be able to diff pre-move versions vs. post-move versions --
you'll have to do a lot of manual gyrations with `cvs checkout' and then use

22 years agoOkay, now that the old revisions have been recreated, deleting the file. The
Dan Harkless [Tue, 9 May 2000 04:08:55 +0000 (04:08 +0000)]
Okay, now that the old revisions have been recreated, deleting the file.  The
new version is in the 'docs' subdirectory.

22 years agoThis is the nmh-1.0.4 version from 2000-03-15 (I see that I was the one that nmh-1_0_4
Dan Harkless [Tue, 9 May 2000 04:07:15 +0000 (04:07 +0000)]
This is the nmh-1.0.4 version from 2000-03-15 (I see that I was the one that
originally made this change).

22 years agoThis is the nmh-1.0.3 version from 2000-01-18 (1.0.2 had no changes). nmh-1_0_3
Dan Harkless [Tue, 9 May 2000 04:05:46 +0000 (04:05 +0000)]
This is the nmh-1.0.3 version from 2000-01-18 (1.0.2 had no changes).

22 years agoThis is the nmh-1.0.1 version from 1999-05-17. nmh-1_0_2
Dan Harkless [Tue, 9 May 2000 04:03:55 +0000 (04:03 +0000)]
This is the nmh-1.0.1 version from 1999-05-17.

22 years agoFor reasons explained better elsewhere (e.g. Attic/README.developers), the nmh-1_0
Dan Harkless [Tue, 9 May 2000 03:58:04 +0000 (03:58 +0000)]
For reasons explained better elsewhere (e.g. Attic/README.developers), the
version history for this file got lost.  Recreating it.  This version is from
1998-05-08 -- it's the original nmh-1.0 version.

22 years agoAfter nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.
Dan Harkless [Tue, 9 May 2000 03:29:37 +0000 (03:29 +0000)]
After nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.

22 years agoOkay. Removing it now. New location is in 'docs' subdirectory.
Dan Harkless [Tue, 9 May 2000 03:27:53 +0000 (03:27 +0000)]
Okay.  Removing it now.  New location is in 'docs' subdirectory.

22 years agoIn the hullaballoo with moving stuff back and forth out of the docs/ directory,
Dan Harkless [Tue, 9 May 2000 03:25:24 +0000 (03:25 +0000)]
In the hullaballoo with moving stuff back and forth out of the docs/ directory,
and trying to figure out the right way to preserve the old version history, this
file's version history prior to the first move into docs/ got wiped.  I
introduced this file into the project after 1.0.3 was released, and was the only
one to modify it until after the 1.0.4 release.  The post-1.0.4 changes have
survived in docs/README.developers, so I just need to check in the 1.0.4 version
and tag it as such, then remove it again, to make a `cvs checkout' of nmh 1.0.4
work again.

22 years agoMan, I'm a retard. Lemme try that again:
Dan Harkless [Tue, 9 May 2000 03:18:50 +0000 (03:18 +0000)]
Man, I'm a retard.  Lemme try that again:

Just a silly note 'cause I'm vain -- below where it currently says:

    Someone ("ssen" -- looks like Doug forgot to update a chroot() passwd file

It originally said " u i d 6 0 0 0 4 " (or a different number), but minus the
spaces.  I guess after Doug added ssen into the chroot() passwd, he did a
search-and-replace for the UID, which changed my comment as well, making it look
like I had no way of determining who ssen was, which is silly.  ;^>

22 years agoJust a silly note 'cause I'm vain --
Dan Harkless [Tue, 9 May 2000 03:12:59 +0000 (03:12 +0000)]
Just a silly note 'cause I'm vain --

22 years agoAfter nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.
Dan Harkless [Tue, 9 May 2000 02:43:54 +0000 (02:43 +0000)]
After nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.

22 years agoAfter nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.
Dan Harkless [Tue, 9 May 2000 02:36:42 +0000 (02:36 +0000)]
After nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.

22 years agoUpdated pop instructions and indicated use of standard "./configure"
Shantonu Sen [Sun, 7 May 2000 06:59:15 +0000 (06:59 +0000)]
Updated pop instructions and indicated use of standard "./configure"
instead of "sh configure"

22 years agoAn nmh-specific getpass, to remove dependency on system
Shantonu Sen [Sun, 7 May 2000 06:16:43 +0000 (06:16 +0000)]
An nmh-specific getpass, to remove dependency on system
getpass()es, which may or may not do what we want (including
flushing input streams, and taking input from stdin in the
absence of a controlling tty).

22 years agoAdded getpass to SRCS and OBJS.
Shantonu Sen [Sun, 7 May 2000 06:14:31 +0000 (06:14 +0000)]
Added getpass to SRCS and OBJS.

22 years agoRemoved "installing nmh" section. Moved its note about the DIFFERENCES file up
Dan Harkless [Sat, 6 May 2000 15:53:40 +0000 (15:53 +0000)]
Removed "installing nmh" section.  Moved its note about the DIFFERENCES file up
next to the other MH discussion.  Changed out-of-date "README" title (should
have been "README.history") to "README.about -- about nmh".  After committing,
I'll rename the file to README.about inside the CVSROOT.

22 years agoRestored lost version histories for those moved files by doing a manual `mv' in
Dan Harkless [Sat, 6 May 2000 15:29:19 +0000 (15:29 +0000)]
Restored lost version histories for those moved files by doing a manual `mv' in
the CVSROOT on mhost.  CVS badly needs a `cvs mv' command so that you can move
files (without having physical access to the CVSROOT) without losing versioning.
Put MACHINES back at the top level as it needs to be read before building.
Fixed DIST variable in {.,docs}/ to reflect that and to add missing
entry for "INSTALL" file.

22 years agoFixed DIST targets to reflect that INSTALL and MACHINES are back at the top
Dan Harkless [Sat, 6 May 2000 15:05:02 +0000 (15:05 +0000)]
Fixed DIST targets to reflect that INSTALL and MACHINES are back at the top

22 years agoFiles that must be read before building nmh should not go in the docs
Dan Harkless [Sat, 6 May 2000 14:54:25 +0000 (14:54 +0000)]
Files that must be read before building nmh should not go in the docs
directory.  Moved this file back to the top level (and made a couple of
stylistic and grammar tweaks while I was at it).

22 years agoDeleting the versions Doug moved in with `cvs add', erasing the version history,
Dan Harkless [Sat, 6 May 2000 14:19:23 +0000 (14:19 +0000)]
Deleting the versions Doug moved in with `cvs add', erasing the version history,
in preparation for moving the original versions in the cvsroot.

22 years agoreorganized documentation to make it bit neater again
Doug Morris [Sat, 6 May 2000 11:34:02 +0000 (11:34 +0000)]
reorganized documentation to make it bit neater again

22 years agoCorrected status printout when kpop is enabled
uid1005 [Fri, 21 Apr 2000 17:36:37 +0000 (17:36 +0000)]
Corrected status printout when kpop is enabled

22 years agoOne final tweak to the configure --help output for --enable-masquerade.
Dan Harkless [Tue, 18 Apr 2000 00:17:50 +0000 (00:17 +0000)]
One final tweak to the configure --help output for --enable-masquerade.

22 years agoAPOP supprt: Added info to ChangLog.
Shantonu Sen [Mon, 17 Apr 2000 22:49:39 +0000 (22:49 +0000)]
APOP supprt: Added info to ChangLog.

22 years agoThe syntax I gave in the --help output for --enable-masquerade incorrectly
Dan Harkless [Mon, 17 Apr 2000 22:09:00 +0000 (22:09 +0000)]
The syntax I gave in the --help output for --enable-masquerade incorrectly
implied that the earlier options were prerequisites for the later options
(pointed out by Scott Blachowicz).  No compact, non-confusing way to specify the
real syntax that I can see, so I'll just remove the []s and leave the explaining
about it being okay to specify a subset to the INSTALL file.

Also added a TODO item to put in proper parsing of the masquerade: line and/or
--enable-masquerade so if you misspell an option you find out about it, rather
than just having it silently fail (this weakness was currently only documented
in comments in the mts.conf-handling code).

22 years agoSomeone (unfortunately original version history has been lost so I don't know
Dan Harkless [Mon, 17 Apr 2000 22:04:33 +0000 (22:04 +0000)]
Someone (unfortunately original version history has been lost so I don't know
who) changed "danh" to "your-id".  That makes my introductory comment "we'll use
version 1.0.4 and my account, danh, as examples here" make no sense,

If danh is going to be "parameterized", then 1.0.4 should be too.  Doesn't make
sense to parameterize one of the changing items and not the other one.  If it's
going to be done, danh should be changed to YOUR-ID or something and 1.0.4 (and
1_0_4) should be changed to X.Y.Z (and X_Y_Z).  I just thought it'd be clearer
to use real values and disclaim that fact up front.  Anyhow, putting danh back
until such time as someone wants to parameterize both items (and change the
introductory text appropriately).

22 years agoI had left out aclocal.m4 on the "use this order" line as I didn't think it'd
Dan Harkless [Mon, 17 Apr 2000 21:25:23 +0000 (21:25 +0000)]
I had left out aclocal.m4 on the "use this order" line as I didn't think it'd
ever need to be changed.  Someone ("ssen" -- looks like Doug forgot to update
a chroot() passwd file again) added it, but in a separate sentence.  That
doesn't really make sense -- added it to the main sentence.

Also changed my note that none of the mailing lists require you to be subscribed
to post -- not true.  As I originally thought, the exmh ones do require that --
the bounce messages were just slow in coming.

22 years agoUndeleted all the stuff Doug deleted at the top level for now. I think it's bad
Dan Harkless [Mon, 17 Apr 2000 19:02:11 +0000 (19:02 +0000)]
Undeleted all the stuff Doug deleted at the top level for now.  I think it's bad
to lose the CVS revision history, and I don't agree that all of these files
should go in the docs/ directory.  Unfortunately Doug made modifications to FAQ
and README.developers after moving them, and I didn't want to lose his changes,
so I just mv'd the ones in the new directory to the top level.  This lost the
old version history for those two files -- I know there wasn't much to lose for
README.developers (I originated the file and was the only one to make
modifications to it until Doug's recent change), but I have no idea what
information was lost in the FAQ's version history.  The right thing to do on
those two files probably would have been to re-make Doug's changes in the
undeleted old versions and credit them to him in the CVS log.

22 years agoPut a note saying that the paths this file refers to (stuff in docs/) are
Dan Harkless [Mon, 17 Apr 2000 18:48:03 +0000 (18:48 +0000)]
Put a note saying that the paths this file refers to (stuff in docs/) are
currently wrong.

22 years agoUndeleting everything at the top level for now. Doug's comment:
Dan Harkless [Mon, 17 Apr 2000 18:36:59 +0000 (18:36 +0000)]
Undeleting everything at the top level for now.  Doug's comment:

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.

will be lost, but he can put back a modified version when we agree on what
should really go in docs/.

22 years agoUndeleting everything at the top level for now.
Dan Harkless [Mon, 17 Apr 2000 18:34:40 +0000 (18:34 +0000)]
Undeleting everything at the top level for now.

22 years agoAdded note that user questions are acceptable on nmh-workers.
Dan Harkless [Mon, 17 Apr 2000 16:56:57 +0000 (16:56 +0000)]
Added note that user questions are acceptable on nmh-workers.

22 years agoAdded that you should check in aclocal.m4 after acconfig.h, if you change it.
Shantonu Sen [Mon, 17 Apr 2000 05:29:49 +0000 (05:29 +0000)]
Added that you should check in aclocal.m4 after acconfig.h, if you change it.

22 years agoAPOP support: Making the apop option appear after pop in ./configure --help
Shantonu Sen [Mon, 17 Apr 2000 05:25:18 +0000 (05:25 +0000)]
APOP support: Making the apop option appear after pop in ./configure --help
   and committing in the right order to avoid unnecessary autoconfing.

22 years agoDon't try to figure out ruserpass - just use version from sbr/
Shantonu Sen [Mon, 17 Apr 2000 05:12:14 +0000 (05:12 +0000)]
Don't try to figure out ruserpass - just use version from sbr/

22 years agoAPOP support: Use the ruserpass function in this directory for
Shantonu Sen [Mon, 17 Apr 2000 05:09:46 +0000 (05:09 +0000)]
APOP support: Use the ruserpass function in this directory for
    all password prompts, instead of using system functions.

22 years agoAPOP support: If APOP is enabled, build it into inc and msgchk
Shantonu Sen [Mon, 17 Apr 2000 05:08:32 +0000 (05:08 +0000)]
APOP support: If APOP is enabled, build it into inc and msgchk
    using $(APOPLIB).

22 years agoAPOP support: Making APOP a ./configure option with --enable-apop,
Shantonu Sen [Mon, 17 Apr 2000 05:07:03 +0000 (05:07 +0000)]
APOP support: Making APOP a ./configure option with --enable-apop,
   and giving more information about the types of POP support
   in the configuration summary.

22 years agoAdding APOP #defines
Shantonu Sen [Mon, 17 Apr 2000 05:04:05 +0000 (05:04 +0000)]
Adding APOP #defines

22 years agoChanged some string terminations from NULL to \0.
Shantonu Sen [Sun, 16 Apr 2000 13:28:12 +0000 (13:28 +0000)]
Changed some string terminations from NULL to \0.

22 years agoMoved most of the documentation into a new "docs" subdirectory. Added a MAILING-LISTS...
Doug Morris [Sat, 15 Apr 2000 04:28:27 +0000 (04:28 +0000)]
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.

22 years agoAdded a "releasing nmh" section to README.developers, while the process was
Dan Harkless [Sat, 15 Apr 2000 02:00:43 +0000 (02:00 +0000)]
Added a "releasing nmh" section to README.developers, while the process was
fresh in my mind.

22 years agoOkay, got that tag stuff straightened out. Now upping the version to 1.0.4+dev.
Dan Harkless [Fri, 14 Apr 2000 21:38:37 +0000 (21:38 +0000)]
Okay, got that tag stuff straightened out.  Now upping the version to 1.0.4+dev.

22 years agoOops. Had a duplicate entry.
Dan Harkless [Fri, 14 Apr 2000 21:26:56 +0000 (21:26 +0000)]
Oops.  Had a duplicate entry.

22 years agoOops. Didn't do a `cvs rtag` before changing the version to 1.0.4+dev. Putting
Dan Harkless [Fri, 14 Apr 2000 21:05:34 +0000 (21:05 +0000)]
Oops.  Didn't do a `cvs rtag` before changing the version to 1.0.4+dev.  Putting
it back.

22 years agoUpped the version number to 1.0.4+dev.
Dan Harkless [Fri, 14 Apr 2000 20:47:32 +0000 (20:47 +0000)]
Upped the version number to 1.0.4+dev.

22 years ago* Added new files README.developers, ChangeLog_MH-3_to_MH-6.6, and
Dan Harkless [Fri, 14 Apr 2000 20:40:31 +0000 (20:40 +0000)]
* 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

* Released nmh-1.0.4.

22 years agoJust reworded the bit about '%s' being safe not to quote (it's only safe not to
Dan Harkless [Wed, 12 Apr 2000 00:54:54 +0000 (00:54 +0000)]
Just reworded the bit about '%s' being safe not to quote (it's only safe not to
quote on the -charset- line).

22 years agoApplied Brian Campbell <>'s patch:
Dan Harkless [Wed, 12 Apr 2000 00:25:23 +0000 (00:25 +0000)]
Applied Brian Campbell <>'s 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.

%s doesn't come from MIME headers, so not quoting it is safe.

22 years agobug fix - prevents core-dumping on scan -format '1'
Doug Morris [Sun, 9 Apr 2000 07:04:24 +0000 (07:04 +0000)]
bug fix - prevents core-dumping on scan -format '1'

22 years agoRichard Coleman threw out a lot of old MH-specific files in nmh. Much of the
Dan Harkless [Fri, 7 Apr 2000 00:42:55 +0000 (00:42 +0000)]
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/  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 "<B>"
and "<U>" tags, and "&lt;" and "&gt;" 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.

22 years agoWhoah, this should have been changed a long time ago. For one thing, Richard
Dan Harkless [Thu, 6 Apr 2000 19:56:35 +0000 (19:56 +0000)]
Whoah, this should have been changed a long time ago.  For one thing, Richard
forgot to update the copyright date when he made modifications in 1999, but more
significantly, this COPYRIGHT notice hasn't been changed since Richard ceded
control of nmh development and it became an open-source project.

Changed the COPYRIGHT notice to a BSD License, with a couple of minor wording
tweaks.  Copyright is assigned to "the authors of nmh", which is anyone who
writes code, whether they have CVS accounts or not.

22 years ago* Add some way to configure whether you prefer to see text/plain or text/html
Dan Harkless [Thu, 6 Apr 2000 00:22:06 +0000 (00:22 +0000)]
* Add some way to configure whether you prefer to see text/plain or text/html
  parts of multipart/alternative messages.

22 years agoApplied Eric Schnoebelen <>'s mhshowsbr.c patch fixing apparent
Dan Harkless [Thu, 6 Apr 2000 00:11:50 +0000 (00:11 +0000)]
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


        (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.

22 years agoTerran Melconian pointed out that my theory as to why -help was printed as
Dan Harkless [Fri, 31 Mar 2000 04:25:26 +0000 (04:25 +0000)]
Terran Melconian pointed out that my theory as to why -help was printed as
"-(help)" in the -help output was probably not the most likely scenario.  Added
his.  ;^>

22 years agoadded Todd Miller's packf patch
Doug Morris [Tue, 28 Mar 2000 14:42:36 +0000 (14:42 +0000)]
added Todd Miller's packf patch

22 years agoWhen I applied Wesley Craig's original KPOP patch, I made a change directly to
Dan Harkless [Fri, 17 Mar 2000 20:19:43 +0000 (20:19 +0000)]
When I applied Wesley Craig's original KPOP patch, I made a change directly to  That's a no-no since that file is automatically generated.  Now
that I've applied Wesley's second patch that makes things work as I had
originally documented, I'm re-making the change here, but this time by properly
modifying acconfig.h and then generating from that.

22 years did not document his previous KPOP patch, so I did so,
Dan Harkless [Fri, 17 Mar 2000 20:11:03 +0000 (20:11 +0000)] 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 and

22 years agoAdded a new README.developers file. From the file:
Dan Harkless [Thu, 16 Mar 2000 02:40:42 +0000 (02:40 +0000)]
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".

22 years agoWhen I added my --enable-masquerade option, you'll note that I didn't make it
Dan Harkless [Wed, 15 Mar 2000 23:37:30 +0000 (23:37 +0000)]
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.

22 years agoWhen I fixed the long-standing makedir() bugs in January, I had the code call
Dan Harkless [Wed, 15 Mar 2000 22:25:16 +0000 (22:25 +0000)]
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 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.

22 years agoAdded:
Dan Harkless [Tue, 14 Mar 2000 21:21:28 +0000 (21:21 +0000)]
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.

22 years agoAdded missing dependency in zotnet/tws/ for dtimep.c: dtimep.c-lexed.
Dan Harkless [Tue, 14 Mar 2000 21:15:55 +0000 (21:15 +0000)]
Added missing dependency in zotnet/tws/ for dtimep.c: dtimep.c-lexed.

22 years agoCreated new dtimep.c-lexed with Simon's change using dtimep.lex lexed on
Dan Harkless [Tue, 14 Mar 2000 21:07:56 +0000 (21:07 +0000)]
Created new dtimep.c-lexed with Simon's change using dtimep.lex lexed on
Solaris 2.6.

Removed my comment about strdup().  The Solaris 2.6 failure was due to
failing to do a make distclean after configuring for Ultrix 4.2A.  I'll
leave the change, though, since it's still a good one (just not worth
reporting in the ChangeLog).

22 years agoChanged strdup() in strdup.c to take a _const_ char*. Don't know why this
Dan Harkless [Tue, 14 Mar 2000 20:50:19 +0000 (20:50 +0000)]
Changed strdup() in strdup.c to take a _const_ char*.  Don't know why this
didn't hit anyone before, but I wasn't able to compile on Solaris 2.6 without
doing this, due to a "previous declaration" error.

22 years agoApplied Simon Burge <>'s dtimep.lex patch:
Dan Harkless [Tue, 14 Mar 2000 20:40:47 +0000 (20:40 +0000)]
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  ...
           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.

Added scan.MMDDYY and scan.YYYYMMDD format files.

22 years ago* Applied, after some finessing,
Dan Harkless [Tue, 14 Mar 2000 09:20:27 +0000 (09:20 +0000)]
* Applied, after some finessing,
Simon Burge <>'s --with-smtpservers patch:

    Here's a patch that allows you to add


    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


    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 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.

22 years agoApplied Simon Burge <>'s dtime.c patch:
Dan Harkless [Tue, 14 Mar 2000 05:24:57 +0000 (05:24 +0000)]
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).

22 years agoModified username_extension masquerading to only use the extended address on
Dan Harkless [Tue, 14 Mar 2000 05:05:49 +0000 (05:05 +0000)]
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

While in there (adrsprintf()), added checking of snprintf()'s return code and
added calls to adios() when things are not kosher.  Also simplfied the really
confusing REALLYDUMB #ifdef'ing, which didn't even jibe with the comment
explaining REALLYDUMB in acconfig.h.  Now adrsprintf() will always return just
the username, even if an explicit domain is passed in (which currently doesn't
happen anywhere in nmh).

22 years agoJust removed the odd space between the "!" and the "/bin/sh". I believe some
Dan Harkless [Tue, 14 Mar 2000 02:39:13 +0000 (02:39 +0000)]
Just removed the odd space between the "!" and the "/bin/sh".  I believe some
OSes might choke on that, and certainly no OS requires it.

22 years agoApplied Sullivan N. Beck <>'s mhshow-suffix patch:
Dan Harkless [Tue, 14 Mar 2000 02:29:26 +0000 (02:29 +0000)]
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 (I believe older versions
of lynx lack that option) and added "mhshow-suffix-text/html: .html".

22 years agoApplied Neil W Rickert <>'s msh.c patch:
Dan Harkless [Mon, 6 Mar 2000 20:19:04 +0000 (20:19 +0000)]
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.

22 years agoChanged the new "plussed_user" option to mts.conf's "masquerade:" to
Dan Harkless [Sat, 4 Mar 2000 00:02:46 +0000 (00:02 +0000)]
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.

22 years agoOops. I was using an older email address for Neil -- now he uses the $USERPLUS
Dan Harkless [Fri, 3 Mar 2000 07:30:31 +0000 (07:30 +0000)]
Oops.  I was using an older email address for Neil -- now he uses the $USERPLUS
feature that I'm crediting him for.  ;^>

22 years agoAdded a new "boolean" type to mh.h and TRUE and FALSE constants.
Dan Harkless [Fri, 3 Mar 2000 07:24:41 +0000 (07:24 +0000)]
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 <user>+<string> will be delivered to <user>.  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.

22 years agoOops. You can't just change comments in, or configure won't be
Dan Harkless [Thu, 2 Mar 2000 08:20:00 +0000 (08:20 +0000)]
Oops.  You can't just change comments in, or configure won't be
modified (it doesn't contain the comments) and you won't be able to commit it,
and then the timestamps'll be messed up for everyone and unnecessary autoconf
calls will occur.  Added some unnecessary (but frequently used in the file)
trailing 'dnl's on some AC_SUBST()s.

22 years agoOops. My last group commit comment failed to mention what I was doing in this
Dan Harkless [Thu, 2 Mar 2000 07:56:00 +0000 (07:56 +0000)]
Oops.  My last group commit comment failed to mention what I was doing in this
file.  I was adding:

* Change all man pages to group all the commandline options together in one
  section with each as a separate mini-heading.  Having to dig through prose to
  find what a particular option does is a pain in the nads.

This time, moved it out of the [POSSIBILITIES] section and put it in the [TODO]
section, as I feel it's very important (and wouldn't be that difficult to do --
somewhat time-consuming, yes, but not difficult).

22 years agoChanged the GECOS-field '&' translation behavior to be controlled by the BSD42
Dan Harkless [Thu, 2 Mar 2000 07:52:47 +0000 (07:52 +0000)]
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.

Also added ULTRIX 4.2A to the list of OSes that have an initgroups() function
but no prototype in the system headers.

22 years agoMade a goofy change so that I could produce a new configure because when I
Dan Harkless [Tue, 29 Feb 2000 06:17:58 +0000 (06:17 +0000)]
Made a goofy change so that I could produce a new configure because when I
checked in the last version I did it with "cvs commit ... configure
..." and that apparently gives a newer timestamp than configure,
which results in spurious autoconf runs when people download the source.  We
need to write a little note to developers somewhere saying what in order you
need to check in those autoconf files and how long you need to wait in between
each one and such...

22 years agoChanged "echo >" in to "date >" so that
Dan Harkless [Tue, 29 Feb 2000 05:59:16 +0000 (05:59 +0000)]
Changed "echo >" in to "date >" so that will be different each time 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.

22 years agoUpped the version number to 1.0.3+dev (ideally this should be done by whoever
Dan Harkless [Tue, 29 Feb 2000 05:16:35 +0000 (05:16 +0000)]
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, which he says prevents loss of mail when inc'ing into a full

22 years ago * Fix security hole in mhshowsbr.c which allowed untrusted shell
Ruud de Rooij [Mon, 28 Feb 2000 17:09:02 +0000 (17:09 +0000)]
* Fix security hole in mhshowsbr.c which allowed untrusted shell
  code to be executed.
* Released nmh 1.0.3.

22 years agoOops. %-escapes on mhstore lines in should not be surrounded by
Dan Harkless [Thu, 10 Feb 2000 18:50:23 +0000 (18:50 +0000)]
Oops.  %-escapes on mhstore lines in 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.

22 years agoRemoved an item that Richard did without removing its TODO, and removed an item
Dan Harkless [Fri, 4 Feb 2000 20:36:43 +0000 (20:36 +0000)]
Removed an item that Richard did without removing its TODO, and removed an item
that was duplicated in two different priority sections.

22 years agoWhoever originally added the -help switch to all the commands got too cute and
Dan Harkless [Fri, 4 Feb 2000 20:34:07 +0000 (20:34 +0000)]
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.  I guess the
idea was to make 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.  It doesn't
make sense to show that you're allowed to "abbreviate" the switch to its entire

22 years agoWhoever originally added the -help switch to all the commands got too cute and
Dan Harkless [Fri, 4 Feb 2000 20:28:23 +0000 (20:28 +0000)]
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.  I guess the
idea was to make 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.  It doesn't
make sense to show that you're allowed to "abbreviate" the switch to its entire

22 years agoModified INSTALL and to reflect the new -kpop feature.
Dan Harkless [Fri, 4 Feb 2000 01:46:29 +0000 (01:46 +0000)]
Modified INSTALL and to reflect the new -kpop feature.

22 years ago* Applied's KPOP patches. According to him:
Dan Harkless [Fri, 4 Feb 2000 01:32:12 +0000 (01:32 +0000)]
* Applied'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.

  One tweak I made to the patch he sent to nmh-workers was to move the
  declaration of his new hp2 variable into the #ifdef KPOP section so you don't
  get an "unused variable" warning when compiling without KPOP.

* Modified and to document Wesley's new -kpop.

22 years agoAdded check for lynx to write mhshow-show-text/html line in
Dan Harkless [Sat, 29 Jan 2000 01:34:20 +0000 (01:34 +0000)]
Added check for lynx to write mhshow-show-text/html line in

22 years agoMade a couple of minor whitespace changes to test if the latest beta version of
Dan Harkless [Fri, 28 Jan 2000 23:29:06 +0000 (23:29 +0000)]
Made a couple of minor whitespace changes to test if the latest beta version of
CVS fixes this bug:

    dilvish-dan> cvs commit ../ChangeLog's password:
    Warning: Remote host denied X11 forwarding, perhaps xauth program could not be run on the server side.
    cvs: lock.c:179: lock_name: Assertion `*short_repos++ == '/'' failed.
    Terminated with fatal signal 6
    cvs commit: saving log message in /tmp/cvslIx_yb

22 years agoAll %-escapes in mhn.defaults that actually expand to something should be
Dan Harkless [Fri, 28 Jan 2000 22:00:33 +0000 (22:00 +0000)]
All %-escapes in mhn.defaults that actually expand to something should be
surrounded by single quotes.  Added quotes to the ones in that
were missing them.

22 years agomakedir() had multiple bugs dating back to MH. It passed an octal constant to
Dan Harkless [Thu, 27 Jan 2000 20:20:01 +0000 (20:20 +0000)]
makedir() had multiple bugs dating back to MH.  It passed an octal constant to
atoi(), which interpreted it as decimal, resulting in directories with no user
read or execute permissions, making nested directory creation fail.  Also, when
creating a nested directory, correct permissions were only set on the inner one.

A second `make install' would always fail because the check for whether
mh_profile.5 existed was written incorrectly.

22 years agoDoug's check for whether mh_profile.5 exists was bad -- it looked in the local
Dan Harkless [Thu, 27 Jan 2000 20:14:58 +0000 (20:14 +0000)]
Doug's check for whether mh_profile.5 exists was bad -- it looked in the local
directory rather than the installation directory, so the check would always
return false and re-installation when mh_profile.5 did exist would bomb out.

22 years agoFixed multiple bugs in makedir(). First off, when creating nested folders, it
Dan Harkless [Thu, 27 Jan 2000 20:12:38 +0000 (20:12 +0000)]
Fixed multiple bugs in makedir().  First off, when creating nested folders, it
only set permissions properly on the innermost one.  Secondly, it passwd an
octal constant to atoi(), which only works on decimal numbers, resulting in
directories with no user read or execute permission, making creation of nested
dirs fail.

Also added a comment wondering why we do special processing when euid != uid.
If no one disagrees with my comments, I'll remove that weird code in the future.

22 years agoDan Winship informed me that the right fix when gcc -Wall complains about char
Dan Harkless [Wed, 26 Jan 2000 21:35:43 +0000 (21:35 +0000)]
Dan Winship informed me that the right fix when gcc -Wall complains about char
indexes to arrays is to cast to unsigned char, not int.  You want to prevent
negative indexes into the array.

22 years agoAdded documentation on both types of masquerading to post's man page.
Dan Harkless [Wed, 26 Jan 2000 10:16:32 +0000 (10:16 +0000)]
Added documentation on both types of masquerading to post's man page.

Also clarified some wording and added a note that the new type of masquerading
has been implemented only for post, not for the undocumented spost backend.