mmh
23 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
level.

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

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

23 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

24 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

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

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

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

24 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 mhost.com account, danh, as examples here" make no sense,
though.

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

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

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

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

24 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 <doug@mhost.com>

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

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

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

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

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

24 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/

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

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

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

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

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

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

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

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

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

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

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

24 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 Makefile.in.

* Released nmh-1.0.4.

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

24 years agoApplied Brian Campbell <bacam@tardis.ed.ac.uk>'s mhn.defaults.sh patch:
Dan Harkless [Wed, 12 Apr 2000 00:25:23 +0000 (00:25 +0000)]
Applied Brian Campbell <bacam@tardis.ed.ac.uk>'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.

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

24 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'

24 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 <ftp://ftp.ics.uci.edu/pub/mh>.
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 "<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.

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

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

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

24 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.  ;^>

24 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

24 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
config.h.in.  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 config.h.in from that.

24 years agowesley.craig@umich.edu did not document his previous KPOP patch, so I did so,
Dan Harkless [Fri, 17 Mar 2000 20:11:03 +0000 (20:11 +0000)]
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.

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

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

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

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

24 years agoAdded missing dependency in zotnet/tws/Makefile.in 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/Makefile.in for dtimep.c: dtimep.c-lexed.

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

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

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

Added scan.MMDDYY and scan.YYYYMMDD format files.

24 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 <simonb@thistledown.com.au>'s --with-smtpservers patch:

    Here's a patch that allows you to add

    --with-smtpservers=<some.host.name>

    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.

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

24 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
$USERNAME_EXTENSION was "-nmh").

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

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

24 years agoApplied Sullivan N. Beck <sbeck@cise.ufl.edu>'s mhshow-suffix patch:
Dan Harkless [Tue, 14 Mar 2000 02:29:26 +0000 (02:29 +0000)]
Applied Sullivan N. Beck <sbeck@cise.ufl.edu>'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".

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

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

24 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.  ;^>

24 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
<rickert@cs.niu.edu>.  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.

24 years agoOops. You can't just change comments in configure.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 configure.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.

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

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

24 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 configure.in
..." and that apparently gives configure.in 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...

24 years agoChanged "echo > stamp-h.in" in Makefile.in to "date > stamp-h.in" so that
Dan Harkless [Tue, 29 Feb 2000 05:59:16 +0000 (05:59 +0000)]
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.

24 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 <pgf-spam@foxharp.boston.ma.us>'s scansbr.c patch, posted to
comp.mail.mh, which he says prevents loss of mail when inc'ing into a full
filesystem.

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

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

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

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

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

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

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

  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 inc.man and msgchk.man to document Wesley's new -kpop.

24 years agoAdded check for lynx to write mhshow-show-text/html line in mhn.defaults.sh.
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 mhn.defaults.sh.

24 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 mhn.defaults.sh
    danh@mhost.com'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

24 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 mhn.defaults.sh that
were missing them.

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

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

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

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

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

24 years agoExpanded the mention of the $SIGNATURE environment variable to talk about the
Dan Harkless [Wed, 26 Jan 2000 10:14:14 +0000 (10:14 +0000)]
Expanded the mention of the $SIGNATURE environment variable to talk about the
three different ways to override "From:" header construction.  Also added
mh-tailor(5) to the "SEE ALSO" section.

24 years agoJust added a comment explaining that akvalue() does mh alias substitution.
Dan Harkless [Wed, 26 Jan 2000 09:27:59 +0000 (09:27 +0000)]
Just added a comment explaining that akvalue() does mh alias substitution.

24 years agoI had my envelope-From:-setting in the wrong place in the code, before alias
Dan Harkless [Wed, 26 Jan 2000 09:26:23 +0000 (09:26 +0000)]
I had my envelope-From:-setting in the wrong place in the code, before alias
processing was done.  Put it in the right place, and properly implemented
Resent-From:-handling, which I had neglected before.

24 years agoAdded a comment bemoaning the lack of aliasing on the From: header and
Dan Harkless [Wed, 26 Jan 2000 09:24:15 +0000 (09:24 +0000)]
Added a comment bemoaning the lack of aliasing on the From: header and
explaining why I wasn't going to bother implementing my new draft-From:-based
email address masquerading right now.

24 years agoDoug's portability fix of my setgid inc autodetection had a caching bug -- if
Dan Harkless [Wed, 26 Jan 2000 06:51:50 +0000 (06:51 +0000)]
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
fail on OSes where inc needs to be setgid.

Implemented a new kind of email address masquerading.  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:".

24 years agoI'm surprised this didn't hit anyone sooner. Doug's portability fix of my
Dan Harkless [Wed, 26 Jan 2000 06:39:49 +0000 (06:39 +0000)]
I'm surprised this didn't hit anyone sooner.  Doug's portability fix of my
setgid inc autodetection didn't do its caching properly.  It cached the variable
$nmh_cv_ls_mail_grp (previously $nmh_group_mailspool), but did substitution on
$MAIL_SPOOL_GRP (previously $MAILGROUP) without setting the latter to the
former.  That meant that when re-running configure, $MAIL_SPOOL_GRP would be
NULL, so the $(MAIL_SPOOL_GRP) Make variable would be NULL, and installation
would fail with the error "install:  2755 does not exist" (since the argument to
-g was missing).

24 years agoImplemented a new type of username masquerading, which is also activated by
Dan Harkless [Wed, 26 Jan 2000 05:40:30 +0000 (05:40 +0000)]
Implemented a new type of username masquerading, which is also activated by
setting mmailid to non-zero in mts.conf.  The new type is based on the From:
header in the message draft rather than the GECOS field of the passwd file like
the old type.

With mmailid turned off, when a user specifies a custom From: header in a draft,
it'll be used, but the user's real address will be revealed in the SMTP envelope
From: and in the Sender: header.  With mmailid on, this revelation is disabled.

Also copied to here my new comment from mh.h explaining (if I understand it
correctly) the functionality of struct swit's minchars field.  Also, changed the
minchars for "help" from 4 to 0.  It doesn't make sense to use a positive
integer that's the exact length of the option.  That'll make it print out like
"-(help)".  The parentheses are supposed to go around the minimum part of the
option you need to specify when abbreviating it.  Perhaps someone thought it
would be cute to put "help" in parentheses to imply that you know about it
already as you just specified it be seeing the current output, but I think this
"overloading" of the meaning of the parentheses is awkward.  I need to go around
and change "help" to 0 everywhere, but it's getting too late to do it tonight.

Also added some other explanatory comments to existing code.

24 years agoUpdated to reflect that there are now two types of username masquerading
Dan Harkless [Wed, 26 Jan 2000 05:28:33 +0000 (05:28 +0000)]
Updated to reflect that there are now two types of username masquerading
(GECOS-based, the old one, and draft-From:-based, the new one).  Also clarified
existing wording.

24 years agoDocumented the minchars field of struct swit to the best of my understanding.
Dan Harkless [Wed, 26 Jan 2000 05:03:07 +0000 (05:03 +0000)]
Documented the minchars field of struct swit to the best of my understanding.

24 years agoModified the mmailid comment to reflect that there are now two types of
Dan Harkless [Wed, 26 Jan 2000 05:01:06 +0000 (05:01 +0000)]
Modified the mmailid comment to reflect that there are now two types of
masquerading (wouldn't want sysadmins to not realize that by allowing one,
they're allowing the other).  I also prefer my new wording of "allow" vs. the
old "turn on" because the latter implied that masquerading would take effect
just by setting that variable (not the case unless /etc/passwd had been
previously modified to have the <fakeusername>s).

24 years agoWhoever changed all the references to nmh-workers@math.gatech.edu to
Dan Harkless [Wed, 26 Jan 2000 04:57:57 +0000 (04:57 +0000)]
Whoever changed all the references to nmh-workers@math.gatech.edu to
nmh-workers@mhost.com missed this file.

24 years agoChanged Mmailids to an extern so that we can access it from post.c to see if we
Dan Harkless [Wed, 26 Jan 2000 04:54:30 +0000 (04:54 +0000)]
Changed Mmailids to an extern so that we can access it from post.c to see if we
should do the new draft-From:-based masquerading.  Also clarified some comments
now that there are two different types of masquerading.

24 years agoJust clarified a couple of points in my last change description.
Dan Harkless [Tue, 25 Jan 2000 21:06:09 +0000 (21:06 +0000)]
Just clarified a couple of points in my last change description.

24 years agoThe prototype I gave for initgroups() which was documented in the AIX 4.1 info
Dan Harkless [Tue, 25 Jan 2000 07:45:10 +0000 (07:45 +0000)]
The prototype I gave for initgroups() which was documented in the AIX 4.1 info
page conflicted with the real one that comes from grp.h on Solaris 2.6.
Adjusted it so the local prototype is correct on both (hopefully all)
platforms.  Also added an include of <unistd.h>, which is where initgroups()
lives on HP-UX 10.20.

24 years agoI kept going back and forth checking in new pointless revisions of
Dan Harkless [Tue, 25 Jan 2000 07:10:25 +0000 (07:10 +0000)]
I kept going back and forth checking in new pointless revisions of
configure[.in], but it now looks like the problem was that stamp-h.in was older
than configure.in (or maybe there were two problems).  Hopefully this'll get rid
of the needless auto* calls.

24 years agoShoot. Apparently it gets the timestamp from the check-in time rather than
Dan Harkless [Tue, 25 Jan 2000 06:56:25 +0000 (06:56 +0000)]
Shoot.  Apparently it gets the timestamp from the check-in time rather than
preserving the actual timestamp on the file when you check it in, so the
timestamp was the same for configure.in and configure, so the Makefile was doing
an autoconf just in case.  This time I'm checking in configure.in first and
configure at least a second later.  What a pain.

24 years agoAccidentally checked in configure with older date than configure.in, but I
Dan Harkless [Tue, 25 Jan 2000 06:46:13 +0000 (06:46 +0000)]
Accidentally checked in configure with older date than configure.in, but I
hadn't made changes to configure.in that would result in a different configure,
so I can't check one in with the right timestamp.  Therefore, I made a
meaningless change to configure.in (adding a "dnl" to the end of line that was
like others that had "dnl" at the end but didn't have one itself) and
regenerated configure.

24 years agoThe conditional definition of the "np" variable didn't make any sense. It was
Dan Harkless [Tue, 25 Jan 2000 06:21:38 +0000 (06:21 +0000)]
The conditional definition of the "np" variable didn't make any sense.  It was
only defined if HAVE_GETHOSTBYNAME was defined and only used when
HAVE_GETHOSTBYNAME wasn't defined.  I'm kind of surprised that never blew up
anywhere.  Changed the definition conditional to match the usage conditional.

24 years agoGot rid of the rest of the warnings that I didn't have time for on 1999-07-15
Dan Harkless [Tue, 25 Jan 2000 06:19:51 +0000 (06:19 +0000)]
Got rid of the rest of the 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 the lex output file (at least under AIX 4.1.5 and Solaris 2.6).

24 years agoOn AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
Dan Harkless [Tue, 25 Jan 2000 06:18:54 +0000 (06:18 +0000)]
On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
<stdio.h> or elsewhere.  Apparently it's not officially supported (though it
seems to work perfectly and IBM apparently uses it in internal code).  Anyhow,
if we omit our own snprintf() and vsnprintf() prototypes when we HAVE_SNPRINTF,
we get a billion warnings at compile time.  Use the C preprocessor to preprocess
stdio.h and make sure that there's actually a prototype.  Define
HAVE_SNPRINTF_PROTOTYPE if so, and use that to control our local prototype
definition.

Also, define strcasecmp() and strncasecmp() here all the time since we define
our own versions and always use them.  The only way we could get into trouble
doing this would be if the vendor's versions didn't have the same parameters,
but I don't see that happening.  If we don't define them here, we get warnings
all over the place that default prototypes are being used for 'em, and the
system header to include varies from OS to OS.

24 years agoOn AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
Dan Harkless [Tue, 25 Jan 2000 06:13:38 +0000 (06:13 +0000)]
On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
<stdio.h> or elsewhere.  Apparently it's not officially supported (though it
seems to work perfectly and IBM apparently uses it in internal code).  Anyhow,
if we omit our own snprintf() and vsnprintf() prototypes when we HAVE_SNPRINTF,
we get a billion warnings at compile time.  Use the C preprocessor to preprocess
stdio.h and make sure that there's actually a prototype.  Define
HAVE_SNPRINTF_PROTOTYPE if so, and use that to control our local prototype
definition.