Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 6 14:10:00 2018 -0500

    Updating for 1.7.1 release.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 20 10:57:44 2018 -0500

    Update DATE and VERSION for third release candidate

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 19 21:30:17 2018 -0500

    Fixed mhshow/test-charset to work on all tested platforms.
    
    Restores the functionality of commit f81046da6.  Also, skips the
    last two tests if iconv isn't enabled.  And removes the test
    files if the last test, without iconv_elides_question_marks, behaves
    as expected.  Finally, some comments have been updated.
    
    (cherry picked from commit 8ed8876c673325b1af92d67012dc2e8ae3cf1019)

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 3 08:00:36 2018 -0500

    Removed comment about testing noiconv portion of get_param_value().
    
    I'm not sure if it ever did, but it doesn't seem to now.
    
    (cherry picked from commit 63041ccfe270ccecede25ac4f4c18d71aa43b1a4)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Feb 3 10:49:40 2018 +0000

    test-charset: Fix test when HAVE_ICONV is false.
    
    When the Content-Type's charset parameter's encoding is `invalid', it
    makes no difference whether HAVE_ICONV is defined or not as the
    parameter's value can't be decoded.
    
    (cherry picked from commit d4814561eafc238a9ed2b4fa67ef2755e5e83858)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Jan 25 00:16:15 2018 +0000

    test-charset: Divulge mhshow output if iconv_open(3) doesn't gripe.
    
    Andy Bradford was finding the grep failed, but was left with no
    explanation that's what happened, or what the file that didn't match
    contained.
    
    (cherry picked from commit 695ed941eb3d907a7c2912d9ea8fdad06a3fd0f5)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 12 16:01:08 2018 -0500

    Avoid free() in format engine for now.
    
    This free() call messes up the buffer handling in scansbr.c:scan();
    for now we're going to live with the leak and fix this properly when
    we normalize the format engine's memory handling.
    
    (cherry picked from commit 19c69cf39d0ab9aee0cf45caa13d39edf1997fef)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 10 01:29:46 2018 -0500

    Add a few more MacOS X valgrind suppressions
    
    (cherry picked from commit 42db3a2c36e26e0106b1e480407e32d3c8c09bef)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 9 23:15:32 2018 -0500

    Clean up memory leaks by callers of scan().
    
    Make sure we reuse the "scanl" argument to the scan() function, as that's
    the signal to have scan() reuse it's buffers.  Otherwise repeated calls
    to scan will leak a TON of memory.  Reported by Ralph Corderoy.
    
    (cherry picked from commit 946ddda2565e28600b65cb666a59182a6d95ff48)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 21 17:59:13 2018 -0500

    Update for second release candidate.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jan 20 11:48:30 2018 +0000

    test-whom: Send whom's stderr down pipe; don't discard.
    
    Fixes 2a02eef3.
    
    (cherry picked from commit c349c172bd195190c0ddb7754644f16ba8545fda)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jan 20 11:45:32 2018 +0000

    test-msgchk: Send msgchk's stderr down pipe; don't discard.
    
    Present since original 26ac907a.
    
    (cherry picked from commit 341ac166ef0f1e9b0eac5ab3fa74899e5323c242)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jan 20 11:38:24 2018 +0000

    test: Send command's stderr down pipe; don't discard.
    
    Fixes 880ff2a4 that turned `foo >$actual 2>&1' into
    `foo | sed ... >$actual 2>&1'.
    
    (cherry picked from commit 025963d5fe8ca0781eee8c83c23b4ea1209a3b0b)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jan 20 08:57:40 2018 +0000

    test/common.sh.in: Unset libcurl(3)'s proxy environment variables.
    
    Debian's packager, Alexander Zanger, reported test/oauth/test-* problems
    due to environment variables for the system's network proxies.  David
    Levine suggested the unsetting of them.  The tests only make HTTP
    connections so just the variables affecting those are unset.
    
    (cherry picked from commit 5303e0f65b71e1336944a5b10356d6a99528511a)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jan 20 07:33:36 2018 +0000

    test-subpart: Send mhshow's stderr down pipe; don't discard.
    
    Fixes 2f1e191a.
    
    (cherry picked from commit ca079bfa8e3812ebf21ffec1c27edeaa03cb9280)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jan 20 07:28:29 2018 +0000

    test-textcharset: Send mhshow's stderr down pipe; don't discard.
    
    Fixes 67bb0fc0.
    
    (cherry picked from commit f7a2498729e0c642c7c7fb573deee3a35176de44)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jan 20 00:08:33 2018 +0000

    fmttest.c: Avoid `++' with bools, silencing compiler warnings.
    
    A partial application of fmttest.c's changes in 8c6e995a to fix the
    errors introduced by the cherry-picking of another commit in 88ba19fc.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 18 21:46:13 2018 -0500

    Removed quotes around "%{charset}" in mhbuild-convert-text.
    
    They broke test/repl/test-convert on Cygwin.  It looks like parameter
    quoting differs between mhbuild and mhshow.
    
    Fix to commit 47629e9e87a324531be881cebfca38dd38f8afaa.
    
    (cherry picked from commit 73e1f01148bb9709a405e27f7d3c5a95ea03b859)

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 18 20:21:40 2018 -0500

    Removed quotes from charset argument to iconv.
    
    Fix to commit 47629e9e87a324531be881cebfca38dd38f8afaa.  Ken
    noticed that it broke test/repl/test-convert on MacOS X.
    
    (cherry picked from commit a3953e07ac53f83373326301d049faea82eb97d0)

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 18 19:03:52 2018 -0500

    Filter test output to remove added whitespace.
    
    Ralph noticed that lynx added whitespace to the (empty) converted
    html document, breaking the test.
    
    Fix to commit 47629e9e87a324531be881cebfca38dd38f8afaa.
    
    (cherry picked from commit 67bb0fc0c930d5c91b6a2881b4596e1044546297)

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 17 19:36:12 2018 -0500

    Wrapped uses of %{charset} in mhn.defaults with double quotes.
    
    (cherry picked from commit 47629e9e87a324531be881cebfca38dd38f8afaa)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 16 21:16:32 2018 -0500

    Update for first release candidate of 1.7.1.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Nov 22 13:44:01 2017 +0000

    Rewrite cpnumber() to fix `%2(msg)' with 123 overflowing to `?23'.
    
    Reported in 1.7 by Ken on nmh-workers yesterday.
    `It seems this was introduced in commit 92128dacf'.
    We now use the C library to format the number, and then manipulate the
    result.  A temporary charstring_t is no longer used.
    Also adds left justification using negative width.
    
    (cherry picked from commit a034d7e5edab2f0d56a62f6e1fcbbc76f3e5f31b)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Jan 15 16:25:35 2018 +0000

    Add test-fmttest for cpstripped(), cptrimmed(), and cpnumber().
    
    Many more tests could be done, and some, like those below, would produce
    known erroneous results, but this is a start and helps spot regressions.
    
     create mode 100755 test/format/test-fmttest
    
    (cherry picked from commit 3e2ca6f83691294fece17b00f8f08b203821c91f)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jan 13 13:54:15 2018 +0000

    fmttest: Allow `-outsize 0' to mean no output, not default size.
    
    `0' might be arrived at by a script tracking remaining space.
    
    (cherry picked from commit 4fd4b0afa64f34a399c0b1bbbffacb859d1e55b8)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Nov 29 17:28:50 2017 +0000

    Add Arch Linux to the often-built-and-tested distro list.
    
    And correct a `Mac OS' to have an `X', and `HPUX' to be `HP-UX'.
    
    (cherry picked from commit 9283525375671f0c4c6d0c021440074b3c96ac0a)

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 2 15:43:16 2017 -0500

    Removed version number from OpenBSD, it's in the "recent" section.
    
    (cherry picked from commit 0813132987677a8b0cf3b4d0e8bf851657deeadd)

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 2 09:44:19 2017 -0500

    Moved OpenBSD back to "routinely built and tested" category.
    
    (cherry picked from commit a640546144e14bc303c3ca0de019b40818ccc319)

Author: David Levine <levinedl@acm.org>
Date:   Mon Nov 27 20:56:30 2017 -0500

    Updated platform lists in MACHINES.
    
    (cherry picked from commit ac30294d6103652024539ebb76af348977812050)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Sep 25 17:43:04 2017 +0100

    Delete "blank" lines at start of files to bring content into view.
    
    (cherry picked from commit a7c1ec95e26ca515d95bfda1e260e3827ba25a1e)

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 15 17:30:49 2018 -0500

    Also trap ambiguous post switch.
    
    Fix to commit d321a6ee82fce5d187f4342199c090909a72e9b8.
    
    (cherry picked from commit ff7b97ca9ddcf66640aaeef01934a6b45a5f183b)

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 15 17:16:41 2018 -0500

    Fixed rcvdist to pass switch arguments to post(1).
    
    Looks like this has always been broken.  Found by Steven Winikoff
    when he tried to pass a -port switch, to override the default
    submission port.
    
    This is intended to be a temporary fix.  The post switches should
    be factored out into one place.
    
    (cherry picked from commit d321a6ee82fce5d187f4342199c090909a72e9b8)
    and manually changed die() to adios()

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 14 15:04:53 2018 -0500

    Removed escape before newline.
    
    It was causing a *roff font selection code to appear in the
    formatted man page.
    
    Fix to commit 95e0df2af.  That commit removed a space after the
    escape, which used to cause a double space in the formatted output.
    
    (cherry picked from commit 28ebf6bb835e9954c0f959b56c8abac2bf3decd5)

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 18 10:35:19 2017 -0500

    Move etc/rmmproc.messageid to fix its install permissions.
    
    And removed duplicate docs/contrib/replaliases to fix its install permissions.
    
    (cherry picked from commit f102d048fdd4679534460ac5cb0c610ee228d063)

Author: David Levine <levinedl@acm.org>
Date:   Mon Nov 27 20:11:30 2017 -0500

    Removed sbr/dtimep.c from CLEANFILES.
    
    automake puts it in maintainer-clean-generic, which is where it belongs.
    Reversal of commit 1353a95720e4049e5f8357cd009b76c0450ec39f.
    
    (cherry picked from commit babec898bb63d36349aae85a8cbde6b97b274192)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Nov 27 15:20:44 2017 +0000

    test-mhfixmsg: pwd(1)'s `-P' needed to avoid failure with symlinks.
    
    Steven Winikoff reported to nmh-workers that one of this file's tests
    failed in 1.7.  It attempts to manipulate the output of mhpath(1)
    assuming it starts with the result of `pwd', but symlinks in the latter
    may cause this to fail.  Use POSIX's `-P' option to ensure no symlinks,
    as done in some other tests.
    
    (cherry picked from commit 0e593b90e45687680b8ea9eb6c7643b44abde0fb)

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 26 17:27:48 2017 -0500

    Use ISO-2022-KR instead of EBCDIC-US in test-charset, because
    Robert Elz reported that it is installed on his NetBSD host.
    Also, don't run that check without iconv.
    
    (cherry picked from commit f81046da683a14b2265a501f0de00df264a77413)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Nov 26 12:09:22 2017 +0000

    Fix tests that assume the backup prefix is a comma.
    
    Steven Winikoff reported to nmh-workers that some tests failed in 1.7
    configured with --with-hash-backup because they assume the backup prefix
    is comma rather than hash.  Alter those tests to use `mhparam sbackup',
    as other tests already do.  PATH is already set to use the mhparam being
    tested.
    
    test-mhfixmsg used find(1) to check for leftover files that globbed
    `mhfix*' or `,mhfix*'.  Changed to just `*mhfix*' as I think any file
    containing that would be unwanted, and it will also spot mhfixmsg
    hard-coding the comma prefix.
    
    (cherry picked from commit 47b86722957cca6057bf5fcd07c9d1f01b4516f8)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Nov 25 15:42:09 2017 +0000

    mhshow/test-charset: Protect question mark from shell globbing.
    
    (cherry picked from commit f227479ac47aea8bc8f31f9c6d97a94af72ee147)

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 24 18:41:23 2017 -0500

    Reworked parameter value tests to reflect Ralph's (re-?) discovery
    that GNU iconv elides the ? from charset names.  nmh uses it as a
    replacement character when decoding fails.
    
    (cherry picked from commit 523641d2282ce5606a8b83250f9e45f33650edf6)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Nov 22 15:12:11 2017 +0000

    fmttest.c: Clear output buffer after each write.
    
    Otherwise each write outputs the whole buffer again, including what's
    already appeared.  Instead of the three lines 1, 2, 3, one sees 1, 1, 2,
    1, 2, 3.
    
    (cherry picked from commit 1670e4d1af608291d93f02e74c57b6aef69a83ad)

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 17 20:41:34 2017 -0500

    Removed sysconfdir overrides from SPECS examples.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 17 10:23:34 2017 -0500

    Update for 1.7 final release.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 5 10:51:00 2017 -0400

    Revised expected output with -prefer in test/mhlist/test-mhlist.
    
    Update to commit 5dce1b38ace6cf61398df3ee4ca5aee0e1dedb5d.
    
    (cherry picked from commit f6d438b5e08d12eacb62f93a8ce1a6c22d2ae16d)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Nov 17 12:04:01 2017 +0000

    NEWS: Encourage nmh-announce subscription.  Capitalise `Gmail'.
    
    (cherry picked from commit 532e14e4e60411b4375b34f6c99b0c988259415c)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Nov 4 09:59:18 2017 -0400

    Use va_copy() to get a copy of va_list, instead of using original.
    
    netsec_vprintf() can call vsnprintf() twice if the outgoing buffer is
    full (but it happens rarely in practice, given the way the current
    code uses it).  But if this DOES happen, vsnprintf() will use the
    same va_list argument twice, and the second time around either it will
    grab a random bit of memory off of the stack OR it will segfault.
    So we always use va_copy() to get our own copy of the passed-in va_list
    and work on that.
    
    (cherry picked from commit b47b562525f149f175c3d216feea20a6db2e9ff5)

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sat Sep 2 11:24:01 2017 -0400

    Add -noprefer switch to mhshow, mhstore, and mhlist
    
    Allow profile-specified -prefer switches to be cancelled from the
    command line.
    
    (cherry picked from commit ceeb47c04f8abb144a3fbaeae3a54010175c2d36)

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sat Sep 2 09:13:44 2017 -0400

    Change the priority ordering for multiple -prefer switches
    
    Interpreting multiple -prefer switches in ascending priority
    order allows the command line to override the user's profile.
    
    (cherry picked from commit 5dce1b38ace6cf61398df3ee4ca5aee0e1dedb5d)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 8 12:08:41 2017 -0400

    Add a -credentials argument when we call post.
    
    If we are using -check, post(8) will need to talk to a remote SMTP server,
    and it might need to perform authentication when doing so.  So include a
    -credentials option if there is the appropriate line in the user's profile.
    
    (cherry picked from commit 9a4413187b1cf9562bceef8cfe442278ed67afd9)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 8 13:46:08 2017 -0400

    Send a QUIT instead of RSET at session end when doing 'whom'.
    
    When running 'whom -check' (which really invokes post(8)), at the
    end of the SMTP session we would send a RSET instead of a QUIT.  This was
    technically a RFC violation (RFC 5321 says a QUIT has to be the last
    thing you send), and this would cause some SMTP servers to complain.
    So make sure if we're being invoked by whom to send a QUIT at the end
    of the session.  Reported by Ralph Corderoy.
    
    (cherry picked from commit 6396778780e014c789e3d18a0880525ee1cde4f6)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Aug 23 14:35:21 2017 -0400

    Update for release candidate 3

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Aug 23 12:08:24 2017 -0400

    Make sure we return the descriptor from the file handle.  Noted by
    Ralph Corderoy.
    
    (cherry picked from commit 15fde7dd84cc29c054857e5d8a7fdd4a8db10a97)

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 21 16:44:07 2017 -0400

    Removed conditional addition of -D_FORTIFY_SOURCE=2 from CPPFLAGS.
    
    And added to CFLAGS in build_nmh.
    
    (cherry picked from commit 7d728514c2c11f194afd433445666ae6c3b7dba7)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Aug 20 14:59:26 2017 +0100

    man: Vet the NAME sections, especially mhfixmsg's.
    
    Don't limit mhfixmsg to fixing "nmh MIME" emails.
    
    (cherry picked from commit aae36dd297503787301fef6b9573c749846a6392)

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 20 09:20:49 2017 -0400

    Add -D_FORTIFY_SOURCE=2 to CPPFLAGS instead of AM_CPPFLAGS.
    
    To make it easier for packagers to override.
    Fix to commit 35d2b4dc00d705e6816bcb0ccab491aabda688dc.
    
    (cherry picked from commit 73a94823f58fa921f9e6c58632f9cecead0e10fd)

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 20 08:50:17 2017 -0400

    Restored old NAME in mhical(1) man page.
    
    mhical only operates on iCalendar event requests, not messages.
    Fix to commit 0e7daaa2daf6c668c8c6feb9da3c9a6639fa4e7e.
    
    (cherry picked from commit b1fb6f46efb8956aae6397c704db26e1310a6564)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Aug 20 12:33:38 2017 +0100

    scan.man: Note that %{body} does not decode MIME.
    
    (cherry picked from commit b852bee5757ed6aaee4046f68cbe458a1ffa623d)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Aug 20 10:34:01 2017 +0100

    NEWS: Add bug fix: EPIPE when writing error no longer recurses.
    
    Also move an existing item into the Bug Fixes section.
    
    (cherry picked from commit 5da45d9802e59261cba09af83ebc77e106345b04)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Aug 20 09:31:18 2017 +0100

    NEWS: Consistent punctuation.  Mention SI and IEC quantities.
    
    (cherry picked from commit 7ec9aaa931525abed3df348a22f824c49c828225)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Aug 19 15:58:49 2017 +0100

    test-sendfiles: Feed `lzma -cd' stdin rather than a filename.
    
    Håkon Alstadheim reported that Debian's lzma-9.22-2 would complain at
    `lzma -cd foo.tar' with `unknown suffix -- unchanged' even though it was
    not being asked to alter the file, or produce a new one based on its
    filename.  This appears to be https://bugs.debian.org/700681.  The lzma
    from Arch Linux's xz 5.2.3-1 does no have this fault.  Work around it by
    feeding the file to decompress on standard input for all the compression
    programs being tested;  none of the others should mind.
    
    (cherry picked from commit 937ee92013bed7b3ebd30fff2c17a751d37b1a61)

Author: David Levine <levinedl@acm.org>
Date:   Fri Aug 18 23:18:15 2017 -0400

    Protect fileno() call against NULL argument.
    
    Fix to commit 337b4e616e8f53ba06285b1645e1df9918ed5c16.  Thanks to
    Norm for reporting and Ken for diagnosing the bug.
    
    (cherry picked from commit c8815b7b63b710e1480d4be759744583e59308e9)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Aug 18 14:29:59 2017 +0100

    lock_file.c: Compiler warns of unused isnewlock if HAVE_LIBLOCKFILE.
    
    (cherry picked from commit bb8a255634719c63cfae1ee4d0fb12f056efa71b)

Author: David Levine <levinedl@acm.org>
Date:   Thu Aug 17 19:45:20 2017 -0400

    Default CFLAGS to -std=c99 instead of -ansi.
    
    gcc -ansi -pedantic issued a few warnings about C90 not supporting the
    "ll" printf length modifier.  Ralph pointed out that
    http://www.unix.org/version4/overview.html says:
    
        The following source code portability standards lie at the core of
        the Single UNIX Specification:
    
            POSIX.1-2008
    
        (This is technically identical to the Base Specifications, Issue 7;
        they are one and the same document.)
    
            The ISO/IEC 9899:1999 standard
    
    So perhaps we're wrong to expect modern POSIX code to compile as C90.
    
    (cherry picked from commit f4ec967205c6fa0f3d37aad24335337251f17e16)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Aug 17 12:42:57 2017 +0100

    Both f_typestr(): Remove parenthesis from long list of returns.
    
    It's not a function call, they're just noise.
    
    (cherry picked from commit 16b794c5709dc07a81534fd90fed5d1f25f3fbea)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Aug 17 12:36:50 2017 +0100

    Both f_typestr(): Rebuild switch from FT_* to string from scratch.
    
    Adds missing cases, e.g. FT_LS_CFIND.  Removes inconsistent "FT_" prefix
    from some strings, e.g. FT_LS_DECODE.  Re-orders cases to match
    definitions.
    
    (cherry picked from commit ce8a66e8b8e9a818d165d09f8df56178e0b40dc9)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Aug 17 12:20:16 2017 +0100

    fmtdump.c, fmttest.c: Remove tests for FT_LIT_FORCE.
    
    It isn't defined, and git-grep(1) suggests it was a local Lawrence
    Berkeley Laboratory modification that output a literal without consuming
    any of the width budget.
    
    (cherry picked from commit efb2c94fbc4861fc81307cd5d0ce22eb16e6de26)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Aug 17 11:35:51 2017 +0100

    cpnumber(): Cast desired width to size_t to silence gcc's warning.
    
    Add a comment on `wid = -wid' that it's OK because wid's value was
    originally a short so won't remain the same value.
    
    (cherry picked from commit ac0bb0e1e19bedfd9d7105db0aad1cdfc5ef994f)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Aug 16 13:44:32 2017 +0100

    INSTALL: Update c89(1) mention to c99(1), that exists today.
    
    (cherry picked from commit 0d0d0e65a4c093f3f8827d4cd3375dcde4d4aab0)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Aug 9 16:00:17 2017 +0100

    fmtdump.c: Add string for FT_LS_UNQUOTE case.
    
    It was missing since e8635a8a1 and the default case that attempted to
    format it as a number was faulty, fixed in 39ecf70bb.  That fix broke
    test/format/test-fmtdump as it expected the broken "blank line" to be
    output instead.
    
    (cherry picked from commit 4bdd57be745679ee8fc97a3029fa837b14a80b50)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Aug 13 15:04:58 2017 +0100

    post.man: Detail -port's default value: submission, 587.
    
    (cherry picked from commit d9c165f79476d60ac59515d3b23ede004759fe06)

Author: Leonardo Taccari <iamleot@gmail.com>
Date:   Thu Aug 17 19:42:48 2017 -0400

    mhical expected an ics file as input and after just pressing
    ^D I've found that mhical wasn't happy about an empty input.
    A trivial patch that should fix this issue.
    
    (cherry picked from commit 76b9af849ba1c93eb2b6807e57268b7a7a2e205c)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Aug 17 13:01:09 2017 -0400

    Update for release candidate 2.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Aug 17 11:59:38 2017 +0100

    Makefile.am: Remove multiple `mkdir -p' for etc;  use ./configure.
    
    A `mkdir -p' was used in each rule that created a file in etc to ensure
    the directory already existed.  Ken pointed out existing ./configure
    code to do that for the man directory, just once.  Use that for etc too.
    Remove the `test -d' because `mkdir -p' does that itself.
    
    (cherry picked from commit 1009a32da2ba2b0caae7b71708625e00d8cf58c6)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Aug 17 01:24:08 2017 -0400

    Fix bug in cpnumber().
    
    The cpnumber() function (which handles the NUMF instruction, among others)
    would hang if a 0 width was given to it.  Make sure that (and negative
    widths) are handled correctly.  Note that normally NUMF did not handle
    left padding which is indicated by a negative width; that may change
    in the future.
    
    (cherry picked from commit 58fa16ef1e6d6c3a698d220409416bccec187287)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Aug 17 01:12:22 2017 -0400

    Improve installation documentation
    
    Fix up the various installation information so it matches reality.
    
    (cherry picked from commit b7a676587f92187d2270be73a1ede5be0af9f104)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Aug 16 23:55:23 2017 -0400

    Make sure the %(kilo) and %(kibi) instructions are in fmttest(1).
    
    Man, we should really merge fmttest and fmtdump at some point.
    
    (cherry picked from commit 877306f0cf8700241efc2e245f66df5ba95113f9)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Aug 6 18:15:41 2017 +0100

    cpstripped(): Rewrite multi-byte version.
    
    Removes the assert(3) failure reported on the list for 1.7-RC1 when a
    non-space, non-cntrl, rune has a wcwidth(3) of -1; output L'?' in its
    place.  The old code also didn't reset mbtowc(3)'s state before trying
    to parse "?";  that's handled differently now so isn't an issue.  Pad
    with the multi-byte encoding of L" ", having ensured the wcwidth(1) of
    L' ' is one, rather than with a non-wchar_t ' '.  Point out padding only
    occurs in one particular case, and not the other two;  quite odd.
    
    (cherry picked from commit a091c28b416f83aa46dcb0bd0da81ca1d3b8a7f9)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Aug 5 18:20:07 2017 +0100

    cpstripped(), single-byte: Simplify logic.
    
    Now that it doesn't have to fit in with the multi-byte version's logic,
    it can be re-structured to be simpler.  No functional change intended.
    
    (cherry picked from commit 8ba2c2e0a5c0e2c087cd1684a885b959c101e010)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Aug 5 17:57:48 2017 +0100

    cpstripped: Split into two versions, each with a single #ifdef.
    
    Got fed up trying to read C logic when the preprocessor's logic didn't
    nest neatly with the function's.  No intentional change to either
    version.
    
    (cherry picked from commit 0a934c0ff1b5623956da677751e485c52e1ab361)

Author: David Levine <levinedl@acm.org>
Date:   Tue Aug 8 20:10:49 2017 -0400

    Fixed scan to handle empty files without violating an assert [Bug #51693].
    
    (cherry picked from commit 0d593e1ce1a218332af78b83987543756b0c6cf4)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Aug 3 12:22:07 2017 +0100

    NEWS: Move "new features" that might bite a user to the top.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Aug 3 12:17:30 2017 +0100

    NEWS: Re-order 1.7's sections, as discussed on nmh-workers.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Aug 2 22:20:46 2017 -0400

    Updates for 1.7 release.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Aug 2 00:03:40 2017 -0400

    Update DATE and VERSION for start of 1.7 release.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Aug 1 23:53:05 2017 -0400

    Use correct error code for SSL context retrieval.
    
    Make sure we use the correct error code if we are unable to retrieve
    the SSL context from the context from the BIO.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Aug 1 13:28:04 2017 -0400

    Document bug fix

Merge: 8f460dd a2d70b2
Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Aug 1 13:22:36 2017 -0400

    Merge branch 'fix-post-bcc'
    
    This branch fixes bug #51098; the lack of alias expansion on a From line
    when doing a Bcc.  Admittedly, this is rather an obscure bug, and AFAICT
    it never worked in any version of MH or nmh, but it is fixed now.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Aug 1 13:21:21 2017 -0400

    Implemented test for this patch.
    
    This patch tests the code that does alias expansion in a From line when
    doing bcc.  Which is, now that I think about it, one heck of a corner case.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Aug 1 14:41:20 2017 +0100

    Move m_getfld's MS_* mbox-type macros to the only user.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jul 31 22:00:39 2017 -0400

    Restricted application of the adjustment in m_Eom().
    
    Per Ralph's suggestion.  Update to commit 29db9a64a.  Also,
    consolidated print statments in test-eom-align.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 30 20:24:34 2017 -0400

    Hacked m_Eom() to fix test-eom-align.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 29 17:55:25 2017 -0400

    Restored local variable to m_Eom(), to not truncate EOF.
    
    Reversion of significant part of commit d3e11c5e9.  Thanks to Ralph
    for noticing that it wasn't a good change.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 29 17:07:06 2017 -0400

    Removed a local variable from m_Eom().
    
    Minor code simplification in preparation for upcoming fix.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 29 12:42:35 2017 -0400

    Simplified m_strn() per Ralph's suggestions.
    
    Update to commit 4a56a28ac.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 29 10:47:16 2017 -0400

    Use m_strn() to allow restoration of buffer size to 26 bytes.
    
    Fix to commit a3724ed39.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jul 29 15:06:11 2017 +0100

    dtimezone(): Explain abs(3) is undefined on INT_MIN.
    
    That's why a negative int is flipped over into unsigned by assuming
    two's complement.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 29 10:02:28 2017 -0400

    Added m_str() and m_strn() functions to convert int to string.
    
    Allows better fix to uip/forw.c than commit d711510305.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jul 29 14:29:15 2017 +0100

    Simplify dtimezone()'s logic by working with unsigned int.
    
    Character buffer is resized down from arbitrary 64 to suit 32-bit int,
    a change to the recent a3724ed3.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jul 25 15:40:28 2017 -0400

    Finished implementation, but tests need to be written.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 23 11:39:24 2017 -0400

    Added some specific tests to test-eom-align.
    
    These were found by scanning a much larger range of buffer sizes,
    over nmh versions from cvs, 1.4, 1.5, 1.6, and current HEAD.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Jul 17 12:58:38 2017 +0100

    Bump up size of two static char[] so gcc knows they won't overflow.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 16 20:06:01 2017 -0400

    Increase size of buffer to avoid warning from gcc -Wformat-truncation.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 16 17:25:51 2017 -0400

    Replaced snprintf() to convert an int with m_name().
    
    At Ralph's suggestion.  The goal was to get rid of a warning from
    gcc -Wformat-truncation, but the code ends up being cleaner as well.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 16 09:02:08 2017 -0400

    Enhanced mhical syntax error message to provide some context.
    
    Specifically for the case of improperly folded lines.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 15 09:37:26 2017 -0400

    Fixed flex fixups to not break LFLAGS.
    
    Addresses comment added in commit 4ac978448.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 15 09:16:47 2017 -0400

    Added flex fixup for Fedora 26's flex 2.6.1.
    
    The fix is compatible with unpatched flex 2.6.1.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jun 23 11:53:28 2017 -0400

    Start of work to fix lack of address rewriting for bcc
    
    This is the start of work to fix the problems described in #51098.  Is
    not finished yet.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 17 13:42:59 2017 -0400

    Rearranged statements to eliminate memory allocation.
    
    Update to commit a5bf16c0928cb4044b082f9cf6f44f9bb3998824.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 17 11:01:32 2017 -0400

    Show display program name and arguments in error message if it fails.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 17 09:32:00 2017 -0400

    Don't bypass scan_content() when expanding pseudoheaders.
    
    expand_pseudoheader() would avoid the call to scan_content() in order
    to inhibit use of quoted-printable for text content.  Removed that;
    the user still has control over the use of quoted-printable via
    -maxunencoded.  Though now, lines over 998 bytes long will always
    be encoded.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Jun 10 18:32:08 2017 +0100

    sbr/netsec.c: Report popped TLS error code, don't pop again.
    
    ERR_get_error() pops an error code so having tested that value it should
    also be the one that's reported in an error message, not another popped
    error code by calling ERR_get_error() again as this misleads as to the
    error's cause.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 30 23:00:10 2017 +0100

    uip/inc.c: Don't increment variable of type bool.
    
    gcc 7.1.1 is warning against incrementing `bool' variables.
    Assign true instead.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 1 19:54:21 2017 -0400

    Fixed double fclose().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jun 1 12:26:23 2017 -0400

    Remove ancient SENDMAILBUG code.
    
    Old SMTP code used to treat a code 451 the same as code 250 (success).  It's
    not clear if this was ever a real bug in sendmail, but regardless this code
    is long obsolete.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jun 1 12:25:15 2017 -0400

    Comment cleanup; removed ancient reference to 4.2BSD systems.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed May 31 14:39:48 2017 -0400

    Normalize connection shutdown handling.
    
    I originally tried to make things work so that the netsec client code gave
    the client the option of closing the file descriptors if it wanted to, but
    I was running into a problem where if TLS negotiation failed part of the
    negotiation would be interpreted as connection data.  The code has been
    changed to have the sockets close when the SSL BIO is released and to
    have netsec_shutdown unconditionally close the file descriptors.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed May 31 11:53:47 2017 -0400

    Use original error code from OpenSSL.
    
    Reuse the error code we already retrieved from OpenSSL, otherwise the
    error might be cleared the next time we call ERR_get_error().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 29 13:20:00 2017 +0100

    sbr/brkstring.c: Use strchr(3) in brkany(), not own loop.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 29 12:56:10 2017 +0100

    sizeof char is always 1, so don't bother to divide by it.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 29 12:53:24 2017 +0100

    Use DIM(a) macro a few more times;  array's dimension using sizeof.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 29 12:23:38 2017 +0100

    uip/scansbr.c: Add PUTC() macro, similar to FPUTS().
    
    FPUTS() exists, but all the putc(3) checks for error were written
    alongside in longhand.  May as well have a PUTC() to match, though
    perhaps just the existing check of the FILE's sticky error state with
    ferror(3) is sufficient and neither macro is required.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 29 11:49:29 2017 +0100

    uip/scansbr.c: Stop `scan -file' copying mailbox to /dev/null.
    
    scan() was copying the mailbox to /dev/null when called for `scan -file
    foo.mbox' because it used outnum being non-zero as the test of whether
    to write instead of FILE pointer scnout being non-NULL.  By switching,
    we can avoid the opening of /dev/null that was just to give scnout a
    valid value for the needless fputs(3), etc.
    
    Add comment explaining scan()'s outnum input parameter's three
    functions: -1, 0, and positive.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 28 13:07:25 2017 +0100

    h/mts.h: Replace char pointer mmdlm1 with macro MMDF_DELIM.
    
    mmdlm1 only ever pointed to its initial string constant.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 28 12:32:28 2017 +0100

    sbr/mts.c: Delete mmdlm2;  use same-valued mmdlm1 instead.
    
    mmdlm1 and mmdlm2 had the same compile-time value.  Both could be
    changed at run-time by mts.conf(5), but d205d39a stopped that.  Use
    mmdlm1 instead of mmdlm2 and delete mmdlm2.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 28 12:21:12 2017 +0100

    sbr/mts.c: Make MMDF's delimeters fixed at compile time.
    
    mts.conf(5) allowed `mmdelim1' and `mmdelim2' to alter the default MMDF
    begin and end markers of four ASCII SOHs and an LF.  There doesn't seem
    to be a modern use for this, and nmh wouldn't have handled longer
    markers correctly so remove the capability.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 27 17:04:48 2017 +0100

    uip/forw.c, uip/repl.c: Remove -file's "msh" comment.
    
    The comment claims -file is "interface from msh", but msh(1) was removed
    in e6917522.  The options remain as discussion on the list prompted
    David to say he uses them occasionally.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri May 26 23:34:10 2017 +0100

    uip/mhparse.c: Fix body starting a byte too soon when no blank line.
    
    m_getfld() returns BODY when the headers run into a line without a colon
    instead of being separated from the body by a blank line.  The file's
    position and the returned `bufsz' differ from the normal case of a blank
    line and then the start of the body, causing confusion.  get_content()
    was aware of the difference, documented it, and attempted to correct for
    it, but got it wrong and included the `\n' that terminates the last real
    header at the start of the "body".  This affected a struct Content's
    c_begin.
    
    Use the correct file position for c_begin, adding a comment that
    explains the theory for both cases.  Add a test-mhlist case that checks
    mhlist(1) states the body size is the same whether it is separated from
    the headers by a blank line or not.  Correct existing
    test/bad-input/test-header test that expected the extra blank line to be
    counted and to appear in the output.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri May 26 12:36:32 2017 +0100

    Remove mention of msh in comments and to-do list.
    
    msh(1) was removed in e6917522.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri May 26 11:56:37 2017 +0100

    Makefile.am: Add test/inc/test-eom-align to XFAIL_TESTS.
    
    Since 5f34de43, it's expected the test will fail.
    Add it to XFAIL_TESTS so it's still run, but its failure doesn't cause
    the `check' target to fail.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 18:12:55 2017 +0100

    Don't cast lseek(2)'s offset to off_t when it's 0.
    
    `lseek(fd, (off_t)0, SEEK_SET)' does not need the cast when a prototype
    is in scope, and <unistd.h> is #include'd.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 17:23:10 2017 +0100

    uip/slocal.c: Tidy `verbose' logic in usr_file().
    
    Boolean was being tested three times instead of once after recent
    dead-code deletions.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 16:29:33 2017 +0100

    uip/popsbr.c: Delete unused pop_list(), etc.
    
    Those deleted: pop_list(), pop_noop(), pop_rset(), and pop_top().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 16:23:00 2017 +0100

    sbr/utils.c: Delete dead-code open_form();  not called.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 14:36:59 2017 +0100

    uip/comp.c: Delete single-use NULLMP macro.
    
    It just cast 0 to a pointer to struct msgs and was used once, as a
    function's parameter.  Replace that with NULL since a prototype for the
    function is visible.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 14:36:33 2017 +0100

    sbr/fmt_compile.c: Delete single-use NEWFMT macro.
    
    Its simple content was to increment a variable;  doing that in situ is
    more clear.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 13:53:27 2017 +0100

    Remove support for ./.foo.map index for ./foo mailbox.
    
    An MH-only index of a mailbox, mbox or MMDF format, called a map file,
    could be built and maintained by packf(1), rcvpack(1), and slocal(1),
    but since msh(1) was removed in e6917522, there hasn't been a user of
    the index file so stop producing it and delete all the supporting code
    in uip/dropsbr.c.
    
    mbx_copy() loses its `mapping' and `noisy' parameters;  noisy was only
    used when mapping.  Delete mbx_read() and mbx_size() as they have no
    callers without maps.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 13:03:53 2017 +0100

    test/runpty.c: Add more detail to "timed out" message.
    
    test/install-mh/test-version-check was skipped due to timeout, but it
    took a lot less than the thirty-second timeout to run.  Add start time
    and the time now to the diagnostic, and select(2)'s return value.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 11:24:54 2017 +0100

    uip/prompter.c: Make getln() static;  only called locally.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 11:21:40 2017 +0100

    uip/prompter.c: Delete obfuscating ERASE, etc., macros.
    
    Their few uses are clearer as `t_io.c_cc[VERASE]' as otherwise the
    storage, t_io, isn't mentioned, and c_cc and VERASE match termios.h's
    man page.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu May 25 11:18:11 2017 +0100

    uip/prompter.c: Delete unused macros CKILL and CERASE.
    
    They haven't been used in git's history.  Their definitions of `@' and
    `#' might surprise younger users if put into use.  :-)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 24 19:22:02 2017 +0100

    uip/inc.c: Delete POP3's -pack option for msh users.
    
    inc(1)'s -pack option, only available with POP3 access, stored the
    emails in a spool file instead of a folder.  The man page says this was
    intended for msh(1) users, but msh was deleted in e6917522.  The spool
    file was always in packf(1)'s MMDF format, no option of -mbox, and was a
    rare producer of `map' files that indexed the spool file, again intended
    for msh.  Removing -pack makes deletion of map files elsewhere in the
    code easier.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 24 13:50:25 2017 +0100

    uip/dropsbr.c: Delete unused mbx_write() and map_read().
    
    Most recently used by msh(1), removed by e6917522.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 23 12:56:00 2017 +0100

    Replace some "FALLTHRU" comments with control flow.
    
    Instead of a case statement falling through, with a "FALLTHRU" comment,
    to the follow case that just does a break, continue, goto, etc.,
    control-flow statement, duplicate the statement in place of the comment.
    Fall-through should be the exception, and saving a break statement
    doesn't offset the cognitive cost when reading the source.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 23 12:53:32 2017 +0100

    config/config.c: Fix indentation of "FALLTHRU" comment.
    
    It's not part of the preceding if-statement, but unconditional.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 21 12:45:54 2017 +0100

    sbr/m_getfld.c: Fix and improve `delim' comment.
    
    fdelimlen is one higher than was described in 86c5ebc87.
    Describe pointer positions pictorially.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 22 20:17:48 2017 -0400

    Fixed a couple of typos.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 20 12:46:04 2017 +0100

    test/inc/test-eom-align: Show size of test email as progress.
    
    Don't bother over-printing;  Perhaps when it's working again and lots of
    output is being produced.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 20 12:38:22 2017 +0100

    test/inc/test-eom-align: Fix tests; they've never worked.
    
    Instead of cycling through lots of mbox sizes, $STDIO_BUFSZ was always
    used as the desired size resulting in tests A and B being duplicated 221
    times each.  Slowly, if using valgrind.  The tests fail now they're
    fixed.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 20 12:09:13 2017 +0100

    test/common.sh.in: test_skip(): Remove unused variable.
    
    `$Test' was being interpolated into the output, but has never existed.
    Rephrase the output given a /^SKIP: / line follows from the test harness
    due to the `exit 77'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 20 11:53:55 2017 +0100

    test/runpty.c: Add missing exit(3) after child fails to execvp(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 20 11:48:10 2017 +0100

    uip/aliasbr.c: Remove dead code used for Unix groups.
    
    Main functionality removed in afaab789.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu May 18 14:03:09 2017 -0400

    Remove support for aliases based on Unix groups.
    
    Remove support for expanding aliases based on group membership (=) and
    all users who have a particular primary group (+).  This was the result
    of a discussion on nmh-workers; these features were of dubious value, likely
    not used, and interfered with RFC-2047 encoded names in alias files.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 17 17:56:00 2017 +0100

    uip/mhshowsbr.c: Increase buffer size for showing-content command.
    
    Experimenting with small BUFSIZ to try and trigger programs caused one
    test to fail because the code detected BUFSIZ was too small a string to
    hold the command to execute.  Use NMH_BUFSIZ instead.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed May 17 23:28:02 2017 -0400

    After further reflection, I decided I didn't like that previous
    implementation.  Instead, allocate two ptys and connect one to standard
    input and the other to standard output and standard error of the child
    process.  After the first data is received from the slave, close the
    master connected to standard input; that will generate an EOF on input
    to the child process.  This ends up being much cleaner than looping and
    waiting to send the EOF character to the child process.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed May 17 21:40:57 2017 -0400

    Apparently on Linux if a slave pty is closed, instead of the master
    getting an EOF they get an EIO, which strikes me as unfriendly.  So
    make sure we exit the main read loop without complaint on an EOF or
    error.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed May 17 21:00:47 2017 -0400

    Switch from using script(1) to a new custom utility, runpty.  It turns out
    on some systems script(1) has a bug that results in hangs that is simply
    too difficult to test for, and this custom utility is simpler.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 17 15:15:18 2017 +0100

    uip/mhbuildsbr.c: Fix long-line truncation when BUFSIZ is 1024.
    
    a23477eb changed one char array from BUFSIZ to NMH_BUFSIZ elements, but
    the long line read into it was passed to user_content() that
    strncpy(3)'d it, silently truncating, to another char array, still
    BUFSIZ long.  This show up on platforms where BUFSIZ is 1024 versus
    NMH_BUFSIZ's minimum of 8192.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 17 13:06:40 2017 +0100

    test/common.sh.in: Clarify it's the first failure by a *named* test.
    
    Unnamed tests may have failed earlier.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 17 12:58:15 2017 +0100

    test/mhbuild/test-cte: Move run_prog() to just before check().
    
    Prepare the input and output files, then run the program and check the
    result.  Makes it easier to see every run is being checked if a,
    sometimes large, expected-output file isn't being produced in between.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 17 12:47:07 2017 +0100

    test/mhbuild/test-cte: Add missing check() for earlier run_prog().
    
    be6c3984 added a new run_prog and swiped the earlier check.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 17 12:45:26 2017 +0100

    test/common.sh.in: Clarify test name in failure message.
    
    Some test names don't stand out as that when suffixed with `failed'
    amidst all the other output.  Change `foo failed' to `first test
    failure: foo' instead.  Also makes clear there's possibly other tests
    that failed later.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue May 16 21:30:10 2017 -0400

    Make sure we are in the correct directory when we do "git describe".

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 17 00:27:54 2017 +0100

    sbr/check_charset.c: Fix warning on unspecified struct initialisers.
    
    A different C compiler disliked `{NULL}' as the initialiser for a
    two-member struct so specify NULL for the other member too.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 12:57:25 2017 +0100

    Rewrite norm_charmap(), moving code into data.
    
    Also removes return of static char array, and is more precise, e.g.
    `CP1242' doesn't become `WINDOWS-1242' as it's not a known code page.

Merge: 684716b 3d0e5b6
Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 11:44:18 2017 +0100

    Merge commit '3d0e5b6a4383a5228732edd6cb1532375b771262'

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 11:35:49 2017 +0100

    Merge sbr/norm_charmap.c into sbr/check_charset.c.
    
    Alter norm_charmap() to be static now its only caller is in the same
    file.  I've checked the upstream cam.ac.uk source and it's still the
    same and hasn't changed in years, so I don't think there's much benefit
    from having it standalone to ease checking.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 11:29:17 2017 +0100

    Part 1 of merging sbr/norm_charmap.c into sbr/check_charset.c.
    
    This commit won't compile, but I'm attempting to get the rename into git
    so the history after the next, merge, commit will continue through both
    parents.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 11:21:50 2017 +0100

    sbr/unquote.c: Move prototype from h/prototypes.h to new header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 10:59:07 2017 +0100

    sbr/mime_type.c: Move prototype from h/prototypes.h to new header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 10:53:17 2017 +0100

    sbr/message_id.c: Move duplicate prototypes to new header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 10:41:35 2017 +0100

    sbr/makedir.c: Move prototype from h/prototypes.h to new header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 10:36:02 2017 +0100

    sbr/m_popen.c: Move prototypes from h/prototypes.h to new header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 00:30:59 2017 +0100

    sbr/m_maildir.c: Move prototypes from h/prototypes.h to new header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 16 00:02:30 2017 +0100

    sbr/m_rand.c: Move prototype from h/prototypes.h to new header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 23:54:05 2017 +0100

    h/prototypes.h: Give sbr/lock_file.c's prototypes their own header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 18:58:19 2017 +0100

    sbr/utils.c: Delete unused upcase() function.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 18:52:32 2017 +0100

    h/utils.h: Move in PLURALS() macro from h/mh.h.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 18:47:46 2017 +0100

    h/prototypes.h: Remove duplicate prototype for pwd().
    
    It is already in h/utils.h.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 18:39:45 2017 +0100

    h/utils.h: Move in nmh_init() prototype from h/prototypes.h.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 18:06:19 2017 +0100

    uip/mhshowsbr.h: Move in declarations from h/mhparse.h.
    
    Delete non-existent markerform parameter from show_all_messages()'s
    comment.  Alter show_all_messages()'s definition's concatsw parameter to
    match comment and prototype.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 17:14:01 2017 +0100

    uip/mhshowsbr.c: Create header file with exports' declarations.
    
    Create a single set of externs for mhshowsbr.c's global variables.  Have
    the other users of those use the new include file instead of their own
    declarations.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 16:09:28 2017 +0100

    uip/mhcachesbr.c: Move exported symbols to existing h/mhcachesbr.h.
    
    Remove the user's copies of the declarations.
    A static struct swit caches[] was declared everywhere that included
    h/mhcachesbr.h.  The larger number of includers causes `variable not
    used' for `caches'.  Move that declaration to uip/mhcachesbr.c and have
    an exported `cache_policy' symbol that points to it for the existing
    users.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 15:14:44 2017 +0100

    uip/mhoutsbr.c: Move exported prototype to new header file.
    
    Alter the callers to include the new header file instead of having their
    own copy of the prototype.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 15:07:10 2017 +0100

    sbr/m_mktemp.h: Move remaining prototypes from h/prototypes.h.
    
    Gives the normal one header file showing interface exported by one C
    file.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 14:40:52 2017 +0100

    sbr/m_mktemp.h: Create with missing prototypes.
    
    Some of sbr/m_mktemp.c's functions didn't have prototypes in a header
    file so callers were declaring prototypes themselves.  Have them include
    the new header file instead.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 14:31:36 2017 +0100

    sbr/utils.c: Use h/signals.h for setup_signal_handlers prototype.
    
    Deleted its own prototype for setup_signal_handlers() and added it to
    the existing h/signals.h as it's defined in h/signals.c.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 14:23:53 2017 +0100

    uip/picksbr.c: Use function prototypes for `nexus' functions.
    
    Prototypes for ORaction(), etc., now state the parameters they expect.
    Removed the args() macro, instead explicitly listing the arguments being
    passed to functions.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 14:12:21 2017 +0100

    Specify function parameters in prototypes, mainly void.
    
    These prototypes are all in *.[cl] source compared with the *.h of the
    earlier commit.  All but one had void added, that one's parameter was a
    char pointer.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 13:45:39 2017 +0100

    h/prototypes.h: Remove scan_reset_m_getfld_state() prototype.
    
    Function removed back in 2014 by 58eaf2c2.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 13:39:08 2017 +0100

    Use `void' in prototypes for functions with no parameters.
    
    The old-style `int foo()' still lived on in a few places.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 13:29:28 2017 +0100

    h/mhparse.h: Move mhfree.c's free_content prototype to new header.
    
    It was the only thing of mhfree.c's in h/mhparse.h.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 13:25:23 2017 +0100

    Match `NORETURN' function prototypes by adding it to definition.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 13:13:45 2017 +0100

    Create and use header file for uip/mhfree.c's exports.
    
    Remove all the duplicate inconsistent prototypes from mhfree.c's users.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 13:10:30 2017 +0100

    test/mhical/test-mhical: Force UTC timezone for mhical.
    
    Commit c3238c0e added a test but mhical's output depends on its
    timezone;  force it to UTC for consistent results.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 12:52:23 2017 +0100

    uip/mhfree.c: Make free_header() static.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 15 12:38:26 2017 +0100

    uip/flist.c: Make locally defined and used functions static.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 14 17:27:23 2017 -0400

    Support iCalendar event request files that don't end with a newline.
    
    Such files do not conform to RFC 5545 § 3.1, which requires that each
    contentline end with a CRLF.  But be liberal in what we accept.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 14 13:08:03 2017 -0400

    Added explicit dependency to build sbr/icalparse.h before running LEX.
    
    "Fix" to commit 665dfc96.  The build had been relying upon the listed
    order of files.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 14 12:18:35 2017 -0400

    Have post(1) report name of fileproc if it fails.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 14 23:17:36 2017 +0100

    Replace calls to unputenv() with unsetenv(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 14 22:56:52 2017 +0100

    Replace calls to m_putenv() with setenv(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 14 19:35:13 2017 +0100

    sbr/dtimep.l: Remove redundant wrapping parenthesis in definitions.
    
    It's been decades since a lex(1) didn't follow POSIX and treat `{foo}'
    as parenthesis surrounding foo's definition.  Other nmh lex files work
    without the extra wrapping.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 14 12:53:33 2017 +0100

    uip/mhstoresbr.c: Fix single-character nmh-storage bug.
    
    If the profile component nmh-storage was a single character, e.g. the
    relative directory `d', then it would be dropped from the output path so
    instead of `d/foo' being written, `/foo' would probably fail.  I think
    this was due to a faulty check for nmh-storage being `/'.  Add a test
    for a non-/ single-character nmh-storage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 14 12:08:06 2017 +0100

    sbr/fmt_rfc2047.c: Simplify test for /^=\?./.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 14 11:23:33 2017 +0100

    Use new PLURALS(n) macro instead of variety of tests.
    
    Whether to output a plural noun in a message was decided by ternary
    operators that tested n==1, n!=1, n>1, etc.  Make them all consistent by
    using PLURALS(n).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 13 23:40:50 2017 +0100

    uip/folder.c: Use `%s' for plural, not `%c'.
    
    Instead of a ternary operator with 's' and ' ' as the outcomes, switch
    the format specifier from `%c' to `%s' and use strings "s" and " ".

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 13 18:39:06 2017 +0100

    uip/folder.c: Rewrite plural test to common form.
    
    The common form is a choice between "" and "s".  This one occurrence was
    using " " and "s" so either output was a fixed width.  Alter the
    printf(3) format string from `%s' to `%1s' to provide that instead.
    Allows the new code to be altered by an upcoming `plural' change.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 13 18:35:15 2017 +0100

    Makefile.am: Alter long lists to be sorted, one entry per line.
    
    It was hard to see what files were included in some variables when
    searching for the best place for new content.  Some variables had
    definitions that were almost sorted, by weren't.  Switch to a
    one-entry-per-line list, in `LC_ALL=C sort' order, documented at the
    start of the file.  Makes it easy to run through the lists and see the
    patterns.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 13 13:24:03 2017 +0100

    Use FENDNULL() instead of duplicate, locally defined, empty().
    
    Three files had an empty() that was defined using FENDNULL();  use the
    latter directly.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 13 13:13:18 2017 +0100

    Add FENDNULL(s): fends off NULL by giving an empty string instead.
    
    Use it in place of all the `foo->bar_xyzzy ? foo->bar_xyzzy : ""'.
    Avoids the reader having to check first two of the ternary operands are
    the same.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat May 13 12:56:58 2017 +0100

    sbr/mf.c: Rename path to routepath to avoid h/mh.h clash.
    
    Adding #include of h/mh.h brings two path global symbols together;
    path() and char *path.  Rename the latter.  h/mh.h is needed by a future
    commit.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri May 12 23:29:31 2017 +0100

    Replace `a == b ? 1 : 0' and similar with `a == b'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri May 12 23:14:43 2017 +0100

    Replace `e ? 0 : 1' with `!e'.
    
    Needs less thought to read.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri May 12 22:45:34 2017 +0100

    sbr/icalparse.y: Replace max(BUFSIZ, 8192) with NMH_BUFSIZ.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri May 12 22:42:35 2017 +0100

    Use existing macros min() and max() more.

Author: David Levine <levinedl@acm.org>
Date:   Thu May 11 22:41:02 2017 -0400

    Clarified the phrasing added by commit 44ce2010.

Author: David Levine <levinedl@acm.org>
Date:   Thu May 11 20:20:16 2017 -0400

    Added warning about when post(1) can't refile(1) a draft.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed May 10 12:13:28 2017 +0100

    sbr/fmt_scan.c: Fix `foo%-42{bar}' right-justification bug.
    
    The space padding was added at the start of the output buffer, not the
    start of the component being formatted.  Caused by 92128dac's move to
    dynamic allocation for fmt_scan()'s output.  Only shows if the component
    isn't at the start of the buffer.  Expand existing
    test/format/test-rightjustify to cover this.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 9 23:10:06 2017 +0100

    config/version.sh: Rewrite.  Use uname(1), git-describe(1), and UTC.
    
    Not sure why it searched through PATH manually for uname(1) and
    hostname(1).  uname and its -n option are POSIX so just use those.  It
    was the preference over hostname anyway.
    
    Use git-describe(1), not just git-branch(1), as it gives more detail,
    including --dirty to show the built source differs from the commit.
    
    Specify the format for the build date, and its timezone; +0000.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue May 9 22:48:11 2017 +0100

    sbr/mf.c: Simplify isat();  it's /^ at /i.
    
    This one's for all those RFC 733 emails out there.
    You know who you are.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 7 23:30:46 2017 +0100

    uip/inc.c: Use bool, not int, for some of the options.
    
    Makes clear there's no special meaning to repeating these options more
    than once.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 7 22:43:19 2017 +0100

    sbr/netsec.c: Remove extraneous semicolon.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 7 22:35:41 2017 +0100

    Split some comma-operator terms into separate statements.
    
    Some uses of the comma operator weren't the idiomatic `p++, len--'.
    Split its terms into two statements instead, e.g. `close(fd); fd = -1'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 7 18:02:03 2017 +0100

    uip/picksbr.c: Increase line-buffer size for "grep" action.
    
    Alter LBSIZE from 1024 to NMH_BUFSIZ, e.g. 8192.  This dominates the
    size of the char array used to hold a single unfolded header line when
    evaluating a "grep" action, e.g. `-to foo' becomes `^to[ ^I]*:.*foo'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 7 14:01:48 2017 +0100

    uip/scansbr.c: Replace uses of SBUFSIZ with NMH_BUFSIZ.
    
    Now that the former is defined as the latter, the uses of SBUFSIZ were
    all in the same expression and it simplifies from a ternary expression
    to NMH_BUFSIZ.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 7 13:57:39 2017 +0100

    uip/rcvdist.c: Replace SBUFSIZ with NMH_BUFSIZ.
    
    The former was defined as the latter and had only one proper use: to
    size a char array.  The other uses should have been the sizeof operator
    on that array, and now are.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 7 13:56:40 2017 +0100

    uip/replsbr.c: Replace single use of SBUFSIZ with NMH_BUFSIZ.
    
    The former was defined as the latter;  not a lot of point having it.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun May 7 13:03:01 2017 +0100

    Make many m_getfld() buffer parameters NMH_BUFSIZ big.
    
    char arrays were often stdio.h's BUFSIZ large, and that's 8192 with here
    with glibc 2.25-1 on Linux x86_64, so using NMH_BUFSIZ is no different
    as that's max(BUFSIZ, 8192).  But some were 256 or 512 with a local
    SBUFSIZ macro and they caused scan(1) to truncate a field, or pick(1) to
    not spot text because the field was truncated.
    
    Delete bad-input/test-header's test for m_getfld()'s detection for a
    header without a colon that's under the header-length NAMESZ limit, but
    longer than the passed in buffer.  This no longer happens in scan as the
    buffer is larger than the longest allowed header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri May 5 13:11:15 2017 +0100

    configure.ac: Enable assert(3) by default.
    
    Revert 167e542b that disabled assert(3) by default after private email
    discussion with David Levine.  I suggested it being enabled by default
    in git so those running nmh from git were testing them for us, with it
    being disabled as part of the release process so packagers continue with
    it disabled.  David pointed out that would make the release
    intentionally different from what had been long tested so the default is
    now enabled assertions everywhere unless disabled by a packager.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 23:02:06 2017 +0100

    mhstoresbr.c: Flip logic to simplify.  Remove else after continue.
    
    Former in store_partial(), latter in parse_format_string().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 22:57:44 2017 +0100

    mhlsbr.c: Flip parse()'s logic.  Remove oneline()'s else after break.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 22:56:30 2017 +0100

    dropsbr.c: Flip mbx_open()'s logic to simplify.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 22:47:38 2017 +0100

    base64.c: Remove some else after break.  Flip logic to simplify.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 22:46:38 2017 +0100

    mhfixmsg.c: Flip logic to simplify.  Remove else after break.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 22:36:30 2017 +0100

    path.c: Simplify compath()'s flow;  return, don't break twice.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 21:49:38 2017 +0100

    mhshowsbr.c: Remove else after break in iconv_start().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 21:46:20 2017 +0100

    mhparse.c: Remove a couple of else after continue.
    
    In openQuoted() and parse_header_attrs().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 21:43:36 2017 +0100

    m_getfld.c: Remove else after break in m_unknown() and m_Eom().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 21:42:59 2017 +0100

    picksbr.c: Remove some else after break in plist().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 18:42:07 2017 +0100

    fmt_rfc2047.c: Remove else after decode_rfc2047()'s break.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon May 1 18:33:15 2017 +0100

    sortm.c: Flip get_fields()'s logic to simplify.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 30 15:25:20 2017 +0100

    README.developers: Add pointers to Debian's Lintian's complaints.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 30 15:14:46 2017 +0100

    README.developers: Add blank lines for consistent headers.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 29 00:01:58 2017 +0100

    Fix spelling in C comments.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 28 22:42:46 2017 +0100

    bvector_copy: Use bvector's tiny storage if big enough.
    
    Otherwise a source bvector that's using tiny storage has its bits
    duplicated into a malloc'd area when the destination's tiny storage was
    sufficient.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 28 22:08:26 2017 +0100

    sbr/oauth.c: Remove const to avoid curl's debug_callback warning.
    
    The curl_debug_callback typedef doesn't use const for any of the
    function's parameters.  On one of the compilation platforms here,
    oauth.c's debug_callback having const specifiers for some parameters
    causes compilation warnings, and -Werror stops the compilation.  Remove
    them.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 28 17:12:31 2017 +0100

    sbr/folder_read.c: Don't malloc() once per message.
    
    Instead of struct msgs having a pointer to a malloc'd array of pointers,
    each to a malloc'd struct bvector, 1+N, it now has a pointer to a
    malloc'd array of struct bvector;  one malloc for all of them.  This
    avoids the large number of calls to malloc() and free() that's linear
    with the size of the folder.
    
    But there are some downsides.  In order to step through an array of
    struct bvector, code outside of sbr/vector.c needs to know the struct's
    size.  The simplest way to do this is to make the struct's definition
    public, with a comment that access should be through vector.c.
    
    New functions are needed to initialise the content of an already
    allocated bvector, and to finish with its content prior to deallocation.
    bvector_create() and bvector_free() now also use these new functions.
    
    Before, it was the array of pointers to bvector that would be realloc'd.
    That doesn't work for the array of bvectors as they may contain pointers
    to within themselves.  The solution is to malloc a new array and
    bvector_copy() the ones to keep across, as folder_realloc() now does.
    The other half of its logic that coped with growth at the end of the
    array, has been deleted.  Also deleted, is the code to clear the
    bvectors before and after the old ones as they start in that state.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 28 17:00:54 2017 +0100

    valgrind: Add suppression for dbm_open(3)'s write(2).
    
    It writes bytes from an area it mallocs, but doesn't set all of those
    bytes first.  See with gdbm 1.13-1 on Arch Linux.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 28 12:45:26 2017 +0100

    sbr/vector.c: Only allocate bvector storage for set bits.
    
    Now that a pointer to all the bit storage doesn't escape vector.c,
    there's no need to allocate storage, that's initialised to 0, just to
    then clear a bit in it.  Only extend the bits's storage for set bits.
    Remove the unused initial size parameter from bvector_create() as it
    simplifies the implementation.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 28 12:27:44 2017 +0100

    sbr/vector.c: Add bvector comments, tidy identifiers.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 28 12:16:01 2017 +0100

    sbr/vector.c: Rewrite BVEC_BYTES(n) macro to remove branch.
    
    Use the idiom of integer truncation.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 28 12:12:15 2017 +0100

    sbr/vector.c: Use new BVEC_BITS_BITS macro.
    
    Factors out a common expression from a few other places.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Apr 27 00:14:28 2017 +0100

    sbr/vector.c: Zero the growth with memset(3), not loop.
    
    When the resize functions grow the vectors, as they always do, zero the
    new slots with memset(3) rather than a for loop.  Particularly of note
    for the bit vector where it was bvector_clear()ing one bit at a time.
    Although a NULL pointer needn't have a representation of all-zero bits,
    the code was already assuming that, e.g. on the initial allocation, so
    we're no worse off.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Apr 26 13:41:27 2017 +0100

    sbr/vector.c: Change bvector_bits() to return first word.
    
    Rename it to bvector_first_bits() to represent its new behaviour.  It
    has only one caller that uses it to produce debug.  Tighten the API so
    other callers don't get access to the location of the bvector's bits.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Apr 25 23:21:21 2017 +0100

    sbr/vector.c: Embed initial vector storage in header struct.
    
    Instead of a malloc(3)'d struct bvector having a pointer to a separately
    malloc'd area for the bits in the normal case of the default initial
    size, have non-malloc'd storage in the struct itself, and set the
    pointer to that.  It's two unsigned longs, which is less than the
    previous default of 256 bits for struct bvector, but still double the
    pre-bvector norm of one word on 32 and 64-bit architectures.
    
    This halves the mallocs needed to create a struct bvector in the common
    case, but does mean that embedded memory is wasted should it not be
    enough.  That's probably an unusual case.  It also means derefencing the
    pointer to the bits probably hits the same cache line.
    
    Have separate initial sizes for string and int vectors.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Apr 25 00:20:08 2017 +0100

    sbr/vector.c: Remove `vec' argument from BVEC_OFFSET(), etc.
    
    A few macros took a struct bvector pointer as their first argument just
    to get the sizeof one of its fields.  This can be done with a NULL
    pointer so remove that argument from all of them.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 24 23:47:46 2017 +0100

    sbr/vector.c: Delete unused bvector_maxsize() and ivector_size().
    
    May as well keep the proffered interface as small as possible so the
    implementation can make greater assumptions knowing some internal
    details aren't available.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 24 22:58:56 2017 +0100

    sbr/vector.c: Move assert(3)s into bvector_create().
    
    Rather than asserting on every bit-related operation, assert just when
    creating the vector.  Whether the assertion is true is decided at
    compile time, so it only needs checking once;  once for every vector is
    an easy compromise.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 24 22:08:09 2017 +0100

    sbr/vector.c: Replace Nbby with <limits.h>'s CHAR_BIT.
    
    POSIX mandates CHAR_BIT is 8;  see stdint.h(0p).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 24 21:19:56 2017 +0100

    sbr/vector.c: calloc(3) rather than malloc(3) and memset(3).
    
    calloc(3) tells libc upfront that the memory needs to be zeroed rather
    than giving it the news later with memset.  Perhaps this allows it to
    allocate from a CoW page of zero bytes, or it benefits from some other
    way in memset not having to clear each bit, but it knocks about 15% off
    the wall-clock time and the number of library calls under ltrace(1).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 24 21:13:52 2017 +0100

    sbr/folder_read.c: Don't clear newly created bvectors.
    
    The newly created bvectors are already clear;  don't loop clearing each
    again with memset(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Apr 26 00:14:26 2017 +0100

    sbr/fmt_scan.c: Only wcwidth(3) a valid mbtowc(3) result.
    
    The assert(3) added by 80a9e99f7078199500d2d53c8d77d1b92af06fbc is
    failing, but not reproducibly.  It's probable that mbtowc() is returning
    a negative, and not altering wide_char, leaving it as random stack
    content.  Taking its wcwidth() then sometimes also returns negative,
    causing the assert() failure.  Initialising wide_char before the call
    isn't a solution as it isn't documented if it's modified to an invalid
    value on an error return.
    
    Instead, delay calculating the wcwidth() until after the possible
    substitution of "?".  Leave the assert() in place.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 16:17:09 2017 +0100

    Remove return statements at end of void functions.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 16:10:59 2017 +0100

    tws.h: Remove ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST.
    
    Code that's conditional on its definition has been kept;  just the tests
    removed.  The comment explaining its purpose has been kept, just without
    the "If defined...".

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 15:48:53 2017 +0100

    Use C's `++', `+=', etc., not the longhand.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 15:19:33 2017 +0100

    Remove unneeded incomplete, member-less `struct tag;'.
    
    The forward declaration isn't needed to typedef based on the struct.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 14:47:20 2017 +0100

    mh.h: Compact the reserved sequence bit-masks.
    
    Removes the gap created by axing DELETED.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 14:36:57 2017 +0100

    mh.h: Remove unused MODIFIED and DELETED macros.
    
    MODIFIED was a folder attribute used by msh(1), and DELETED a message
    attribute that may have last been used in the 1980s.
    Adjust corresponding FBITS and MBITS definitions.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 14:36:47 2017 +0100

    md5.h: Remove unused UINT2 typedef for unsigned short.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 13:50:02 2017 +0100

    ap.man, dp.man: Add fmttest(1) to SEE ALSO section.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 13:33:57 2017 +0100

    tws.h: Remove zero-valued TW_SNIL macro, used once.
    
    Macro TW_SNIL was the zero value for a two-bit field.  It was only used
    once, and that is better ordered to check for bits set with none set
    being the last, else, case, rather than in the middle.  Kept the
    behaviour of undefined value 3 being treated as TW_SIMP, 2.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 13:18:20 2017 +0100

    tws.h: Remove redundant TW_SZONE and TW_SZNIL bit-masks.
    
    TW_SZONE is a mask of one bit that can either be 0, TW_SZNIL, or set,
    TW_SZEXP.  Rather than three macros for the single  bit, have one,
    TW_SZEXP.  Simplifies the test too when the mask is known to be one-bit
    wide.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 11:01:18 2017 +0100

    mh-format.man: Fix `Return' column heading alignment.
    
    Two of the column headings were separated by spaces rather than a tab.
    The other two similar tables used `Return' instead of `Result', so
    switch to that at the same time.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 09:48:13 2017 +0100

    sbr/dtime.c: Remove struct-assigning twscopy().
    
    Historically, twscopy() assigned all the struct's members individually,
    but that was `#if 0'd as far back as the repository goes.  The one
    caller now uses assignment, making clear the direction of data flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 09:28:24 2017 +0100

    uip/sortm.c: Remove unused variable and dlocaltimenow() call.
    
    read_hdrs() has a auto `struct tws tb'.  It's only use is as the
    destination for dlocaltimenow()'s result.  Remove the variable.  Also
    remove the dlocaltimenow() call;  this I'm unsure about as it has a side
    effect of calling tzset(3).  However, tests pass.  Repository history
    sheds no light.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 09:19:13 2017 +0100

    sbr/dtimep.l: Remove always false `europeandate' flag.
    
    Switched from reverse-podium MM/DD/YY interpretation to DD/MM/YY.
    Never set so conditional code unused.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 00:47:32 2017 +0100

    Append descriptions to C source files with first-line filenames.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 00:29:02 2017 +0100

    Add first-line comment describing C source's purpose.
    
    I had a stab at them after a bit of a skim;  they're better than
    nothing.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 23 00:02:41 2017 +0100

    Ensure a space after `#!'.
    
    The majority of the `#!' scripts have a space before the `/';
    add one to the three deviants.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 23:36:19 2017 +0100

    Correct first-line comments where filename is wrong.
    
    Having jiggled the start-of-file comment about, it's apparent that a few
    files either don't know their own name, or the format the rest of the
    gang follow.  To wit, "basename(filename) -- ...".

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 23:19:39 2017 +0100

    Replace "/*\n * " with "/* " at the start of a file.
    
    Pulls the meat of the comment onto the file's first line, now that the
    blank line at the start of the file has been deleted.  Allows `sed -ns
    1p ...' or similar to give a summary of lots of files.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 19:05:32 2017 +0100

    Remove leading and trailing blank lines from code.
    
    Many of the main source file start with a blank line, and many end with
    one or more too.  They seem to serve little purpose so delete them.
    This makes all the files consistent in not having them and ideally the
    first line of a C source file will say something about its content in
    time instead of just "/*".  Avoided editing format files, etc,. where
    the line could be significant, and historical files.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 18:37:15 2017 +0100

    mts/smtp/smtp.h: Remove one-use rp_isbad() macro.
    
    It just cast its argument to signed char, and the sole user can do that
    itself a few lines later.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 18:32:55 2017 +0100

    mts/smtp/smtp.h: Remove unused `MMDF' macros.
    
    The header file has a specification of a historical interface and
    removing the unused parts leaves it incomplete, but it's unlikely those
    parts will be needed and what remains seems more understandable;  partly
    due to it being less to grok, and also because it relates more to modern
    use.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 18:21:01 2017 +0100

    mts/smtp/smtp.c: Remove unused SM_... timeout macros.
    
    SM_TEXT, SM_CLOS, and SM_AUTH are unused.
    Alter the comment for the block of macros to state they're timeouts in
    seconds.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 17:28:18 2017 +0100

    h/mf.h: Remove many unused macros;  some UUCP related.
    
    MF... were "Codes returned by uucp2mmdf(), mmdf2uucp()".
    A spot check of the others shows they've not been used in this git
    repository.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 17:16:54 2017 +0100

    sbr/mf.c: Remove unused functions: isfrom, lequal, mfgets.
    
    isfrom(s) checked for /^>?From /.
    lequal(a, b) was another case-insensitive strcmp(3).
    mfgets(fp, line) fetched a header at a time from fp, indicating when the
    end of headers was reached.
    Investigating their historical usage was, ironically, made too tedious
    to complete by the pollution of mass commits of historical MH.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 16:51:02 2017 +0100

    uip/mhbuildsbr.c: Remove unusused MAXURLTOKEN macro.
    
    "Maximum size of URL token in message/external-body".
    Uses deleted in 95ad91ca30e1cda09efe454d12ed790a60661f56.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 16:48:13 2017 +0100

    sbr/dtime.c: Remove unused `struct zone' definition.
    
    The uses went in 6a68057d8ef48bef3ee752741a53a629a2840e68.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 16:46:33 2017 +0100

    uip/post.c: Don't bother naming `struct oauth_profile'.
    
    It's never used, and one more identifier to track when reading.
    If there's no name, that's a signal it's not used elsewhere.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 16:42:51 2017 +0100

    h/nmh.h: Remove unused NLENGTH(dirent) macro.
    
    It just does a strlen(3) of its argument's d_name;  that's not even done
    longhand anyway.  And its name is very generic for such a narrow task.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 16:41:00 2017 +0100

    h/mts.h: Remove unused isdlm{1,2}() macros.
    
    They just do a strcmp(3) of their argument against mmdlm{1,2} and test
    it's "equal".  That's more clearly written longhand than have yet
    another small-scope, specialised, macro to recall;  as practice bears
    out.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 16:39:29 2017 +0100

    h/mh.h: Remove unused set_deleted() macro.
    
    Its comment says "for msh only".

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 14:31:10 2017 +0100

    h/tws.h: Remove TW_YES and TW_NO;  TW_SUCC good enough.
    
    TW_SUCC is a macro for the bit-mask 0x0040.  TW_YES, a vague name, was
    the same value.  TW_NO was 0, and unused by the code.  Ditch both those
    as TW_SUCC is sufficient for setting and testing.  Alter its comment to
    make clear it means parsing was successful.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 14:10:41 2017 +0100

    docs/FAQ: Replace suggestion of NOMHNPROC with -nocheckmime.
    
    Environment variable NOMHNPROC was removed in 1.6, as stated in NEWS.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 01:00:29 2017 +0100

    sbr/discard.c: Simplify by inverting initial test.
    
    The function used to return early, but these days that's just avoiding a
    single statement, so execute that conditionally instead.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 22 00:48:47 2017 +0100

    sbr/lock_file.c: Move static variables into their functions.
    
    A couple of file-scoped statc ints were the typical "if this function is
    being called for the first time" flags.  Move each into their respective
    functions.  Make them bools.  Name them so the initial value is zero,
    thus placing them in BSS.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 21 14:01:21 2017 +0100

    send and whatnow: Remove deprecated -attach... switches.
    
    They were changed to do nothing but warn on stderr that they were
    deprecated in 521674623 and 035c5db34, both before 1.6's release, and so
    can be removed ready for 1.7's release.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Apr 20 14:27:46 2017 +0100

    uip/dropsbr.c: Fix buffer overrun in mbx_copy().
    
    The overrun occurs frequently, but typically zeroes a byte of a
    character pointer on the stack that's not yet been used.
    Caused by 28610ff9a604a75ae0c383be03aa19415ddb1965 appending a NUL after
    the bytes stored by read(2).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Apr 18 15:37:54 2017 +0100

    h/mime.h: Delete unused isatom(c) macro.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Apr 18 12:54:28 2017 +0100

    man/*.man: Fix some multi-word .B invocations.
    
    Some needed to be .B for the first word, but .I for the second, or just
    plain text for the rest of the words that should be on their own line.
    Others were just plain wrong and became .IR for a man-page reference.
    Then the .TP macro uses an input trap so only a single following line of
    source is used and this prevents a two-line `.B .I', so use embedded
    font escapes instead.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Apr 18 01:14:57 2017 +0100

    man/*.man: Use italic for emphasis, not bold or SHOUTING.
    
    When reading a body of text, italic is sufficient to add emphasis to
    what's already being read.  Bold draws the eye to the word on the page
    and is more useful for keywords, concepts, etc.  Some `.B' remain that
    should probably be `.I', but they looked to have other problems so I
    left them out of this pass.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Apr 18 00:27:35 2017 +0100

    README.manpages: `user ID', not `user-id'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Apr 18 00:24:07 2017 +0100

    man/*.man: Replace minus sign with hyphen: `\-' with `-'.
    
    Conservatively changed many of the troff minus-signs, `\-', with a troff
    hyphen, `-'.  Where it wasn't quickly obviously, I left it unchanged.
    There were also cases that shouldn't be either minus sign or hyphen.
    Those were changed to hyphen and still need to be fixed properly.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 23:36:28 2017 +0100

    README.manpages: It's a `From header', not a `From: header'.

Author: David Levine <levinedl@acm.org>
Date:   Mon Apr 17 18:06:05 2017 -0400

    Use stat(3) instead of lstat(3), to dereference symbolic links.
    
    Fix to commit 4318012376e06229307c0ed4f62a00faae9edc63.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 14:53:28 2017 +0100

    Don't ignore bit 5 of a char when comparing alias names.
    
    It's a crude method of ignoring case, but makes `^' equal to `~'.
    Use tolower(3) instead.
    http://lists.nongnu.org/archive/html/nmh-workers/2017-03/msg00050.html

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 14:34:14 2017 +0100

    man/mh-profile.man: Note MHTMPDIR is deprecated.
    
    In future, only TMPDIR and /tmp will be used, e.g. not `mhpath +'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 14:06:36 2017 +0100

    README.manpages: Add `Common errors and subjective conventions'.
    
    Based partly on recent mailing-list posts about Larry's patches.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 13:32:47 2017 +0100

    README.manpages: Add question to guide update of .TH's date.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 13:29:38 2017 +0100

    README.manpages: Clarify that man-page source is ASCII.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 12:10:35 2017 +0100

    Fix post's die() to save errno before unlink(2)ing.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 11:50:39 2017 +0100

    Allow advertise() to assume strerror(3) won't fail.
    
    The code already assumes that elsewhere when it calls strerror().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 11:42:39 2017 +0100

    Change admonish(NULL, "foo") to inform("foo, continuing...").
    
    Removes more uses of the ad... functions with unneeded parameters.
    Puts the "continuing" at the call site rather than the reader having to
    remember it's being magically appended.  (Some calls were passing
    "foo\n" that would result in "foo\n, continuing...\n" appearing.)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 11:13:36 2017 +0100

    Don't store getname()'s return value during flushing.
    
    `cp' after the loop is overwritten before being read.
    Not storing the return value makes it clear it's not used.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 11:06:12 2017 +0100

    Improve function comments for the ad... diagnostic functions.
    
    Give the resulting layout of parameters that appears on stderr.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 10:57:54 2017 +0100

    Fix bug in advertise("", "", "foo", ap).
    
    A non-NULL but empty `what' would result in "fooerrno\n" without
    separation.  Improve the function's comment to try and make it obvious
    how its out of order parameters appear.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 10:42:09 2017 +0100

    Replace advise(NULL, fmt, ...) with inform(fmt, ...).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Apr 17 10:16:51 2017 +0100

    Add inform() to provide an equivalent to advise(NULL, ...).
    
    A small step in clearing up the confusing ad... names of the diagnostic
    routines.  `inform' isn't great, but err(3) nabs `warn' already.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 16 23:49:00 2017 +0100

    Replace add(nonnull, NULL) with mh_xstrdup(nonnull).
    
    Only a few cases where it's obvious that the first parameter will not be
    NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 16 23:36:07 2017 +0100

    uip/aliasbr.c: Add FIXME to prove test of add()'s return value.
    
    add() always returns true so perhaps some other test is intended
    instead.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 16 23:25:32 2017 +0100

    man/*.man: Replace \(ru with an underscore, e.g. .mh_profile.
    
    The character is an underscore, and that's what's wanted.
    \(ru gives a "rule", which draws as a thick baseline in PDFs;
    not a character at all.
    Other devices map \(ru onto underscore, e.g. ASCII,
    but an underscore should be used in the first place.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 16 14:01:42 2017 +0100

    Replace some strdup() with mh_xstrdup().
    
    (This is an old patch I had stashed.)
    Some surrounding `if...adios()' are removed too, but most of the
    strdup() calls weren't being checked for success, thus their
    replacement.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 16 00:35:11 2017 +0100

    Remove unneeded `\&' from man pages.
    
    The zero-width character is used before a command character that is
    intended to be literal but may end up at the start of a line.
    Similarly, it's used after an end-of-sentence character when it may end
    up at the end of the line but isn't the end of a sentence.
    Remove the other cases because they're noise that confuses the issue of
    when `\&' should be used.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Apr 16 00:34:01 2017 +0100

    Alter mh-chart(7)'s NAME to be lowercase.
    
    And mention the commands' options.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 20:14:42 2017 +0100

    man/*.man: No need for empty comment to be comments.
    
    A line that's just a `.' suffices.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 20:11:33 2017 +0100

    Ensure .TH is the first line of a man page.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 19:17:31 2017 +0100

    Fix errors in man-page NAME sections.
    
    man/fmttest.man didn't have a NAME section, but a FMTTEST one.
    And it broke lexgrog(1) by splitting the section over multiple lines and
    using `.IR'.  Re-write to use inline escapes.
    man/rcvtty.man had two spaces before the `\-'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 15:29:02 2017 +0100

    Switch date to yyyy-mm-dd in generated mh-chart.man.
    
    It's still today's date, but improving on that seems non-trivial.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 14:48:02 2017 +0100

    Specify yyyy-mm-dd date format for a man page's .TH date.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 14:36:51 2017 +0100

    Use `Unix', not `UNIX', in man pages.
    
    "...in deference to dmr's wishes."
        — http://catb.org/jargon/html/U/Unix.html

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 14:25:12 2017 +0100

    Fix forward-reference and `news.*' in mh-alias(5)'s example.
    
    Spotted by Bob Carragher.
    The example's forward reference was made a backward one, and `news.*'
    explanation removed, in ff3060cefb460cce2174058eefff38b6e11ee2f1.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 11:31:22 2017 +0100

    Set man-page date to last significant change, UTC.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 13:26:42 2017 +0100

    Wind man-page date back to last significant change, UTC.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 14 18:34:43 2017 +0100

    Wind man-page date back to the earliest git revision, UTC.
    
    No significant changes since then, and I can't find an earlier reference
    date.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Apr 15 13:21:07 2017 +0100

    Convert, already correct, man-page date to UTC.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 14 23:49:21 2017 +0100

    Convert, already correct, man-page date to yyyy-mm-dd format.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 14 15:55:47 2017 +0100

    Remove trailing spaces from lines in man pages.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Apr 14 15:51:58 2017 +0100

    Escape literal leading full stop in man/new.man.
    
    Error made in 5e32ede8e40251bf02f35b864e32a86e91599b3f.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 23:20:07 2017 +0000

    Editing of man/rmm.man.
    
    - formatting, mostly
    - don't make NOT bold

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 23:09:32 2017 +0000

    Editing of man/rmf.man.
    
    - delete trailing whitespace
    - remove some \- things
    - some formatting
    - sort SEE ALSO

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 23:02:00 2017 +0000

    Editing of man/repl.com.
    
    - unashamedly add nmh to .SH NAME
    - replace the delightfully baroque 'may be used to produce a reply
      to an existing message' with 'may be used to reply to a message'.
    - remove some \- objects
    - deflower 'repl uses a reply template to guide its actions'
    - remove multiple instances of 'replied\-to', with 'replied to'
    - change 'tab\-stop' to 'tab stop'
    - some formatting
    - replace .B mhbuild with .IR mhbuild (1)
    - replace whatnow with .B whatnow

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 19:05:21 2017 +0000

    Editing of man/refile.man.
    
    - some formatting
    - change .B mh\-sequence (5) to .IR mh\-sequence (5)

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 18:54:52 2017 +0000

    Editing of man/rcvstore.man.
    
    - delete some \- things
    - some formatting
    - change protection to mode, in line with inc.man
    - Uncapitalize .SS Locking and \-unseen
    - sort SEE ALSO

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 18:21:58 2017 +0000

    Editing of man/prompter.man.
    
    - remove some \- items; quite a few, actually
    - put .B prompter on a line by itself, a number of times
    - some formatting

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 17:54:58 2017 +0000

    Editing of man/prev.man.
    
    - Delete trailing whitespace

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 17:52:22 2017 +0000

    Editing of man/post.man.
    
    - Delete trailing whitespace
    - Change inline mh-profile(5) refs to .IR mh-profile (5)
    - Some formatting
    - Change take to read
    - Say 'all message drafts' instead of 'all message draft'

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 17:35:37 2017 +0000

    Editing of man/pick.man.
    
    - Some formatting
    - Delete trailing whitespace
    - Change complimentary to complementary, because English
    - delete some \- things

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 17:21:19 2017 +0000

    Editing of man/packf.man.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 17:08:00 2017 +0000

    Editing of man/next.man.
    
    - Delete trailing whitespace

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 01:19:47 2017 +0000

    Editing of man/rcvtty.man.
    
    - Add missing 'command'
    - Some formatting
    - Remove a \-, the mark that dare not speak its name
    - Use 'switches' instead of 'options'
    - Sort SEE ALSO programs

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 24 00:54:05 2017 +0000

    Editing of man/mhfixmsg.man.
    
    - 8bit -> 8-bit, nbit -> n-bit, except in flags and error msgs
    - Add nmh to .SH NAME
    - Formatting
    - use .B for -outfile
    - use .IR for mh-profile (5)
    - sort SEE ALSO programs

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 22:52:46 2017 +0000

    Editing of man/mhstore.man.
    
    - store -> stored
    - some formatting

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 22:08:44 2017 +0000

    Editing of man/mhshow.man.
    
    - Add some stray s's
    - Some formatting
    - Remove an \- object (I now pronounce \- as uh-unh; it's easier this way)
    - Use alternative instead of alternate

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 21:07:49 2017 +0000

    Editing of man/mhpath.man.
    
    - Add some commas
    - Some formatting
    - Delete empty .PP

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 20:24:19 2017 +0000

    Editing of man/mhparam.man.
    
    - Add some commas
    - Some formatting
    - Delete 'just'

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 20:11:10 2017 +0000

    Editing of man/mhmail.man.
    
    - Add reference to nmh in .SH NAME
    - Delete empty .PP
    - Remove a few 'various'es
    - Some formatting
    - SEE ALSO in alphabetical order

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 18:12:46 2017 +0000

    Editing of man/mhlist.man.
    
    - Make clear that -headers is the default
    - Some formatting

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 17:31:12 2017 +0000

    Editing of man/mhl.man.
    
    - Refer to environment variables (in text) without preceding $
    - Don't put environment variables in bold (as per most other pages)
    - Some better formatting

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 17:05:26 2017 +0000

    Editing of man/mhical.man.
    
    - Don't use capitalised .SH, when uncapitalised .SS will do
    - Remove some early .SH/.SS to improve narrative
    - Delete superfluous .fi
    
    It could be argued that each of the (now) .SSs, which have been
    demoted from .SHs, are unnecessary or, at least, not in line with
    the other man pages . Demotion may suffice, for now.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 14:15:46 2017 +0000

    Editing of man/mhbuild.man.
    
    - EDTIOR -> EDITOR
    - remove some \- things
    - formatting
    - use 8-bit, like 7-bit

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 01:49:06 2017 +0000

    Editing of man/mh-tailor.man.
    
    - Straighten up some formatting
    - Don't escape hyphens unecessarily
    - Pluralise message (so that outgoing messages...)

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 01:29:20 2017 +0000

    Editing of man/mh-sequence.man.
    
    - Don't escape hyphens unecessarily
    - Remove duplicate 'when' (when when)
    - Straighten up some formatting
    - Bring RFC reference into line (don't hyphenate)

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Mar 23 00:46:53 2017 +0000

    Editing of man/mh-profile.man.
    
    - Clean up some formatting
    - Replace an .sp with a .PP
    - Remove a couple of empty .PPs and .REs
    - Make the good English, yes please

Author: Larry Hynes <larry@larryhynes.com>
Date:   Wed Mar 22 22:57:13 2017 +0000

    Editing of man/mh-mime.man.
    
    - Clean up .SH NAME to one line without .IR nmh (7) on it
    - Don't use escaped hyphens when not necessary
    - Clean up some formatting
    - Use 'Attach:' consistently (instead of 'Attach')

Author: Larry Hynes <larry@larryhynes.com>
Date:   Tue Mar 21 22:56:39 2017 +0000

    Editing of man/mh-mail.man.
    
    I think we can rise above ourselves, and delete 'antiquated'.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Tue Mar 21 22:35:50 2017 +0000

    Editing of man/mh-folders.man.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Tue Mar 21 19:54:56 2017 +0000

    Editing of man/mh-draft.man.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Tue Mar 21 01:48:34 2017 +0000

    Editing of man/new.man.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Tue Mar 21 01:31:52 2017 +0000

    Mention `nmh' in man-page NAME section for apropos(1).

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sun Mar 19 23:40:59 2017 +0000

    Replace `maildrop' with `mail drop' in man pages.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sun Mar 19 14:51:30 2017 +0000

    Review inc.man.
    
    First cut at a cleanup of inc.man, including: maildrop -> mail drop;
    Ralph's mode/octal suggestion, with a change (by me) to refer to
    chmod(1).

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 2 09:26:17 2017 -0400

    Attempt to fix test-ap on fbsd-10 build host.

Author: David Levine <levinedl@acm.org>
Date:   Sat Apr 1 18:53:26 2017 -0400

    Check for sufficient room for multi-column character.
    
    Fix to commit 92128dacf8d5db02379e8f872dc50d31c6aaa55f.  The sympton,
    reported by Valdis, was overrun of scan -width.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 25 07:47:53 2017 -0400

    Escaped repl, in case the user has it as a shell alias.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 25 07:46:45 2017 -0400

    Added etc/rmmproc.messageid.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Mar 22 14:47:18 2017 +0000

    Fix free(3) of unmalloc()'d string in whatnow's refile.
    
    `ref +foo' at comp(1)'s whatnow prompt was trying to free "+foo".
    Take a copy of the string so the later free works.
    Tom Rodman reported the problem to nmh-workers.
    Bug introduced in 3b6be5607a251a3a793e97382e251ce66ea2bca0.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Mar 22 10:51:34 2017 +0000

    Work around flex 2.6.3 bug by conditionally #undef yywrap.
    
    There's no sign on https://github.com/westes/flex/issues/162 that they
    will release a new flex with the fix soon.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Tue Mar 21 12:49:12 2017 -0400

    Cleanup of .SH NAME sections.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sat Mar 18 13:49:06 2017 +0000

    Fixed forw.man to pass test-manpages.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 18 16:53:15 2017 -0400

    Added test case for commit 4318012376e06229307c0ed4f62a00faae9edc63.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 18 09:49:31 2017 -0400

    Don't let parse_mime() try to parse a directory.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Mar 17 12:36:06 2017 -0400

    Cleanup to forw(1) man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 26 22:50:42 2017 -0500

    Added /* FALLTHRU */ comments where gcc 7 noticed their need.
    
    And replaced similar comments to be consistent.  Used that comment
    because it satisfies gcc -Wimplicit-fallthrough=4.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 26 14:07:38 2017 -0500

    Separate out backquote expression to please Heirloom shell.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 26 13:41:34 2017 -0500

    Tweaked to work with Heirloom shell.
    
    Shell parameter expansion ending in space needs it to be quoted.

Author: David Levine <dlevine@akamai.com>
Date:   Tue Feb 21 10:31:57 2017 -0500

    Echo CFLAGS in configure line, and only include if set.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 19 17:05:12 2017 -0500

    Change "servers" mts.conf entry to only support a single SMTP server.
    As part of this change, fix SMTP code so the chosen SMTP server is
    configured correctly for the netsec code.

Author: David Levine <dlevine@akamai.com>
Date:   Sun Feb 19 14:05:25 2017 -0500

    Reworked handling of multiple, space separated, smtp servers.

Author: David Levine <dlevine@akamai.com>
Date:   Sun Feb 19 14:00:04 2017 -0500

    Suppress getcanon exit status check.
    
    To allow tests to run when the local hostname doesn't resolve.

Author: David Levine <dlevine@akamai.com>
Date:   Sun Feb 19 13:58:20 2017 -0500

    Support mhparam -debug along with -all.
    
    Fix to commit 234c9cc4829d86589a079ace49cfa5bc251ef62c.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Feb 18 14:47:56 2017 +0000

    Limit mhparam's exit status to 120 missing components.
    
    Otherwise, 126 and 127 would clash with bash and zsh's use.
    Higher than 127 would look like signals.  And 256 would wrap
    to a falsely succesful zero.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Jan 17 12:54:02 2017 +0000

    mhfixmsg: Use folder name to open second message of a sequence.
    
    `mhfixmsg foo' where foo was sequence of more than one message would
    sucessfully process the lowest numbered message of the sequence, but
    fail to open(2) the second one as the folder was missing from the path.
    For example, /home/ralph/mail/inbox/1 was used to open the first, but
    /home/ralph/mail/2 was attempted for the second.  I guess this was
    because a static array was being trampled during the first's processing,
    though didn't try too hard to find where.  Making a copy of it fixed the
    problem.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 10:57:09 2017 -0500

    Remove unused test file.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 10:51:40 2017 -0500

    Added delay for output file to be closed.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 10:16:22 2017 -0500

    Fixed references to --with-cyrus-sasl, and --without-, in comments.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 11 21:37:52 2017 -0500

    Make sure we always generate a Content-ID header for message/external-body
    entities, as required by RFC 2045.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 21:32:20 2017 -0500

    Fixed permissions on test script.
    
    Fix to commit 77fff244ad1bb1e746c78bedc87659400e2c6535.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 20:53:41 2017 -0500

    Rearranged check for whether to skip param value checks so
    that no files are left over.
    
    Update of commit 2cf4ff9dd2fba77c7f98bbd706b00d2e79a11a3b.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 20:49:12 2017 -0500

    Added valgrind suppressions for system libs on MacOS El Capitan.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 18:54:40 2017 -0500

    Fixed commit 60052b95778a065760a437859ee9b8a1cc4e39a9, wrong sense.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 18:00:05 2017 -0500

    Removed if ! bash-ism.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 17:38:27 2017 -0500

    Fixed a couple of tests to not fail when there is no text browser.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 17:37:52 2017 -0500

    Added missing AC_SUBST of AM_LDFLAGS.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 23:55:50 2016 +0000

    crawl_context: Remove unused struct member `total'.
    
    It was maintained inconsistently, and checking what problems that caused
    showed it wasn't used.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sun Jan 1 23:15:56 2017 +0000

    Changes to folder.man
    
    Kill a couple of empty .PPs, resurrect a lost .SS, a little bit
    of slash and burn, stray whitespace, the usual.
    
    As far as I know, which is not far, the \- construct is only
    required for \-args, not, e.g., sub\-folder.
    
    I've changed instances of 'subfolder' to sub-folder.
    
    I've changed the 'the' in
    
    	These folders are all preceded by the read-only...
    
    to 'any'.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sat Dec 31 17:57:13 2016 +0000

    Changes to install-mh.man
    
    Some more simple wordsmithing...
    
    Change instances of 'Install-mh' to 'install-mh', in line with
    other pages, switch to single `' around 'Mail', in line with
    other pages, option -> switch, clean up a little.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sat Dec 31 15:57:42 2016 +0000

    A cleanup, and possibly some controversy: I've replaced
    
    	Rather than standard message skeleton
    
    with
    
    	User message skeleton
    
    My thinking here is that a) we can do away with the kinda weird
    'Rather than', b) I find the distinction between 'default' and
    'standard' to be vague and c) it only appears in a few pages
    and is easily remedied. It turns up in comp(1) as "An alternative
    to the standard skeleton.", where 'standard' is used in the same
    way as 'default' is used in rcvdist(1), so I think it's worth
    settling on something 'better' and applying it consistently.
    
    My proposal is 'Default foo', for the foo in %nmhetcdir% and
    'User foo' for the foo in the user's <mh-dir>.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sat Dec 31 15:54:55 2016 +0000

    Fix skeletons in comp(1), forw(1) and dist(1)
    
    While I was here, I removed two 'empty' paragraphs (.PP) in forw(1).
    They may have been intended as line breaks, but I think they are
    unnecessary; feel free to overrule me!
    
    Aside: I would not be unhappy if, some day, 'skeleton' was replaced by
    something utilitarian like 'template'.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 31 09:30:07 2016 -0500

    Remove .w3m from test directory.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 31 09:22:19 2016 -0500

    Reverted commit 316068ee3b7105ea802c63b732ee4cfb584a2600.
    
    It was a repeat of commit 30a9c9b62fa92df289079080eb5ee57d2fda3951.
    Also, wrapped a few $MH_TEST_DIR with quotes.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Dec 29 21:47:21 2016 -0500

    Clean up, and change .SS case to Title Case, from UPPER,
    in line with other pages.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Dec 23 16:29:36 2016 +0000

    Changes to rcvpack.man

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 21 15:38:11 2016 -0500

    Make the -fcc switch to repl actually work properly, and make sure that
    any Fcc header in a replied-to message is not carried over to the draft.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Wed Dec 21 16:58:51 2016 +0000

    Changes to fmtdump.man
    
    Add a reference to fmttest(1), delete a superfluous 'the',
    delete the '...is simply...' line.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 20 11:49:20 2016 -0500

    Added check of -fcc with no fcc in components.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 20 11:48:27 2016 -0500

    Protect repl -file against dereference of null mp.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 19 11:20:54 2016 -0500

    Removed #ifdef FT_PAUSE protection.
    
    FT_PAUSE is unconditionally defined in h/fmt_compile.h.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 19 11:18:38 2016 -0500

    Removed unused references to FT_ADDTOSEQ.
    
    They were #ifdef LBL relics.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Mon Dec 19 01:17:10 2016 +0000

    Changes to mh-format.man
    
    This is a beast, and we may not tame it at the first attempt.
    
    Mostly language simplification, some grammar and formatting, trailing
    whitespace, that sort of thing. There are one or two instances where
    I've taken (small) liberties with language, in favour of 'comprehension
    at first glance'.
    
    There are some commented lines hanging around in this. I've left
    them in, but I think they should go at the first opportunity.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 19 11:11:27 2016 -0500

    Removed obsolete comment about use of getcpy().

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sat Dec 17 19:28:30 2016 +0000

    Changes to dist.man
    
    Switch 'in place' for inplace, remove 'in truth of fact'.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Sat Dec 17 19:28:31 2016 +0000

    Changes to flist.man
    
    Replace 'option' with 'switch' in a couple of places, correct
    (hopefully) a few sentences, restore '.SS "Multiple Folders" to its
    rightful place.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Fri Dec 16 22:55:39 2016 +0000

    Changes to comp.man
    
    Remove the slightly legalistic 'in truth of fact', and bring the
    mention of man whatnow into the preceding sentence.
    
    The line 'If the draft already exists, comp will ask you as to the
    disposition of the draft.' makes no sense to me, and I'm struggling
    to make it make sense. If we put to one side the fact that I think
    it's a broken sentence, I still haven't managed to get comp to
    accept - or prompt me for - a 'replace' option when 'the draft
    already exists', so I'm afraid I have to admit defeat here and seek
    the wisdom of the elders.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Dec 15 21:57:35 2016 +0000

    Changes to burst.man
    
    I'm not sure how relevant burst(1) is these days, but here goes...

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 15 17:44:56 2016 -0500

    Added clarifications to abbreviations.
    
    1) N must be a positive number.
    2) The + can be omitted.
    3) As many of the N messages that exist.
    4) Can also use - (or +) with first, prev, next, and last.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Thu Dec 15 18:33:15 2016 +0000

    Changes to nmh.man
    
    This adds a reference to the 'COMMANDS' section, corrects - and
    hopefully simplifies - a couple of things, and tries to untangle
    the line beginning 'show displays...' in the seventh paragraph.
    
    The line 'The first, previous, next or last messages, if they exist.'
    doesn't seem to accurately cover the accompanying 'foo:N' listing
    in the following, or am I missing something?
    
    first:N
    prev:N
    next:N
    last:N    The first, previous, next or last messages, if they exist.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Tue Dec 13 20:14:11 2016 +0000

    Changes to ali.man
    
    The following is the beginning of an attempt to clean up the manual
    pages somewhat.
    
    grep tells me that 'switch' is used 193 times, whereas 'option' is
    only used 51 times, so I've tried to standardise on 'switch'.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 13 16:06:38 2016 -0500

    Fixed description of anno -list switch.
    
    As noted in commit 98c2e7d95bda262ef23e8f0838e5b86d08ed4e4f.
    If -text is used with -list, its argument is required but
    ignored.

Author: Larry Hynes <larry@larryhynes.com>
Date:   Tue Dec 13 20:14:11 2016 +0000

    Changes to anno.man.
    
    (Also noted that description of -list needs to be fixed, will
    do in next commit.)

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:51:06 2016 +0000

    showbuildenv: Add comment describing exit-status convention.
    
    It helps explain why some commands are `... || true' despite no `set -e'
    being in effect.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:48:19 2016 +0000

    Revert "Test if the buildbots care about tools/showbuildenv's exit status."
    
    This reverts commit c92a4119fca5d677055dc616255a7d1efec9d750.
    They do care, showing "environment failed".

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:46:04 2016 +0000

    Rename recently added ToUpper() to to_upper().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:45:00 2016 +0000

    Rename recently added ToLower() to to_lower().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:43:59 2016 +0000

    Rename recently added TrimSuffixC() to trim_suffix_c().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:42:47 2016 +0000

    Rename recently added HasSuffixC() to has_suffix_c().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:39:21 2016 +0000

    Rename recently added HasSuffix() to has_suffix().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:36:43 2016 +0000

    Rename recently added HasPrefix() to has_prefix().
    
    Sticking with local convention, as Ken requested.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:24:27 2016 +0000

    Test if the buildbots care about tools/showbuildenv's exit status.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:19:43 2016 +0000

    Document that adios() does not return.  abort() ensures it won't.
    
    Discussion with David confirmed that adios()'s de facto contract with
    the caller is that it won't return.  Document that, and add an abort(3)
    to ensure it won't occur.  Better that than return and blunder on until
    a SEGV or corruption later.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Dec 10 14:11:13 2016 +0000

    mhlsbr.c: Don't hide mhladios and mhldone behind macros.
    
    Locally defined mhladios() and mhldone() were called as adios() and
    done() thanks to #defines that hid the widely-used functions with those
    names.  Don't bother as it confuses the reader.  Just call the local
    variations directly to make clear it's not the standard implementation.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 9 09:34:59 2016 -0500

    Generalized condition for support of parameter value tests.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 8 21:04:52 2016 -0500

    One last fix to test-charset.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 8 20:53:36 2016 -0500

    Fixed condition to enable skipping parameter value tests.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 8 20:45:57 2016 -0500

    And skip the other parameter value test on the FreeBSD10 buildbot.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 8 20:18:14 2016 -0500

    That didnt work, so skip Encoded parameter value test on that buildbot.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 8 20:03:28 2016 -0500

    Use locale that the FreeBSD10 buildbot has.
    
    It has EBCDIC-UK but not EBCDIC-US.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 8 19:51:25 2016 -0500

    Added temporary debug code.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 8 19:37:40 2016 -0500

    Try to fix Encoded parameter value test on FreeBSD10 buildbot.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 8 16:27:40 2016 -0500

    Replaced !iscntrl() with isprint().
    
    To address Ralph's FIXME comment.  One example where a byte would
    have been printed with !iscntrl() is 0x24 is ISO 646 BASIC (Inv),
    which is undefined.  Also, added test cases to cover most of
    get_param_value().  Also, replaced a couple of other FIXME's with
    code comments.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 5 11:50:40 2016 -0500

    Fixed and restored commit 9a4b4a3d3b27fe4a7ff6d0b8724ce1c06b5917eb.
    
    Using AC_CHECK_MEMBERS instead of AC_CHECK_MEMBER.  I don't know why
    the former works but the latter doesn't.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 4 17:13:09 2016 -0500

    Reverted commit 9a4b4a3d3b27fe4a7ff6d0b8724ce1c06b5917eb.
    
    It broke the build on the FreeBSD 10 buildbot, not sure why.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 4 17:02:13 2016 -0500

    Enabled detection of tm_gmtoff on _GNU_SOURCE platforms, e.g., Linux.
    
    By temporarily adding $AM_CPPFLAGS to CPPFLAGS.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 3 12:03:53 2016 -0500

    Added filename completion to bash_completion_nmh.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 25 09:02:08 2016 -0500

    Close temp file.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 23 10:05:38 2016 -0500

    Added flex 2.6.0 (with Fedora 25) output fixup.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 20 14:25:11 2016 -0500

    Open infile before fixing each message.
    
    Though the input file won't need to be opened if everything goes
    well, do it early just in case there's a failure, and that failure
    is running out of file descriptors.

Author: Larry Hynes <larry@larryhines.com>
Date:   Sun Nov 20 10:32:40 2016 -0500

    Fix nmh man page so it shows correct name of profile.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Nov 14 00:14:31 2016 +0000

    mhstoresbr.c: Factor MIME-parameter-can-be-used-for-filename test.
    
    It was several lines repeated each time, and it saves having to check
    they're all identical.  The original test pressed on if the MIME
    parameter's value was an empty string;  preserve that as it's spotted
    later on.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Nov 13 23:05:37 2016 +0000

    Split a few more if-then statements into two lines to help gcov.
    
    It's interesting to see how often some of them have the then-branch
    taken.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 19 10:37:06 2016 -0500

    Open outfile before parsing message(s).
    
    So that we don't have to risk opening it after running out of fds.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 19 10:28:08 2016 -0500

    Added application/ics entries, and "file was generated" comment.
    
    application/ics is odd but does appear in the wild, and sometimes
    without a corresponding text/calendar part.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 19 10:24:43 2016 -0500

    Added mhshow-suffix-text entry.
    
    I don't know why it wasn't there already, it's in the mhshow
    man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 13 19:40:53 2016 -0500

    Tweaked to work with Heirloom shell.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 13 17:56:44 2016 -0500

    Removed bash-ism "function" declaration.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 13 14:50:08 2016 -0500

    Replaced docs/COMPLETION-BASH with etc/bash_completions_nmh.
    
    It's generated from man/mh-chart.man, which in turn is generated.
    Automake doesn't like generated files in docs, hence the move to
    etc.  And the new filename better fits usage, I think.
    
    Did not provide support for completing message numbers.  It can
    be fooled by programs that take multiple switches with +
    arguments.
    
    COMPLETION-BASH was broken with current bash, anyway.
    
    Also, removed sbr/sigmsg.h from CLEANFILES in Makefile.am.  It
    was a leftover from commit 5776f9b783afe8e6bdbe430adb5d5b9435d25b19.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 13 09:39:01 2016 -0500

    Added copyright noticed.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 13 09:38:24 2016 -0500

    Removed unused declaration of output_message().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Nov 13 01:05:09 2016 +0000

    Replace many add(s, NULL) with mh_xstrdup(s).
    
    Where s is known to be non-NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Nov 12 18:48:20 2016 +0000

    Replace some add(FIELD, NULL) with mh_xstrdup(FIELD).
    
    The various FIELD are macros for string constants so can not be NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Nov 12 18:40:46 2016 +0000

    m_getfld: Shuffle `delim' assignments slightly.
    
    Document end state of the four pointers to parts of the delimiter.
    fdelimlen can be, wrongly, one less without causing problems because a
    second check uses edelimlen.  The only side effect is an extra iteration
    through m_getfld().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Nov 12 15:35:35 2016 +0000

    Revert "m_getfld: Shorten fdelimlen by one;  it was too long."
    
    This reverts commit 36a12f6a1a5a57799e48b23fd5ae47fe2351be68.
    
    I think it was right after all, but currently trying to get a test to
    fail with the faulty change.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Nov 12 00:55:17 2016 +0000

    Replace copy(s, d) with POSIX-1.2008's stpcpy(d, s).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Nov 12 00:39:23 2016 +0000

    m_getfld: Replace matchc() with memmem(3).
    
    libc is more likely to find one lump of memory inside another quicker
    than a home-grown quadratic emulation of the VAX's MATCHC instruction.
    memmem() isn't POSIX, but exists on Linux and FreeBSD.  This will see if
    the buildbot is happy.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Nov 12 00:31:36 2016 +0000

    m_getfld: Remove never-true test in matchc().
    
    Now the fdelimlen doesn't include the NUL it is never true.  I didn't
    understand how it could ever be true but gcov on the test suite was
    showing 22e6 tests had three positives;  that's what put me on to
    fdelimlen's overshoot.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Nov 11 23:23:11 2016 +0000

    m_getfld: Shorten fdelimlen by one;  it was too long.
    
    The fdelimlen bytes starting at fdelim included a NUL at the end, e.g. 7
    for "\nFrom \0".  Other code seems not to expect this and has
    conditional bits to work around it, perhaps without understanding why.
    All the tests still pass, including with valgrind.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Nov 11 21:25:39 2016 +0000

    configure.ac: Add FIXME regarding _BSD_SOURCE for tm.tm_gmtoff test.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Nov 11 00:38:29 2016 +0000

    dlocaltime(): Only call tzset(3) once.
    
    This avoids the stat(2) of /etc/localtime per message scan if TZ isn't
    set in the environment;  that's the default case on this Linux system.
    I can't see a way the TZ environment variable is likely to change
    between messages, or that it's intended an invocation of scan(1), say,
    copes with the timezone shifting underneath it by /etc/localtime being
    changed.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Nov 10 22:44:59 2016 +0000

    uip/scansbr.c: Use fputs(3) instead of mh_fputs().
    
    I can't see any reason a local one exists.  It loops, calling putc(3).
    The stdlib has the opportunity to be more efficient.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Nov 10 21:39:40 2016 +0000

    Add test-forw-coverage to improve uip/forw.c's coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Nov 9 04:50:01 2016 +0000

    test-mhl-flags: Improve coverage of uip/mhlsbr.c.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Nov 9 03:02:02 2016 +0000

    test-fmtdump: Increase uip/fmtdump.c coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 8 23:55:13 2016 +0000

    test-flist: Increase coverage on argv[] processing.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 8 23:32:23 2016 +0000

    Add test/format/test-ap to get 100% uip/ap.c coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Nov 3 10:23:31 2016 +0000

    uip/dp.c: Increase coverage to 100%.

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 8 08:25:50 2016 -0500

    Replaced add(s, NULL) with mh_xstrdup(s).

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 8 08:16:24 2016 -0500

    Removed unused global from MIME parser.

Author: David Levine <levinedl@acm.org>
Date:   Mon Nov 7 21:01:31 2016 -0500

    Initialize mhparse global for each message.
    
    Globals are evil.  It's tricky to test, so no test was added.
    Just cleaned up test-mhfixmsg.

Author: David Levine <levinedl@acm.org>
Date:   Mon Nov 7 16:43:01 2016 -0500

    Forgot to commit test-mhbuild.  And thank Tom Lane for reporting bug.
    
    Update to commit 6c359ae82651d117af71c55ce1e56f3c5db18bfe.

Author: David Levine <levinedl@acm.org>
Date:   Mon Nov 7 16:28:14 2016 -0500

    Don't parse parse # lines with mhbuild -nodirectives.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 6 17:41:01 2016 -0500

    Plugged remaining mhfixmsg(1) memory leaks.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 6 17:39:13 2016 -0500

    Made static char strings const.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 6 16:48:40 2016 -0500

    Plug memory leak with parameter continuations.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 6 16:46:42 2016 -0500

    Free c_ctparams for all content types, not just text.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Nov 3 10:41:50 2016 +0000

    uip/ap, uip/dp: Remove unneeded char **arguments.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Nov 2 23:25:14 2016 +0000

    dp: Fix write past end of dates[] array.
    
    Not spotted by valgrind because that doesn't check heap or stack arrays.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Nov 3 10:36:30 2016 +0000

    ap: Fix write past end of addrs[] array.
    
    Not spotted by valgrind because that doesn't check heap or stack arrays.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 5 09:49:59 2016 -0400

    Just show relevant portion of invalid encoded string.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 5 09:46:17 2016 -0400

    Replaced use of freects_done() with free_content() for each message.
    
    Thereby not holding on to open file descriptors until termination.

Author: David Levine <levinedl@acm.org>
Date:   Thu Nov 3 15:50:40 2016 -0400

    Pass through message even if from relative folder.

Author: David Levine <levinedl@acm.org>
Date:   Thu Nov 3 08:52:53 2016 -0400

    Use result, because (void) didn't prevent warning on FreeBSD 10.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Nov 3 11:14:55 2016 +0000

    test-rfc6532: Export LC_CTYPE after setting it.
    
    Updates commit 2c4ac164edefd18861595ec7624e5ad344b10198.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 2 20:33:52 2016 -0400

    Changed type of flags from signed to unsigned long.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 2 20:24:32 2016 -0400

    Replace non-ASCII characters in headers with ?'s with non-UTF8 locale.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 2 20:08:27 2016 -0400

    Fixed display of header field values with multibyte characters.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 2 11:36:07 2016 -0400

    Removed NMH_UNUSED(hostname) because it no longer exists.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 2 10:45:16 2016 -0400

    Add some Autoconf support for older OpenSSL libraries that don't support
    hostname verification.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Nov 2 12:08:04 2016 +0000

    State netsec_set_tls()'s noverify is unused if no TLS.
    
    Stops compiler warning.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Nov 1 23:30:34 2016 -0400

    Update docs a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Nov 1 23:13:04 2016 -0400

    Add support for certificate verification when using TLS.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Oct 30 21:20:36 2016 -0400

    Print out more TLS information if -snoop is turned on.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 17:49:08 2016 +0000

    test/folder: Add test-coverage; lots of check_exit.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 17:03:14 2016 +0000

    Split one-line condition+body to get gcov results.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 12:37:48 2016 +0000

    uip/dist.c: Increase coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 12:23:12 2016 +0000

    uip/send: -saslmech lacking argument indexed outside array.
    
    Similar to problem in commit 171ad462ce7582196f91f93f91f99fc60a21189e.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 11:51:26 2016 +0000

    man: Fix spelling mistakes.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 11:49:43 2016 +0000

    Fix spelling mistake in comment.
    
    Only done because the same typo appears in the man pages.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 11:49:11 2016 +0000

    Fix spelling mistakes in UI text.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 11:11:11 2016 +0000

    test: Remove the " # gcov" comment from check_exit calls.
    
    Now the command is passed to check_exit, that is sufficient to indicate
    it's for coverage uses only, and a candidate to be fleshed out into a
    test that checks the output.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 00:41:58 2016 +0000

    uip/comp.c: Increase coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 00:17:47 2016 +0000

    uip/burst.c: Increase coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 00:08:02 2016 +0000

    uip/anno.c: Increase coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Nov 1 00:05:42 2016 +0000

    anno: Stop segmentation violation on `-number 0'.
    
    If atoi(3) returned zero, either because `0' was given or the number
    could not be parsed, then the error message dereferenced an invalid
    pointer.  Found when trying to increase coverage with check_exit.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 31 23:13:02 2016 +0000

    uip/ali.c: Increase coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 31 18:36:19 2016 +0000

    ali: Fix a memory leak spotted by valgrind.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 31 18:18:07 2016 +0000

    mhbuild's fgetstr(): simplify source, logic untouched.
    
    The tests aren't getting 100% coverage and the nested assignments make
    it harder to see what's happening, and what needs to happen to gain
    coverage.  Hoist invariants so it's clear they're such to the reader and
    not just the compiler.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 31 19:01:36 2016 -0400

    Remove test files that aren't removed by check().

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 31 15:17:55 2016 -0400

    Replaced BUFSIZ with NMH_BUFSIZ in a few places.
    
    This allows the test suite to succeed with BUFSIZ of 256.  We should
    consider using different constants for different purposes.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 31 15:03:07 2016 -0400

    Don't set CT type if reformat failed.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 31 17:56:13 2016 +0000

    Uncapitalise a few more mentions of commands in man pages.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 31 17:47:22 2016 +0000

    mh-mkstemp.man: Detail exit status as 255 rather than -1.
    
    Since that's what the outside kernel and outside world sees.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 31 17:44:24 2016 +0000

    Use new check_exit in `# gcov' tests.
    
    It showed up fmtdump wasn't being found because $? was 127, not 1.
    And mkstemp exits 255 on error, unusually amongst MH commands.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 31 17:18:11 2016 +0000

    test/common.sh.in: Add test_exit() for $? checking.
    
    The stdout and stderr of the command being tested are saved but ignored,
    only regurgitated if the test fails.  The test is stated as a fragment
    of a test(1) condition, e.g. '-eq 1'.  This is mainly intended for the
    quick one-liners to increase gcov coverage and thus valgrind's scope.
    Over time, better tests that check more of the command's behaviour can
    replace these, keeping the coverage level.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 31 11:39:11 2016 -0400

    Replaced use of ! with || true, for ultimate Bourne shell compatiblity.
    
    Update to commit c3ba36f92bcbf44e071961f3d0bb5e6ddab317d6.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 21:45:22 2016 +0000

    test-nocreate: Don't use run_test and run_prog together.
    
    valgrind tries to run run_prog and can't find the command.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 21:06:06 2016 +0000

    fgets() reserves space for the NUL itself.
    
    No need to knock one off the buffer size when calling it as that
    suggests something special is going on.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 20:51:07 2016 +0000

    Gain coverage with `mhparam localmbox'.
    
    Now 100% for uip/mhparam.c

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 20:48:25 2016 +0000

    Remove mhparam's p_find()'s ability to take NULL argument.
    
    It can't be passed NULL and couldn't get coverage.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 20:41:29 2016 +0000

    Get coverage of quite a few of the `ambiguous switch' case.
    
    Typically by adding a `foo -', discarding stdout and stderr, and
    expecting it to exit non-zero.  A `# gcov' comment states its purpose,
    and makes it easier to see if they can be deleted in time as other
    coverage tests improve.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 20:18:28 2016 +0000

    Split gcov target into multiple sub-targets.
    
    Allows them to be run individually.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 15:55:30 2016 +0000

    Clarify trunccpy()'s src and dest must not overlap.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 15:25:44 2016 +0000

    Replace printf("%s", foo) with fputs(foo, stdout).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 15:09:55 2016 +0000

    Replace strlen(foo) > 0 with *foo.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 15:07:41 2016 +0000

    Add outputs from Makefile.am's gcov target.
    
    *.gcda, *.gcno, and *.gcov.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 15:04:38 2016 +0000

    Remove sbr/peekc.c containing unused peekc().
    
    gcov showed it wasn't getting any;  we've all been there.
    It didn't check for EOF, nor that the ungetc(3) succeeded.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 14:46:01 2016 +0000

    Replace fprintf(fp, "%s", foo) with fputs(foo, fp).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 14:44:07 2016 +0000

    Replace printf("%s", foo) with fputs(foo, stdout).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 14:05:16 2016 +0000

    Replace printf("%s\n", foo) with puts(foo).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 13:45:40 2016 +0000

    Add trunccpy(), and the convenience TRUNCCPY().
    
    truncpy copies at most size - 1 chars from non-NULL src to non-NULL
    dst, and ensures dst is NUL terminated.  If size is zero then it
    aborts as dst cannot be NUL terminated.
    
    It's to be used when truncation is intended and correct, e.g.
    reporting a possibly very long external string back to the user.  One
    of its advantages over strncpy(3) is it doesn't pad in the common
    case of no truncation.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 30 00:03:34 2016 +0100

    Fix test-header-parsing test script.
    
    It was using sh's backticks that chomped the last linefeed!
    Add comment referencing the commit that fixed the code this is testing.
    Have fewer test cases, sticking to just one or two character headers
    with empty or one-character bodies.  Avoids slowing the tests too much
    and the fixed bug was to do with hashing one-character headers.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 29 23:11:52 2016 +0100

    Simplify folder_exists() to just testing stat(2)'s return value.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 28 23:51:41 2016 +0100

    Replace printf("...\n") with puts("...").

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 28 23:10:55 2016 +0100

    Replace v?fprintf(stdout, ...) with v?printf(...).

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 29 22:24:25 2016 -0400

    Added (y|n) domain to a couple of build_nmh config prompts.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 29 22:12:37 2016 -0400

    Set first character of name[] buffer in BODY state.
    
    Fix to 47313b9bc395470311e383b57eb184c830662c4a to prevent
    uninitialized read, revealed by test/burst/test-burst-mime
    with NMH_VALGRIND=1.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 26 19:08:53 2016 -0400

    Removed configure options now that it determines them automatically.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 26 11:38:45 2016 -0400

    Moved build_nmh to top level directory.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 26 11:31:49 2016 -0400

    Reworked output handling.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 25 12:10:51 2016 -0400

    Reworked default SASL support to enable if header and lib are found.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 25 11:35:20 2016 -0400

    Added -r to gcov invocation.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 25 11:10:01 2016 -0400

    Add -O0 instead of -O2 to CFLAGS with build_nmh -d option.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 25 11:05:54 2016 -0400

    Don't add -D_FORTIFY_SOURCE to AM_CPPFLAGS with -O0.

Merge: 7b27ac3 9cca3d0
Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 25 00:23:49 2016 +0100

    Merge branch 'master' of git.sv.gnu.org:/srv/git/nmh

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 25 00:04:12 2016 +0100

    Replace fputc() with putchar().

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 24 19:01:14 2016 -0400

    Changed build_nmh sasl and tls defaults to be configure's.

Merge: e00c601 1e7b41c
Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 23:49:11 2016 +0100

    Merge branch 'master' of git.sv.gnu.org:/srv/git/nmh

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 23:37:50 2016 +0100

    Replace putc() with putchar().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 23:37:34 2016 +0100

    Replace putc() with putchar().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 23:36:52 2016 +0100

    Replace putc() with putchar().
    
    Others already existed.  Not being a macro probably won't hurt.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 24 18:31:27 2016 -0400

    Removed unnecessary definition of tls_support.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 23:22:06 2016 +0100

    Replace puts() with putchar().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 23:21:57 2016 +0100

    Replace puts() with putchar().

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 24 18:07:48 2016 -0400

    Reworked default TLS support to enable if header and libs are found.
    
    Also, fixed AC_CHECK_LIB for libssl.  The crypto lib
    needs to be the fifth, not fourth, argument.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 24 14:33:23 2016 -0400

    Removed OAUTH support detection from because configure does it.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 19:11:07 2016 +0100

    sbr/netsec.c: Add NMH_UNUSED(nsc) twice for if !TLS_SUPPORT.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 18:59:30 2016 +0100

    netsec_set_tls(): Return a value in the !TLS_SUPPORT && !tls case.
    
    Silences clang.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 24 12:58:04 2016 -0400

    More enhancements to build_nmh.
    
    1) Display failure messages that were hidden.
    2) Display location of log file at end, if not in current directory,
       the build failed, or verbose was enabled.
    3) Replaced use of showbuildenv with less invasive platform info.
    4) Don't colorize tests summary if TERM is unset or dumb.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 16:34:17 2016 +0100

    nmh.h: Add getline() prototype, conditional on HAVE_GETLINE.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 12:12:29 2016 +0100

    Fix flex 2.6.1's output regarding signed/unsigned comparisons.
    
    Add comment referencing flex bug.
    Note this workaround breaks $(LFLAGS).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 12:12:09 2016 +0100

    mhical.c: display(): Replace memcpy() with struct assignment.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 00:18:18 2016 +0100

    fix_filename_param(): Remove redundant strlen().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 00:15:33 2016 +0100

    fix_filename_param(): Replace strncmp() with HasSuffix().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 00:11:42 2016 +0100

    sbr/utils.c: Add HasSuffix(s, suffix).
    
    HasSuffix returns true if non-NULL s ends with non-NULL suffix.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 00:03:48 2016 +0100

    Use LEN() to save having to consider the -1.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 00:03:12 2016 +0100

    Use LEN() to save having to consider the -1.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 00:02:33 2016 +0100

    Use LEN() to save having to consider the -1.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 00:01:54 2016 +0100

    Remove unused NCWD and NPWD #defines.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:45:34 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:44:58 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:44:38 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:43:41 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:43:19 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:20:58 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:20:45 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:20:31 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:02:49 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 23:02:01 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 22:59:57 2016 +0100

    nmh_command_generator(): Fix indentation.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 22:51:24 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 22:49:25 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 22:48:49 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 22:47:08 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 22:36:26 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 18:56:58 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 18:56:33 2016 +0100

    Use HasPrefix() instead of strncmp().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 12:08:31 2016 +0100

    Alter HasSuffixC()'s char * to be const.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 12:02:55 2016 +0100

    utils.c: Add HasPrefix(s, prefix).
    
    HasPrefix returns true if non-NULL s starts with non-NULL prefix.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 01:18:49 2016 +0100

    Rename EndsWithC() to HasSuffixC().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 01:13:57 2016 +0100

    mh-folders.man: Remove empty `.I' immediately followed by `.IR'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 09:59:44 2016 +0100

    build_nmh: If cloning with git, make a shallow clone.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 09:46:52 2016 +0100

    showbuildenv: Drop lsb_release(1);  /etc/lsb_release tested earlier.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 09:33:56 2016 +0100

    build_nmh: Use `gzip -d' rather than assume tar has -z.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 24 09:31:00 2016 +0100

    build_nmh: Have a silent curl still show errors.
    
    Arguably, -sS should be curl's defaults!

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 23 17:16:31 2016 -0400

    Fixed output of commit hash by git log command.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 23 17:12:04 2016 -0400

    Check for existence of tools/showbuildenv.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 23 16:25:00 2016 -0400

    Redirect verbose build_nmh messages so they're visible while running.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 23 16:03:11 2016 -0400

    Enhanced build_nmh to support standalone use.
    
    1) If not in nmh directory, download the nmh sources from savannah
       using git clone, wget, or curl.
    2) Added -b branch option, for use when downloading.
    3) Support -l -.
    4) Capture build environment with tools/showbuildenv.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 01:10:58 2016 +0100

    man: Use lowercase for command name at start of sentence.
    
    `Inc' is a different command to `inc'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 23 00:08:17 2016 +0100

    uprf(): Rewrite, using types rather than masking ints.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 23:37:19 2016 +0100

    Add comment describing uprf().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 19:56:52 2016 +0100

    Use ToLower() instead of loop.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 19:53:01 2016 +0100

    Use ToUpper() instead of loop.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 19:52:42 2016 +0100

    Use ToUpper() instead of loop.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 19:43:12 2016 +0100

    Add ToLower(s) and ToUpper(s).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 19:33:24 2016 +0100

    putcomp(): Use local to avoid repeating tautological ternary.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 19:18:15 2016 +0100

    Alter netrc permissions error message to match code.  Add test.
    
    The code wants `go=', but the error message, and FAQ, said to clear read
    permission from group and other.  Add test to inc/test-pop as that is
    the existing netrc test location, but it might be better in its own test
    file as other tests for netrc parsing could be added.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 18:09:02 2016 +0100

    Fix netrc's token()'s bug if backslash escapes EOF.
    
    Discard the whole token so the user hopefully investigates.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 18:01:16 2016 +0100

    Fix netrc's token() bug of first character being backslash.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 17:47:06 2016 +0100

    Merge .netrc's token() file-reading loops;  quoted and not.
    
    Check for ferror(3) as well as feof(3) on entry.
    Comment on lack of definition of quoted-string syntax, e.g. «"foo""bar"»
    is two tokens without needing a separator.
    Add comments on bugs for first non-quote character of a token being
    backslash, and if a backslash escapes EOF.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 16:17:42 2016 +0100

    Have ruserpass() return TOK_EOF and put "" in the token table.
    
    Gives 0 a name and removes a little logic.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 16:04:58 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 15:53:51 2016 +0100

    Check advertise()'s iob[] isn't too short with assert(3).
    
    Using DIM(a) added to h/mh.h

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 15:36:40 2016 +0100

    Use macros in advertise() to simplify source.
    
    Happens to remove strlen() of literals at the same time.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 14:43:11 2016 +0100

    Document advise(), adios(), admonish(), and advertise().
    
    It doesn't make their design any better.  Their "ad" prefix goes against
    common advice of having distinguishable identifiers to avoid mix-ups,
    and seems to be a theme that got out of hand.  The out-of-order
    parameters to advertise seem due to lack of strerror(3) that's no longer
    a problem.
    
    Before:
        advertise("open", "continuing...", "couldn't read profile: %s",
            path);
    Could be:
        error("couldn't read profile: %s: open: %s, continuing...\n",
            path, strerror(errno));
    And the "open" is typically dropped as superfluous so there's a
    repetitive leading NULL passed a lot.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:58:43 2016 +0100

    POSIX, 2016 Ed, removes bcopy(3).  Stop referring to it.
    
    Even though it's in a comment, it shows up in searches.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:45:35 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:45:24 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:45:22 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:45:19 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:45:16 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:45:11 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:44:47 2016 +0100

    Don't need to cast to `char *' for free(3) these days.
    
    But still need a cast to discard the const.
    Use `void *' as it saves needing to check the original type.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:42:52 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:42:47 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:42:45 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:42:43 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 13:42:39 2016 +0100

    Don't need to cast to `char *' for free(3) these days.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:45:09 2016 +0100

    Move smtp_init's last-ditch attempt for client inside first test.
    
    Didn't realise there was a second lot of similar code before the last
    commit.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:41:44 2016 +0100

    Move smtp_init's last-ditch attempt for client inside first test.
    
    No point checking it twice in a row if it was false the first time.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:40:30 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:27:58 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:27:54 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:27:51 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:27:48 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:27:42 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:27:29 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:27:22 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:27:16 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:26:57 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:26:54 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:26:35 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:26:02 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:25:53 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:21:16 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:20:55 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:20:49 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:20:46 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:18:54 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:18:50 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:18:43 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:18:39 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:18:32 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:18:26 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 22 00:09:10 2016 +0100

    Don't test boundary in output_content() for NULL;  it never is.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 23:21:30 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 23:20:41 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 23:20:06 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 23:17:48 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 23:16:11 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 23:15:53 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 23:15:47 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 23:15:32 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 22:01:54 2016 +0100

    Replace `if (p) free(p)' with `mh_xfree(p)'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 21:18:38 2016 +0100

    Add FIXME raising if iscntrl(3) test should be based on isprint(3)
    
    !iscntrl blocks characters that could be isspace or isblank whereas
    isprint would let them through unharmed.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 21:18:16 2016 +0100

    Assume POSIX ctype.h;  don't vet toupper()'s parameter.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 21:14:24 2016 +0100

    Explain isascii() test more in netsec_set_sasl_params().
    
    It stops non-ASCII lower in the SASL mechanism being uppered, just in
    case there is some.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 21:10:42 2016 +0100

    Assume POSIX ctype.h;  don't vet toupper()'s parameter.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 20:39:11 2016 +0100

    Assume POSIX ctype.h;  don't vet tolower()'s parameter.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 20:37:32 2016 +0100

    Assume POSIX ctype.h;  don't vet tolower()'s parameter.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 20:23:55 2016 +0100

    Oops, stop showbuildenv reading from stdin when run from a TTY.
    
    David spotted the problem I introduced with 8374c3c.  Alter offset to
    process any arguments, falling back to stdin if none.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 14:42:35 2016 +0100

    Assume POSIX ctype.h;  don't vet tolower()'s parameter.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 14:41:17 2016 +0100

    Assume POSIX ctype.h;  don't vet tolower()'s parameter.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 14:35:47 2016 +0100

    Assume POSIX ctype.h;  don't vet tolower()'s parameter.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 21 13:26:43 2016 -0400

    Fixed MIME parser so it can read binary content.
    
    Second of two-part fix.  Replaced use of strlen().

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 21 13:22:22 2016 -0400

    Have m_getfld() pass back indication of missing blank line.
    
    This is part one of a two part fix to the MIME parser to
    read binary content.  It should have no effect.
    
    Also added start/finish test calls to test-header.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 09:53:45 2016 +0100

    Fix warnings caused by recent edits;  don't mix declarations and code.
    Quite right too, I prefer all the declarations, codeless, up front.  The
    standard -Wall didn't pick this up.  David pointed it out, probably due
    to his defaults of `-pedantic -ansi'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 00:06:11 2016 +0100

    Don't `else' after goto.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 00:06:07 2016 +0100

    Don't `else' after goto.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 00:05:50 2016 +0100

    Don't `else' after goto.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Fri Oct 21 00:05:46 2016 +0100

    Don't `else' after goto.  Simplify control flow.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 20 19:38:01 2016 -0400

    Added test/mhshow/test-binary.  The MIME parser doesn't
    properly handle null bytes because it uses getline().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:57:56 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:57:09 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:30:39 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:30:07 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:30:02 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:29:56 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:29:49 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:29:46 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:29:35 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:29:19 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:27:42 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:27:37 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:27:21 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:27:08 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:27:05 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:23:46 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:23:41 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:23:38 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:23:35 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:23:28 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:23:00 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:22:21 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:22:15 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:22:11 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:22:04 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:22:00 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:21:45 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:21:34 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:21:05 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:20:25 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:20:20 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:20:17 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:20:07 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:19:59 2016 +0100

    Don't `else' after return or goto.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:19:28 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:18:47 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:16:32 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:16:21 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 23:15:53 2016 +0100

    Don't `else' after return.  Simplify control flow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:43:52 2016 +0100

    Hoist test of search string for NULL out of loop.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Oct 20 13:37:29 2016 -0400

    Rototill credentials code so that we only prompt for the username and
    password when it is necessary.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 19 19:53:42 2016 -0400

    Added locale profile component, value is passed to nmh_init().

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 19 15:00:56 2016 -0400

    Pass CFLAGS to make distcheck via DISTCHECK_CONFIGURE_FLAGS.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:32:37 2016 +0100

    Replace sizeof string constant - 1 with LEN().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:32:30 2016 +0100

    Replace sizeof string constant - 1 with LEN().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:24:20 2016 +0100

    Replace strlen(), malloc(), and sprintf() with concat().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:09:47 2016 +0100

    Use LEN() on string constants instead of strlen().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:09:47 2016 +0100

    Use LEN() on string constants instead of strlen().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:09:47 2016 +0100

    Use LEN() on string constants instead of strlen().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:08:50 2016 +0100

    Add LEN(s) definition.
    LEN gives the strlen() of string constant s, excluding the
    terminating NUL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Thu Oct 20 00:02:14 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:38:04 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:38:04 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:38:04 2016 +0100

    Put, rather than print, single characters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:13 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:13 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:13 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:13 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:13 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 23:27:12 2016 +0100

    Replace `(char *)0' et al with `NULL'.
    None of them are vararg parameters.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 19:18:48 2016 +0100

    Replace strlen(), malloc(), and sprintf() with concat().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 18:47:30 2016 +0100

    Replace sprintf() with strcpy();  it's no worse.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 18:47:04 2016 +0100

    Replace sprintf() with strcpy();  it's no worse.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 18:44:58 2016 +0100

    Add comment describing concat().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 18:30:41 2016 +0100

    Use the imperfect snprintf(3) instead of sprintf(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 18:29:56 2016 +0100

    Use the imperfect snprintf(3) instead of sprintf(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 18:29:43 2016 +0100

    Use the imperfect snprintf(3) instead of sprintf(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 18:29:18 2016 +0100

    Use the imperfect snprintf(3) instead of sprintf(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 18:13:10 2016 +0100

    Add EndsWithC(char *s, int c) and call it in some initial places.
    EndsWithC returns true if non-NULL string s ends with a c before the
    terminating NUL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 17:52:44 2016 +0100

    Add stdbool.h plus fallback to h/nmh.h.
    Change h/mh.h's FALSE and TRUE to use stdbool.h's.  In time, everything
    can switch over and FALSE and TRUE can go.  Delete some local
    re-definitions of FALSE and TRUE.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 16:34:05 2016 +0100

    Fix ruserpass() to not assume `\n' present before trimming.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 19 12:09:37 2016 -0400

    Removed remaining relics of generated ctypoe-checked.[hc].

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 15:43:12 2016 +0100

    Alter ctype-checked to handle EOF and be hand-written.
    Along the way, replace the code generation with code that punts the work
    onto the stdlib's C functions, needing only a single `identity' array
    for all the macros.  A mkdir needed to be added in Makefile.am because
    otherwise etc didn't exist in a distcheck and attempting to redirect
    stdout to a file in etc failed.  I'm not happy that's the best automake
    way to achieve this, i.e. what if another rule attempts to create in etc
    first?

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 14:39:53 2016 +0100

    Remove ./configure's --enable-debug support;  it did nothing.
    David on nmh-workers said "that looks like a relic that can be removed".

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 13:04:12 2016 +0100

    Don't recurse in advertise() on writev(2) error, just write(2).
    Some errors, e.g. EPIPE, cause the advise()'s call to another
    advertise() to fail again, ad segvinitum when stack busts.  Instead,
    snprintf(3) and write(2) that single string, ignoring any error.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 12:22:47 2016 +0100

    Add check-programs target to Makefile.am to add to `make all'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 11:30:55 2016 +0100

    Ignore etags ugly TAGS output file.
    Makefile prefers etags over ctags.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 10:09:47 2016 +0100

    Replace strchr() condition with TrimSuffixC(), fixing assumptions.
    A couple of the existing strchr()-based trims assumed fgets() returned a
    string containing `\n' if it didn't return NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 10:06:44 2016 +0100

    Replace strchr() condition with TrimSuffixC().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 10:06:24 2016 +0100

    Replace strchr() condition with TrimSuffixC().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 10:04:59 2016 +0100

    Replace strchr() condition with TrimSuffixC().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 10:04:12 2016 +0100

    Replace strchr() condition with TrimSuffixC().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 10:03:31 2016 +0100

    Replace strchr() condition with TrimSuffixC().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Wed Oct 19 00:50:28 2016 +0100

    Replace strchr() condition with TrimSuffixC().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 17:05:24 2016 +0100

    Add TrimSuffixC(char *s, int c).
    TrimSuffixC deletes c from the end of non-NULL string s if it's present,
    shortening s by 1.  Only one instance of c is removed.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 18 19:55:49 2016 -0400

    With EAI (mhbuild -headerencoding utf-8), force message header to
    show 8-bit UTF-8, even if the message body is ASCII.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 18 16:45:30 2016 -0400

    Output an error message from post(8) when user specifies
    mhbuild -headerencoding utf-8 but the SMTP server doesn't
    support SMTPUTF8.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 16:33:12 2016 +0100

    Rewrite r1bindex() using strrchr(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 16:23:44 2016 +0100

    Use concat() in m_putenv.  Add FIXME about memory leaks.
    POSIX defines setenv(3) and unsetenv(3).  They seem like a good route,
    just need to preserve the existing functions' behaviour.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 16:22:41 2016 +0100

    Shrink the static char[] for "%d" from 8KiB to just right.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:26 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 14:52:25 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:15 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:15 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:37:14 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 13:09:27 2016 +0100

    Replace getcpy() with mh_xstrdup() where the string isn't NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 01:27:27 2016 +0100

    Fix unlikely bug in oauth's make_query_url() of base_url overflow.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 18 01:18:24 2016 +0100

    Replace a few calculations of string lengths with concat().
    Saves the reader have to keep checking all the +1 are correct.
    Passed the oauth tests;  they weren't skipped.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 23:52:00 2016 +0100

    Close FILE pointer in anno for -append as well as -delete.
    https://savannah.nongnu.org/bugs/?23465 has Peter Maydell pointing out
    the assymetric open and close of a FILE pointer.  He's right on that
    AFAICS so change the test to be for a non-NULL pointer rather than the
    more wordy and prone to error flag-testing.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 21:46:47 2016 +0100

    Oops, should have offset file in showbuildenv rather than cat.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 21:16:38 2016 +0100

    Look for a platform-specific /etc/*-release or similar.
    /etc/os-release is becoming standard due to systemd.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 20:51:09 2016 +0100

    Protect showbuildenv's headers from glob expansion.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 20:35:51 2016 +0100

    A-ha!  automake has support for tests expected to fail;  use that.
    Backing out my recent addition of an `expectedfail` parameter to the
    `check' function.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 20:14:33 2016 +0100

    Remove use of C's register keyword.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 17 09:42:32 2016 -0400

    Added reference to mh-profile(5) man page for more information on
    postproc.  And note that "Nmh-" header lines are filtered out.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 11:55:12 2016 +0100

    Add FIXME for more documentation to showbuildenv.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 11:51:32 2016 +0100

    Have showbuildenv only indent non-blank lines.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 11:50:22 2016 +0100

    Run lsb_release(1) if uname is Linux.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 11:30:24 2016 +0100

    Oops, fc31cece had a syntax error that gcc ignored, clang doesn't.
    Two logical-or operators in a row don't upset gcc.  Who said parsing was
    a solved problem?

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 01:41:32 2016 +0100

    Replace NEW() then memset() of 0 with NEW0().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 01:36:35 2016 +0100

    Don't call strlen() twice;  save result.
    The second instance was attempting to write strlen(mmdlm2) bytes
    and checking the return value against strlen(mmdlm1).  I assumed
    that was an error without digging.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 01:35:15 2016 +0100

    Don't call strlen() twice;  save result.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 01:34:18 2016 +0100

    Deference char pointer to test for empty string instead of strlen(3).

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 01:28:53 2016 +0100

    Replace getcpy() with mh_xstrdup().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 01:28:13 2016 +0100

    Replace mh_xmalloc() with mh_xstrdup().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 01:26:53 2016 +0100

    Replace mh_xmalloc() with mh_xstrdup().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 00:32:46 2016 +0100

    Delete client_getcpy();  don't know why it exists.
    Replace with calls to getcpy() or mh_xstrdup().

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 00:22:23 2016 +0100

    Use mh_xstrdup() instead of getcpy() for a string constant.
    It cannot be NULL.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 00:08:26 2016 +0100

    Rewrite getcpy() using mh_x*() allocation functions.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Mon Oct 17 00:07:24 2016 +0100

    Add const specifier to mh_xstrdup()'s src parameter.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 23:35:35 2016 +0100

    Rename fmt_compile.c's NEW macro to NEW_FP to avoid redefine.
    It grabs and fills in a pointer called `fp' so a more specific name
    seems OK.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 23:16:26 2016 +0100

    Rename local enum to avoid clashing with NEW() macro.
    Even if it doesn't in practice due to the lack of parenthesis, it makes
    things more clean if all the enumerates have a common abbreviation
    prefix.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 22:53:23 2016 +0100

    Add mh_xstrdup() that exits on allocation failure.
    Call it from a few simple places.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 19:38:36 2016 +0100

    Add NEW(p) that sets p to mh_xmalloc'd memory sized by *p.
    Use it for the simple cases.  Again, saves having to check the same
    identifier is given, possibly far apart after a superfluous cast.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 18:49:32 2016 +0100

    Add macro NEW0(p) that callocs, and use it in simple calls.
    p is a pointer, the size of the contents of the pointer is allocated
    with calloc via mh_xcalloc.  It saves having to check every calloc to
    ensure the space requested matches the pointer to which it is assigned.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 18:24:51 2016 +0100

    Put parameter names in h/utils.h memory function prototypes.
    It can be a problem if there is a system creeps in a clashing macro,
    e.g. `size', but that's unlikely and I think the documentation benefits.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 18:21:15 2016 +0100

    Add mh_xfree(), guarding free(3) from NULLs.
    Perhaps all nmh's platforms cope with free(3) these days, but it gives
    symmetry with the other mh_x* memory functions and if there is code
    testing the pointer before calling free then it can use this instead.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 18:17:31 2016 +0100

    Tweak mh_xcalloc();  print size on error, follow POSIX.
    Using `%zu' for the size_t value.  That might be a problem on older
    platforms, but we'll see.  If asked for zero bytes then allocate one to
    get a unique pointer.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 18:08:29 2016 +0100

    Tweak mh_xrealloc();  print size on error, follow POSIX.
    Using `%zu' for the size_t value.  That might be a problem on older
    platforms, but we'll see.  If asked for zero bytes then free an existing
    pointer, only passing it to free(3) if it's non-NULL, and then allocate
    a byte so a unique pointer is returned.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 17:43:56 2016 +0100

    Tweak mh_xmalloc();  print size in error, allocate zero bytes.
    Using `%zu' for the size_t value.  That might be a problem on older
    platforms, but we'll see.  If asked for zero bytes then allocate one
    rather than exit;  it's sometimes useful to allocate zero, but some
    older platforms might not like it.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 17:36:03 2016 +0100

    Don't check mh_xcalloc() and friends for a NULL return.
    They never return NULL.  That's their prime purpose.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 15:50:12 2016 +0100

    Expand the test of scan's -forma;  fails on first attempt.
    For an email that's just `a:\nb:\nc:\n', a scan with `%{a}\n%{b}\n%{c}'
    is one blank line short.  If the `%{c}' has anything added then its line
    prints.  Break out of the loop so all the other tests are skipped.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 15:25:37 2016 +0100

    Don't test -reverse's boolean on every message number.
    Test just once before the loop and define start, end, and increment.
    Keep going whilst start is not end.  Happy for underflow or overflow in
    calculating end because msgnum will make the same transition.  It can't
    affect whether the loop runs at all since 0 is not a valid message
    number.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 14:28:38 2016 +0100

    Update pending-release-notes with a couple of my recent fixes.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 14:19:56 2016 +0100

    Fix bug where single-character headers were sometimes missed.
    The hash function used to check if a header was of interest always used
    its first three characters.  For a single-character header that third
    byte wasn't particularly set and so it was pot luck if the two hashes
    matched, swayed by what was previously in the format string and in the
    email's headers.  Alter it to cope, including with an empty string.
    Comment that it never gives 127 so leaves the last element of the
    hash-table array unused.  Alter test-header-parsing to stop declaring it
    expects to fail.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 12:44:32 2016 +0100

    Change all Getc() callers to use EOF, not comparisons with 0.
    Makes the logic that bit easier when you don't have to convert to EOF
    mentally.  No functional change intended.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 12:23:57 2016 +0100

    Don't increment bytes_read if returning EOF.
    Don't know if this was actually causing a problem, or if it was wrong,
    but bytes_read was always being incremented even if the later test
    showed readpos was to be left unincremented and EOF returned instead.
    All tests still pass so any breakage must be subtle!

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 12:13:59 2016 +0100

    Fix spelling in comment.  Alter case to match identifier.
    vim will search matching case on `*', for example, so if searching for
    `\<fdelim\>' the comment shouldn't use `Fdelim'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 11:43:45 2016 +0100

    Add failing test case for single-character header parsing.
    `scan -format '%{x}'' fails to find single-character header `x' in some
    cases, depending on the position of the header in the file.  Add a
    simple test case, scan/test-header-parsing, for this that fails.  Alter
    the test harness to allow a test to indicate it expects to fail.  When
    it does, that's ignored.  If it passes, that's then an error instead.
    
    Did this because I don't know if or when it will be fixed and didn't
    want it to be forgotten in the meantime.  When it is fixed, the test can
    be enhanced to cover many more possibilities.  First noticed it with ad
    hoc testing of my fewer-lseek change, but it is present in the released
    1.6.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 10:52:39 2016 +0100

    Fix spelling in warning message;  s/conext/context/.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 10:13:46 2016 +0100

    Simply enter_getfld()'s structure, no functional change.
    Return ASAP to avoid having to mentally track those states as the code
    indents further.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 09:58:34 2016 +0100

    Explicitly state a postproc's last argument will be the draft.
    Update the sample postproc script to make clear it's the -whom detection
    that sucks.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 09:35:03 2016 +0100

    Document fmttest(1)'s existing -help and -version options.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 09:17:51 2016 +0100

    Move -help and -version to the front of the man page options.
    The man pages had -verbose and -help listed at the end of the synopsis.
    This put them after mandatory arguments in some cases, e.g. post(8).
    Put then at the front, swapping the order so -help is first, as novices
    will want to know -help exists early on, and others can simply skip over
    them rather than encounter them at the end when they're trying to track
    the combinations of what they've read so far.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 08:52:10 2016 +0100

    Fix end of sentence spacing in man pages, and related problems.
    troff(1) input that ends a sentence at the end of the line gets the
    proper inter-sentence spacing when formatted.  If the sentence ends
    midline then two spaces must follow to get the same result, otherwise
    the spacing looks odd.  Similarly, if a full stop is not the end of a
    sentence then it should have the zero-width escape appended so if
    re-formatting the source happens to place it at the end of the line then
    no large gap follows it: e.g. `e.g.\&'.
    Replace `et. al.' with `et al'.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 08:34:35 2016 +0100

    Reference the buildbot in docs/README.developers.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 16 08:23:51 2016 +0100

    Stop one lseek(2) per header fetched by m_getfld.c in common case.
    Only call ftello(3) in enter_getfld() when track_filepos has been
    requested;  not often.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sat Oct 15 23:40:00 2016 +0100

    Fix error message when attempting to xmh_realloc() 0 bytes.
    Though really, I'd expect it to perform a free(3) then, as the real
    realloc(3) does.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 15 14:21:13 2016 -0400

    Plugged memory leak in convert_content_charset().

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 15 11:53:24 2016 -0400

    Fixed mhshow warn message when it can't convert character set,
    "from" instead of "to", as reported by Ralph.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 15 11:33:34 2016 -0400

    Changed "existant" to "existent".  Found by misspell_fixer.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 15 09:58:24 2016 -0400

    Added to convertargs documentation.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 14 16:53:27 2016 -0400

    Try running script(1) for SHELL test in subshell.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 14 16:40:16 2016 -0400

    Check that script(1) supports SHELL in test-version-check.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 14 14:36:21 2016 -0400

    Added check to test-version-check to ensure that script(1) makes
    the program look like it's connected to a terminal.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 14 13:40:14 2016 -0400

    Didn't work on buildbot hosts.  Added debug statements.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 14 13:27:32 2016 -0400

    Instead of feeding stdin to script(1) in test-version-check,
    create a simple shell script with the command to be run and feed
    it to script via the SHELL environment variable or -S option.
    Thanks to Ralph for suggesting this approach.  We'll see if it
    works on all of the buildbot hosts.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 14 09:54:59 2016 -0400

    Tweaked formatting of welcome message.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 13 19:12:59 2016 -0400

    Disable test-version-check, again, when not connected to terminal.
    I can't otherwise explain why it fails on the ubuntu buildbot.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 13 18:54:16 2016 -0400

    Added debug printouts to test-version-check.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 13 18:45:06 2016 -0400

    Use "script file" in test-version-check for maximum portability.
    Feed its stdin, which might be problematic.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 12 21:48:11 2016 -0400

    Added check that replied-to text is not quoted-printable encoded.
    It's up to the external converter to generate RFC 5322-legal text.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 12 21:47:16 2016 -0400

    Split ${charset:+-I "$charset"} and another similar case into two
    separate options, because Solaris didn't like the space between them.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Oct 11 10:20:52 2016 -0400

    For the autoconf/automake stuff to replace getline, the following
    patch seems to work.
    
    The final change on configure.ac is to cope with cc -V output having
    slightly changed in the most recent version of the compiler.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Tue Oct 11 10:14:14 2016 -0400

    I've written a getline(3) from scratch based on
    https://manned.org/getdelim.3p and am happy for it to have whatever
    licence nmh needs.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 11 09:31:42 2016 -0400

    Removed test-local-mailbox that was mistakenly committed.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 11 08:55:12 2016 -0400

    Only set CFLAGS with gcc.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 11 08:53:32 2016 -0400

    Moved gcc warning options from AM_CFLAGS back to CFLAGS, to
    make it easier for packagers to override.  This is a partial
    rollback of commit f7eb978bd395752d3d9037ea4436b8e2db41f135.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 11 08:41:10 2016 -0400

    Added LANG to procmail example in mhfixmsg man page.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 10 16:43:56 2016 -0400

    Corrected date in forw man page.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 10 16:42:57 2016 -0400

    Tweaked OAuth documentation in mhlogin and send man pages.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 10 16:42:20 2016 -0400

    Removed reference to nmh User's Manual because there is no such
    thing.  There was an MH User's Manual, but that is not distributed
    with nmh.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 10 09:54:51 2016 -0400

    Changed test suite's require_locale() to set the locale that it
    finds, and added upper case versions of locale names to each test.
    This should allow the tests to succeed on old Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 9 13:59:11 2016 -0400

    Added -sasl to -saslmech xoauth examples in man pages.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 7 22:21:02 2016 -0400

    Replace `id -u` with $$ so that tests have a chance of working
    on old Solaris hosts.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 7 11:07:03 2016 -0400

    Added comments about sidestepping check for checks to determine
    whether replied-to text needs to be encoded in mhbuildsbr.c.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 7 09:40:23 2016 -0400

    Added example of decoding RFC-2047 filename to mhstore man page.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 18:01:50 2016 -0400

    A better fix than e87f37c27828723317a71291e31b34f39ec09098, because
    c_reqencoding should be set for text content in replies if we don't
    want it to be encoded.  Scan the text content to see if it is 7- or
    8-bit, and set c_reqencoding accordingly.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 17:53:00 2016 -0400

    Moved scan_input() from uip/post.c to sbr/utils.c.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 13:10:19 2016 -0400

    Updated test-version-check test_skip message.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 13:07:20 2016 -0400

    Fixed test negations in test-version-check to work with make distcheck.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 12:57:45 2016 -0400

    OK, don't run test-version-check if not connected to terminal.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 12:47:52 2016 -0400

    More debugging test-version-check.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 12:45:52 2016 -0400

    Replaced strtod() with strtof().

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 12:16:53 2016 -0400

    More debugging.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 11:59:24 2016 -0400

    More test-version-check debugging, on Linux buildbot hosts.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 11:47:26 2016 -0400

    1) Use script(1) -t 0 instead of -f on FreeBSD.
    2) Added another debug printout.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 11:30:19 2016 -0400

    Accommodate FreeBSD script(1), and add debugging statement to diagnose
    failure on ubuntu buildbot host.

Merge: 641e461 84eab76
Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 09:39:27 2016 -0400

    Merge branch 'welcome'

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 6 09:11:45 2016 -0400

    Enable SMTP 8BITMIME for messages with 8-bit content:
    
    1) In post, look for a Content-Transfer-Encoding header.  It has to
       be the header for the message, not any MIME parts.  If found,
       post trusts that it's correct.  If there isn't one, post scans
       the entire message body for any 8-bit bytes.
    
    2) If the message body is 8-bit:
       If the server supports 8BITMIME, enable it.
    
       If the server doesn't support 8BITMIME, fail with a message to
       user that they need to encode the message for 7-bit transport.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 5 16:04:11 2016 -0400

    Call c_ceclosefnx in mhfixmsg set_ce().  It doesn't seem to help
    reduce file descriptor leaks, but can't hurt.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 5 16:02:47 2016 -0400

    Don't set c_reqencoding in repl, let mhbuild set it based on
    the content.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Oct 4 22:00:12 2016 -0400

    Improve these comments a bit.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 4 21:24:10 2016 -0400

    Enabled check for 8-bit content in all text parts, not just those
    with no specified character set, so that a Content-Transfer-Encoding
    header will be added if needed.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 4 19:08:42 2016 -0400

    Have mhfixmsg add a C-T-E at the message level, based on the least
    restrictive C-T-E of its parts.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 3 21:30:14 2016 -0400

    Base Content-Transfer-Encoding on decoded and new text parts on
    content rather than the user's charset.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 3 17:59:51 2016 -0400

    Fixed typo.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 3 17:50:35 2016 -0400

    Fix C-T-E of message, as well as multipart, types to be 7bit, 8bit,
    or binary.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 2 09:53:56 2016 -0400

    Added test of SMTP server that doesn't support SMTPUTF8.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Oct 2 02:05:44 2016 -0400

    Fix some typos in the comments.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Oct 2 01:47:15 2016 -0400

    Move the read buffer shuffling to BEFORE where we call the network
    read routines; otherwise we can end up calling the lower layers with
    a length of zero, which messes everything up.
    
    Also make sure we reshuffle our pointers around if that happens.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 1 14:37:27 2016 -0400

    mhfixmsg now replaces RFC 2047 encoding with RFC 2231 encoding of
    name and filename parameters in Content-Type and Content-Disposition
    headers, respectively.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 1 12:49:12 2016 -0400

    Cleaned up a bit, mostly in comments for each function.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Oct 1 01:02:34 2016 -0400

    Sigh, the return value from SSL_get_error() isn't suitable to give
    to ERR_get_error(), so use a different function to get the error.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 30 21:24:43 2016 -0400

    Print even more errors.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 30 15:15:08 2016 -0400

    Add -initialtls/-notls flags to msgchk.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 30 15:07:03 2016 -0400

    Make sure we retry if possible upon a TLS read, and give a more meaningful
    error if we can't.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 30 10:35:06 2016 -0400

    Added --sysconfdir to nmh.cygport.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 30 09:18:27 2016 -0400

    Replaced some hard-coded strings with variables in nmh.cygport.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Fri Sep 30 00:55:55 2016 -0700

    Fix typos and drop declaractions of 2 undefined functions.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 29 15:18:02 2016 -0400

    Updated comments in h/prototypes.h.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 29 15:13:05 2016 -0400

    Welcome message enhancements:
    1) Disable if Welcome: disable component is in profile.
    2) If MHCONTEXT is set, only print the message if the context file
       already has a Version: reference where the version is old.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 29 11:40:10 2016 -0400

    Instead of relying on invo_name to decide whether to call
    nmh_version_changed(), use a read_context setting of 1.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 29 09:58:27 2016 -0400

    Make sure stderr is directed to terminal, as well as stdin and
    stdout, when deciding whether to check for nmh version update.

Author: David Levine <levinedl@acm.org>
Date:   Wed Sep 28 18:48:16 2016 -0400

    Wait for user to ack new version message.

Author: David Levine <levinedl@acm.org>
Date:   Wed Sep 28 15:01:43 2016 -0400

    Added welcome message when nmh detects that its version changed.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Sep 28 09:58:54 2016 +0200

    back out use of RFC 2047 decoding on the filename
    
    The RFCs clearly state that an encoded word should not be used in
    the MIME parameters and the scheme from RFC2231 should be used
    instead. nmh supports that. Unfortunately, other mail clients,
    in particular gmail and IBM/Lotus Notes, produce messages with
    the invalid encoding.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 27 08:29:05 2016 -0400

    Added start_test/finish_test.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 27 08:28:47 2016 -0400

    Updated start_test() and finish_test() to not update the test name
    if there was a test failure.  run_test disables exit on non-zero
    status, but does increment failed.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Sep 27 01:42:55 2016 +0200

    Do RFC 2047 decoding on filename for mhstore

Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 26 16:50:38 2016 -0400

    Replaced use of GNU sed extension.

Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 26 15:41:22 2016 -0400

    Added debug statements to test-mhparam.

Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 26 14:33:55 2016 -0400

    Fixed typo in -help message.

Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 26 12:07:50 2016 -0400

    Reworked BUGS section of nmh(7) man page, and added excerpt
    to end of each -help message and to end of install-mh output.

Merge: aaf014c 60048af
Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 26 08:58:55 2016 -0400

    Merge remote-tracking branch 'origin' into smtputf8

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 25 12:58:05 2016 -0400

    Added MH(7) man page, as an alias of nmh(7).

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 25 12:18:42 2016 -0400

    Added mention of replaliases to mh-mime(7) man page.

Merge: 2c00d44 38e17e1
Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 25 09:28:05 2016 -0400

    Merge remote-tracking branch 'origin' into smtputf8

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 24 17:08:01 2016 -0400

    Replace profile-based hack to allow getname() to handle 8-bit
    addresses with a global data-based hack.  At least the global
    data is hidden in addrsbr.c.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 24 17:01:32 2016 -0400

    Removed send and post -eai switches.  Instead, post now enables
    SMTPUTF8 if it finds any 8-bit characters in header field bodies.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 24 12:21:40 2016 -0400

    Disabled incompatible locale check because the output varies too
    much between platforms.
    
    (cherry picked from commit 38e17e1b8ba306ed6137b174f2f196d09d02816f)

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 24 12:21:40 2016 -0400

    Disabled incompatible locale check because the output varies too
    much between platforms.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 24 12:10:28 2016 -0400

    Wrapped some variables and arguments to prevent compile warnings
    when configured without SASL and OAUTH support.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 24 10:42:58 2016 -0400

    Added incompatible locale test to test/mhl/test-rfc6532.  It's
    a placeholder to show that 8-bit header field values aren't
    properly handled if the locale is incompatible.
    
    (cherry picked from commit 2cfa2ea56602d3bb0465a46c0b144017b497b558)

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 24 10:42:58 2016 -0400

    Added incompatible locale test to test/mhl/test-rfc6532.  It's
    a placeholder to show that 8-bit header field values aren't
    properly handled if the locale is incompatible.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 24 09:44:39 2016 -0400

    Added descriptive/usage information to top of replaliases.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Sep 24 02:01:05 2016 -0400

    Change from an autoconf test for SSL_library_init to SSL_new,
    for compatibility with OpenSSL 1.1.0.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 23:12:58 2016 -0400

    Improve and update comments a bit, and also improve the error messages
    when we don't have Cyrus-SASL support compiled in.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 23 22:13:04 2016 -0400

    Specify that mhbuild -autoheaderencoding picks either base64 or q-p,
    but not utf-8.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 22:04:44 2016 -0400

    Add our sample localpostprox, and also pick up replaliases while we're
    at it.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 23 21:54:26 2016 -0400

    Renamed mhbuild -headerencoding 8bit to utf-8.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 19:52:09 2016 -0400

    Make it so we always return the chosen mechanism, even if we aren't
    using the Cyrus SASL library; this makes XOAUTH2 work without
    Cyrus-SASL.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 19:51:36 2016 -0400

    Missed removing SASLminc() from authservice switch.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 19:30:21 2016 -0400

    Switch to AM_DISTCHECK_CONFIGURE_FLAGS.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 15:08:25 2016 -0400

    Make the SASL flags work even without support for Cyrus-SASL.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 15:07:51 2016 -0400

    Move things around so you can still initialize netsec with SASL
    parameters even if you don't have Cyrus-SASL enabled.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 14:48:50 2016 -0400

    Move some of the SASL variables outside of the ifdef, so OAUTH
    can make use of them.  Also, clean up some warnings.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 14:22:29 2016 -0400

    Update documentation a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 14:21:23 2016 -0400

    Whoops, a typo from the last merge; when the one variable got
    reformatted continuation escapes weren't included.

Merge: f3cd885 2ebd126
Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 14:14:26 2016 -0400

    Merge branch 'pop-tls'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 14:13:23 2016 -0400

    Don't output snoop information when doing RETR or TOP.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 14:00:59 2016 -0400

    Switch decodeBase64() second argument to an unsigned char **.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 23 13:59:52 2016 -0400

    Don't always output a decoded SASL token; if it's a large binary blob, just
    stick with the base64 output.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 23 11:55:20 2016 -0400

    Added SMTPUTF8 (RFC 6531) support:
        1) Allow 8-bit characters in addresses.
        2) Disable RFC 2047 encoding of (all) header field bodies, via
           mhbuild -headerencoding 8bit.
        3) Have post enable it in the SMTP transaction.
        4) If enabled, add the commands to the SMTP transaction
           (MAIL FROM: <address> BODY=8BITMIME SMTPUTF8).
    Some things may changed, such as the 8bit encoding algorithm name.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 23 08:21:57 2016 -0400

    Rearranged statements to avoid compile warning about mixed
    declarations and code.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 23 08:20:27 2016 -0400

    Fixed typo (NOTLSSW).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 23:27:36 2016 -0400

    Garbage collect the saslmaxssf flag, and update documentation for
    new -initialtls flag and -notls flags for inc.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 23:10:59 2016 -0400

    Forgot to reset the snoop callback one time.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 21:26:39 2016 -0400

    Fix some typos and warnings.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 20:01:34 2016 -0400

    Switched to "server" instead of "client" for SASL remote hostname.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 19:31:57 2016 -0400

    Garbage collect unused code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 19:24:50 2016 -0400

    Whoops, turns out I originally ran this test with XOAUTH set.  Fix the
    output and make sure the common script unsets XOAUTH so this doesn't
    happen again.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 19:12:36 2016 -0400

    Change the tests to make them work with the new program output
    and slight change in the interface.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 19:12:12 2016 -0400

    Add error reporting for one case, and move around the return code
    in the SASL callback a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 19:11:32 2016 -0400

    Add the SASL callback; things work now!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 19:10:23 2016 -0400

    Disable the original call to BIO_flush() now that we're doing our
    own buffering.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 19:05:39 2016 -0400

    I had forgotten that nesec_set_tls() has to be called AFTER the
    descriptors are set.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 22 14:08:10 2016 -0400

    Fixed test-mhfixmsg by using octal instead of hex bytes with
    printf(1).

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 22 13:54:50 2016 -0400

    Removed temporary debuggin printout.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 22 13:39:55 2016 -0400

    Added start_test/finish_test.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 22 13:39:42 2016 -0400

    Added temporary diagnostic printout.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 22 13:07:32 2016 -0400

    Allow -decodetext binary, though 8bit is still the default because
    binary can produce messages that are not RFC 2045 compliant.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 22 08:24:49 2016 -0400

    Specify full path to mhl in test because it might not be on PATH.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 00:05:13 2016 -0400

    Alright, things compile now, but don't link yet; need to write the
    SMTP sasl callback.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 22 00:04:43 2016 -0400

    Okay, fixed a few more things.  Almost there?

Merge: 64a5aa1 cff807b
Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Sep 21 23:33:29 2016 -0400

    Merge branch 'pop-tls' of git.sv.gnu.org:/srv/git/nmh into pop-tls

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Sep 21 23:32:11 2016 -0400

    Change things so we can take two file descriptors, one for input
    and one for output.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Sep 21 16:51:21 2016 -0400

    Okay!  Squashed a few bugs, now have POP OAuth tests working.

Author: David Levine <levinedl@acm.org>
Date:   Wed Sep 21 13:49:21 2016 -0400

    Fixed test-rfc6532:  MIME-Version isn't ignored by mhl.headers.
    Maybe it should be?

Author: David Levine <levinedl@acm.org>
Date:   Wed Sep 21 11:54:49 2016 -0400

    Added test/mhl/test-rfc6532.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Sep 21 00:06:52 2016 -0400

    Add support for a base64-decoding snoop callback.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Sep 20 23:30:51 2016 -0400

    Garbage-collect all of this unused code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Sep 20 22:11:25 2016 -0400

    We have OAauth working!  But the tests don't work yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Sep 20 20:09:37 2016 -0400

    Shuffle some stuff around, change some prototypes, and modify the
    oauth code a bit to fit our new structure.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 20 12:23:04 2016 -0400

    Plugged memory leak in openBase64().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Sep 19 23:29:39 2016 -0400

    Maybe ... it works?  Sort of!  Needs more testing, and for me to finish
    OAuth support.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Sep 19 19:59:40 2016 -0400

    More work, but not there just yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Sep 18 22:03:18 2016 -0400

    Okay, we're finally getting to implementation stage!  Hopefully we'll be
    able to make it all work with POP first, then SMTP.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 18 12:22:10 2016 -0400

    Moved LDFLAGS to AM_LDFLAGS.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 18 10:29:17 2016 -0400

    Moved CFLAGS additions to AM_CFLAGS.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 18 09:57:06 2016 -0400

    Moved restore of CFLAGS outside of AC_CHECK_HEADER, so that it's done
    unconditionally.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Sep 18 01:15:20 2016 -0400

    I think I've written all of these functions; now we just need to
    have everyone else use them.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 17 17:11:23 2016 -0400

    Added AM_CPPFLAGS to CFLAGS that are used for curl checks, because
    they're needed on Cygwin.  (Without _GNU_SOURCE, sys/types.h doesn't
    include sys/select.h.)  Also added AM_CFLAGS, which we don't currently
    use but might in the future.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 17 10:15:11 2016 -0400

    Updated Makefile.am to correspond to file replacement in commit
    4a007bacfa67e69923b15500e2b2c3a6bcde541a.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 17 10:08:22 2016 -0400

    Updated cygport script in preparation for nmh 1.7 release.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 17 10:06:56 2016 -0400

    Replaced cygwin build script with cygport script.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 17 10:05:35 2016 -0400

    Added libcurl to Cygwin package requirements, if configured
    with --with-oauth.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 16 17:47:31 2016 -0400

    Added oauth to mhparam examples.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 16 15:59:27 2016 -0400

    Still closer, but not quite there yet.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 16 12:08:55 2016 -0400

    Moved LFLAGS additions to AM_LFLAGS.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 16 11:56:42 2016 -0400

    Use CPPFLAGS instead of AM_CPPFLAGS for FreeBSD additions.
    Otherwise, it will miss -liconv.  I think.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 16 11:15:45 2016 -0400

    Cleaned up cppflags.m4 a bit and fixed its mode.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 16 08:28:18 2016 -0400

    Moved CPPFLAGS additions to AM_CPPFLAGS.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 15 22:36:17 2016 -0400

    Okay, a bit closer.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 15 20:00:02 2016 -0400

    Added 2 second timeout to curl command in post() in oauth.c, for
    localhost requests only, because the default timeout on Cygwin is 5
    minutes.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 15 18:58:14 2016 -0400

    Added NMH_ADDL_CPPFLAGS macro in new m4/cppflags.m4, to remove
    explicit OS dependencies when deciding whether -DGNU_SOURCE is
    needed.  (Cygwin now needs it.)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 15 16:00:07 2016 -0400

    Fleshed out some more, but we're not there just yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Sep 14 00:00:48 2016 -0400

    A bit more code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Sep 13 16:00:46 2016 -0400

    Save this for now.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Sep 12 21:37:06 2016 -0400

    More functions documented.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Sep 12 19:07:29 2016 -0400

    Beginnings of a new library API.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 11 11:49:44 2016 -0400

    Exposed a bunch of switches that are now documented.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 11 11:30:42 2016 -0400

    Added Examples section to mhlogin man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Sep 11 00:41:18 2016 -0400

    Add a "file-nopermcheck" credential entry.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Sep 11 00:05:25 2016 -0400

    Change this so the MTS_SMTP is the default, to match the value
    of mts_method and the original code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Sep 11 00:01:28 2016 -0400

    Remove the unused argument from mts_init() (as far as I can tell,
    it has never been used, for anything).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 9 15:49:26 2016 -0400

    Closer, but not there yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 8 15:40:04 2016 -0400

    Started ... not quite working yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Sep 8 13:13:57 2016 -0400

    Only get a write lock on the sequences file if we're performing a pack
    operation.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 6 18:02:46 2016 -0400

    Added some NMH_UNUSED's to prevent compile warnings without
    OAUTH_SUPPORT.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 6 17:49:59 2016 -0400

    Protected call of mh_oauth_do_xoauth() with #ifdef OAUTH_SUPPORT to
    allow post(1) to link when configured without it.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 6 17:36:16 2016 -0400

    Protected use of setup_oauth_params() with #ifdef OAUTH_SUPPORT.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Sep 6 15:32:28 2016 -0400

    Under some circumstances, some version of MacOS X can return EPROTOTYPE
    if you try to write to a connection that is being torn down.  Handle
    that case.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 6 09:16:15 2016 -0400

    Removed incorrect increment of read position pointer, which caused
    first character of some very short (less than 4 characters) message
    bodies to be dropped.  It seems that the message needed to start
    with a "From " line to reveal the problem.

Merge: 5776f9b da91c15
Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Sep 5 20:32:03 2016 -0400

    Merge branch 'xoauth'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Sep 5 20:21:55 2016 -0400

    Change things so if -authservice wasn't given, throw an error.
    At the same time, improve the code so -authservice doesn't
    have to be given before the other oauth flags.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Sep 4 22:20:40 2016 -0400

    Switch from our horrible awk script that parses the signal header file
    to the POSIX function strsignal().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Sep 4 20:42:21 2016 -0400

    Fix up a few minor nits to make OAuth2 (finally!) work right in post(8).
    Change the tests to support the new error output.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Sep 3 23:46:45 2016 -0400

    Add new signal include file location for El Capitan.  I am not sure
    this is in general the right approach.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 29 09:26:38 2016 -0400

    Added warning message on stderr if folder -nocreate is provided
    a non-existant folder.
    
    (cherry picked from commit d51964a51fdc08d92dab9825a8357c9adba34aa7)

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 29 09:26:38 2016 -0400

    Added warning message on stderr if folder -nocreate is provided
    a non-existant folder.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Aug 21 13:04:59 2016 -0400

    Removed jsmn license from COPYRIGHT.  In keeping what appears to
    be standard practice, the COPYRIGHT file just contains the nmh
    copyright.  We retain the jsmn license in thirdparty/jsmn/LICENSE.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Aug 21 12:22:42 2016 -0400

    Check result of setup_oauth_params() for != OK instead of non-zero.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Aug 21 00:39:36 2016 -0400

    Very close, but it doesn't passes the tests just yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Aug 20 01:18:13 2016 -0400

    Retrieve appropriate profile entries and pass them to post(8).
    Not quite working yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Aug 16 23:35:09 2016 -0400

    Start of adding arguments for transmitting OAuth parameters to
    post.
    
    (cherry picked from commit 68246559a5087f3a3c13ef2a6240a7c18dd9c155)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Aug 16 23:35:09 2016 -0400

    Start of adding arguments for transmitting OAuth parameters to
    post.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Aug 15 14:39:04 2016 -0400

    Add $(ICONVLIB) to programs that need it.
    
    (cherry picked from commit 8c9441dc98bb4ce98ae70528d5415d9f5507713e)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Aug 15 14:39:04 2016 -0400

    Add $(ICONVLIB) to programs that need it.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 15 10:58:33 2016 -0400

    Create $MH_OBJ_DIR/test/testdir if it doesn't already exist.  This
    allows a test to be run standalone, now that said directory must
    exist before defining $MH_TEST_DIR.
    
    (cherry picked from commit 0f53d91688c0fab28b900ad27a1610a755dea526)

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 15 10:58:33 2016 -0400

    Create $MH_OBJ_DIR/test/testdir if it doesn't already exist.  This
    allows a test to be run standalone, now that said directory must
    exist before defining $MH_TEST_DIR.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 15 10:31:43 2016 -0400

    Plug a couple of (harmless) memory leaks in mhfixmsg.
    
    (cherry picked from commit 58d22c00deb7bc9c771c5293079f6f89bc28274a)

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 15 10:31:43 2016 -0400

    Plug a couple of (harmless) memory leaks in mhfixmsg.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 14 20:45:43 2016 -0400

    Handle base64 decoding decoding of initial response for all AUTH
    mechanisms the same way, based on RFC 4954 spec.  Also, don't try
    to decode = or * response.
    
    (cherry picked from commit b3ebdfc56e7a0199a60d80f54872e86969d96933)

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 14 20:45:43 2016 -0400

    Handle base64 decoding decoding of initial response for all AUTH
    mechanisms the same way, based on RFC 4954 spec.  Also, don't try
    to decode = or * response.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Aug 14 13:26:59 2016 -0400

    Newer versions of Automake want to include the test-driver script,
    so make sure we ignore it.
    
    (cherry picked from commit bd6f799b1d98c11b50a4121c9ac763bcf1b1b3fe)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Aug 14 13:25:51 2016 -0400

    Use isascii() with isprint(), since using isprint() on
    bytes > 127 is undefined.
    
    (cherry picked from commit 7054379384884f0975c687ce9b2cd8c20e3f2c12)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Aug 14 13:26:59 2016 -0400

    Newer versions of Automake want to include the test-driver script,
    so make sure we ignore it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Aug 14 13:25:51 2016 -0400

    Use isascii() with isprint(), since using isprint() on
    bytes > 127 is undefined.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 14 13:11:50 2016 -0400

    Set HOME in tests if unset, to avoid warning from w3m about not being
    about to create config directory.
    
    (cherry picked from commit 30a9c9b62fa92df289079080eb5ee57d2fda3951)

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 14 13:11:50 2016 -0400

    Set HOME in tests if unset, to avoid warning from w3m about not being
    about to create config directory.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 14 11:04:07 2016 -0400

    Fixed typo in man page.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Aug 14 11:02:50 2016 -0400

    Fixed a couple of typos in man pages.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Aug 14 10:59:13 2016 -0400

    Attempt to decode base64-encoded strings in -snoop traffic.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 14 10:57:51 2016 -0400

    Attempt to decode base64-encoded strings in -snoop traffic.

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 10 11:58:45 2016 -0400

    Canonicalize MH_TEST_DIR in TESTS_ENVIRONMENT.
    
    (cherry picked from commit 28c31eb83bf6113dd72182bb5f13c4da99372d9e)

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 10 11:47:36 2016 -0400

    Use pwd -P to canonicalize MH_TEST_DIR.
    
    (cherry picked from commit 6f94c7d978b034d34319236e8a868a5b225605c0)

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 10 11:41:01 2016 -0400

    Added debug printouts.
    
    (cherry picked from commit 5d8bc1288d5bd672bfb81b347e4c7742fbe644d1)

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 10 11:19:00 2016 -0400

    Canonicalized MH_TEST_DIR, and replaced use of `pwd` with it, to
    try to prevent test failures on fbsd10 test host.
    
    (cherry picked from commit 1846c42228ff68f328cb046027bc7a03ec3ba596)

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 10 11:58:45 2016 -0400

    Canonicalize MH_TEST_DIR in TESTS_ENVIRONMENT.

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 10 11:47:36 2016 -0400

    Use pwd -P to canonicalize MH_TEST_DIR.

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 10 11:41:01 2016 -0400

    Added debug printouts.

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 10 11:19:00 2016 -0400

    Canonicalized MH_TEST_DIR, and replaced use of `pwd` with it, to
    try to prevent test failures on fbsd10 test host.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jul 22 10:08:24 2016 -0400

    Fixed comments describing decodeBase64().
    
    (cherry picked from commit 06b87ce464beb93a7929541c355edf580ccec023)

Author: David Levine <levinedl@acm.org>
Date:   Fri Jul 22 10:08:24 2016 -0400

    Fixed comments describing decodeBase64().

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 20 21:25:01 2016 -0400

    Factored out base64 decoding code into decodeBase64().
    
    (cherry picked from commit 522c66eae1a144e0631dfaa61f1632e341ea7ce6)

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 20 21:14:25 2016 -0400

    Moved md5.c from uip to sbr.
    
    (cherry picked from commit 98c792e2effa2656e4fce979d6f6eec44d64131c)

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 20 21:25:01 2016 -0400

    Factored out base64 decoding code into decodeBase64().

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 20 21:14:25 2016 -0400

    Moved md5.c from uip to sbr.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jul 8 11:01:07 2016 -0400

    Updated send(1) man page to note that sendfrom looks in
    Envelope-From and Sender headers as well as the From header.
    
    (cherry picked from commit b347135ed8e4c15c6562d7b3d7924bd9ef7f1589)

Author: David Levine <levinedl@acm.org>
Date:   Fri Jul 8 11:01:07 2016 -0400

    Updated send(1) man page to note that sendfrom looks in
    Envelope-From and Sender headers as well as the From header.

Merge: ae54f99 75ac400
Author: David Levine <david.levine@gonift.com>
Date:   Fri Jul 8 10:48:59 2016 -0400

    Merge remote-tracking branch 'origin' into xoauth

Author: David Levine <levinedl@acm.org>
Date:   Fri Jul 8 10:35:52 2016 -0400

    Added Envelope-From and Sender support to sendfrom.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jul 8 10:28:20 2016 -0400

    Changed addresses to use example.com.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jul 8 09:59:58 2016 -0400

    export MH_TEST_DIR so that test/dist/test-dist can be run standalone.

Author: David Levine <david.levine@gonift.com>
Date:   Tue Jul 5 12:10:05 2016 -0400

    Moved sendfrom code from contrib into send(1).

Author: David Levine <levinedl@acm.org>
Date:   Tue Jul 5 12:02:59 2016 -0400

    Moved sendfrom code from contrib into send(1).

Author: David Levine <levinedl@acm.org>
Date:   Tue Jul 5 09:57:07 2016 -0400

    Added context_find_prefix().

Author: David Levine <david.levine@gonift.com>
Date:   Mon Jul 4 18:25:53 2016 -0400

    Added context_find_prefix().

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 25 21:22:37 2016 -0400

    Wrapped code block of conditional statement with {}, so that the
    second statement is now included in the conditional.  Found by
    gcc 6 -Wmisleading-indentation.
    
    (cherry picked from commit 9626eb33ed5ff7c59776081e1a58a20a1eed96be)

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 25 21:19:37 2016 -0400

    Moved free(cp) to right after last (and only) use of cp.  The statement
    was flagged by gcc 6 -Wmisleading-indentation.  In its original location,
    it would not always have been called, resulting in leaked memory.
    
    (cherry picked from commit 79f012b76eba04d50a36a4a37c57458a8d521434)

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 25 21:17:05 2016 -0400

    Fixed indentation to prevent warning from gcc 6 -Wmisleading-indentation.
    
    (cherry picked from commit a814c930041c1e238f1826b1ac9c46b67e4cfb70)

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 25 21:22:37 2016 -0400

    Wrapped code block of conditional statement with {}, so that the
    second statement is now included in the conditional.  Found by
    gcc 6 -Wmisleading-indentation.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 25 21:19:37 2016 -0400

    Moved free(cp) to right after last (and only) use of cp.  The statement
    was flagged by gcc 6 -Wmisleading-indentation.  In its original location,
    it would not always have been called, resulting in leaked memory.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 25 21:17:05 2016 -0400

    Fixed indentation to prevent warning from gcc 6 -Wmisleading-indentation.

Merge: c546ef9 235b62a
Author: David Levine <david.levine@gonift.com>
Date:   Sat Jun 25 21:16:36 2016 -0400

    Merge remote-tracking branch 'origin' into xoauth

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 10:38:19 2016 -0400

    Added const to filename args of cpydata().  Then added const to some
    args in mhfixmsg.c.
    
    (cherry picked from commit 9f7d48c36f01ba29974834cbcdc24e4c2e1f07d9)

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 10:36:43 2016 -0400

    Added const to arg of m_backup().
    
    (cherry picked from commit d42ab414c8bce17b6b437ef9ebfd194a8ac4111c)

Author: David Levine <david.levine@gonift.com>
Date:   Sun Jun 12 11:34:59 2016 -0400

    Synched common.sh.in from master to nmh-oauth.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 11:33:27 2016 -0400

    No longer need const cast in sendfrom.c.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Jun 12 11:27:21 2016 -0400

    Added consts to adios(), advise(), and advertise() to sync master
    and nmh-oauth branch.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 11:26:37 2016 -0400

    Added consts to adios(), advise(), and advertise() to sync master
    and nmh-oauth branch.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 10:38:19 2016 -0400

    Added const to filename args of cpydata().  Then added const to some
    args in mhfixmsg.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 10:36:43 2016 -0400

    Added const to arg of m_backup().

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 10:35:47 2016 -0400

    Added const to first arg of adios().

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 10:05:16 2016 -0400

    If parse_mime() fails and the -file switch was used, pass the input
    message to it unchanged so that pipelines won't break.
    
    (cherry picked from commit 564b5b785c7cc709f92a83afb547267ed7418f18)

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 12 10:05:16 2016 -0400

    If parse_mime() fails and the -file switch was used, pass the input
    message to it unchanged so that pipelines won't break.

Author: David Levine <david.levine@gonift.com>
Date:   Mon May 30 11:49:20 2016 -0400

    Plugged leak in mh_oauth_cred_load().

Author: David Levine <david.levine@gonift.com>
Date:   Mon May 30 11:48:46 2016 -0400

    Added free_fs() call to plug leak from fmt_compile().

Author: David Levine <levinedl@acm.org>
Date:   Mon May 30 11:48:28 2016 -0400

    Added free_fs() call to plug leak from fmt_compile().

Author: klemens <ka7@github.com>
Date:   Sun May 29 14:39:05 2016 +0200

    spelling-fixes ( code-comments in .c, .h. .y ... )
    
    (cherry picked from commit 942561da2455ee50a1eb82c8c4f2bdb5e25133d1)

Author: klemens <ka7@github.com>
Date:   Sun May 29 14:37:11 2016 +0200

    spelling-fixes ( docs, man, readme )
    
    (cherry picked from commit fa92642a21119eda8bfc961f8d5a8d3e9ee7d494)

Author: klemens <ka7@github.com>
Date:   Sun May 29 14:39:05 2016 +0200

    spelling-fixes ( code-comments in .c, .h. .y ... )

Author: klemens <ka7@github.com>
Date:   Sun May 29 14:37:11 2016 +0200

    spelling-fixes ( docs, man, readme )

Author: David Levine <david.levine@gonift.com>
Date:   Sun May 29 09:40:12 2016 -0400

    Added sendfrom to docs/contrib.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 29 09:39:36 2016 -0400

    Added sendfrom to docs/contrib.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 21 09:15:56 2016 -0400

    Added docdir to mhparam.
    
    (cherry picked from commit 89d69fbd2ae1f9c8c989850ec7057814c655a727)

Author: David Levine <levinedl@acm.org>
Date:   Sat May 21 08:06:36 2016 -0400

    Removed unnecessary memset on fmt_mnull:  it gets initialized to
    all 0's.
    
    (cherry picked from commit 56c4ac49d7b8ad674c0a66e9999186bcb98bd048)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed May 18 12:44:21 2016 -0400

    Check to see if cross-directory links are supported; if they are not,
    then don't run the refile -link test.
    
    (cherry picked from commit 35fce21b692a6259138fc81caf13f4d07bb58da0)

Author: David Levine <levinedl@acm.org>
Date:   Sat May 21 09:15:56 2016 -0400

    Added docdir to mhparam.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 21 08:06:36 2016 -0400

    Removed unnecessary memset on fmt_mnull:  it gets initialized to
    all 0's.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed May 18 12:44:21 2016 -0400

    Check to see if cross-directory links are supported; if they are not,
    then don't run the refile -link test.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 2 12:55:31 2016 -0400

    For slocal, changed default user, if -user switch isn't used, to be
    the user part of the Local-Mailbox profile entry, if present, or the
    current user.  addr uses the same default.  This allows addr
    to contain a '.', which slocal did not allow before.

Author: David Levine <david.levine@gonift.com>
Date:   Mon Apr 25 22:20:39 2016 -0400

    Added test of negative return code from jsmn_parse() to test-send.

Author: David Levine <david.levine@gonift.com>
Date:   Mon Apr 25 22:19:37 2016 -0400

    Added test of empty authorization code to test-mhlogin.

Author: David Levine <david.levine@gonift.com>
Date:   Mon Apr 25 21:58:10 2016 -0400

    Added explicit OATH_SUPPORT=1 to configure.ac when oauth support is
    enabled, otherwise it didn't get set to 1.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Mon Apr 25 03:33:15 2016 +0000

    Fix tests with oauth disabled.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Apr 24 22:09:39 2016 -0400

    Check for empty code.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Apr 24 21:42:20 2016 -0400

    Return false from parse_json() if jmsn_parse() returns a negative
    (or zero, as it did before) value.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Mon Apr 25 01:23:04 2016 +0000

    Improve oauth autoconf support.
    
    - By default, enable OAuth if curl is found.
    
    - If OAuth requested (--with-oauth), error if curl not found.
    
    - If OAuth disabled (--without-oauth), don't enable it even if found.
    
    - Sanity-check curl-config --version output so we don't send anything crazy in
      our HTTP requests if curl-config changes.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Wed Apr 13 16:58:45 2016 +0000

    Rename files to match renamed functions
    
    Follow-up to commit 840b3f0e45a43b8378e88c66f004b2f186662e35

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sun Apr 10 18:46:52 2016 +0000

    Fix mhlogin(1) title.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Apr 10 11:42:29 2016 -0400

    Added -user to mhlogin man page.

Author: David Levine <david.levine@gonift.com>
Date:   Sat Mar 26 18:59:31 2016 -0400

    Added start_test() and finish_test() functions to test/common.sh.in.
    See usage information in the (new) cleanup() function in that file.
    This allow us to isolate test failures based on naming of individual
    tests within a single test file.  As part of this, added set -e to
    setup_test().  This required minor updates to test/new/basic and
    test/pick/test-stderr to conform.  So, migrated test/new/test-basic
    to start_test()/finish_test().
    
    (cherry picked from commit cd6133dd23422f92534328f768a322f63a5c6dfe)

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 10 11:16:55 2016 -0400

    Fix to commit 84932d0a96c79bfb2f0384ebab806dc51a35f600 to
    insert blank line between header and content for non-text
    content.
    
    (cherry picked from commit fe36a7ee2f4304fd3797443d4f2f950d6dc2475d)

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 10 11:16:55 2016 -0400

    Fix to commit 84932d0a96c79bfb2f0384ebab806dc51a35f600 to
    insert blank line between header and content for non-text
    content.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 10 11:15:42 2016 -0400

    Quoted variables in trap so that distcheck doesn't trip over them if
    not set.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 10 11:14:54 2016 -0400

    Moved "const" to after "register" to silence compile warning fron gcc.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sun Apr 10 06:19:19 2016 +0000

    check curl_ctx->res_len > 0 not res_body != NULL
    
    res_body is not a pointer and is never NULL
    
    (Thanks clang!)

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sun Apr 10 06:17:35 2016 +0000

    oops, pass int to m_getfld not size_t

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sat Apr 9 23:09:12 2016 -0700

    support multiple oauth users; mhlogin now requires -user

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sun Apr 10 05:03:14 2016 +0000

    plug some memory leaks, in success cases only
    
    (staying clean at least on non-adios paths is not hard)

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sun Apr 10 04:53:34 2016 +0000

    fix mhlogin -browser test

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sun Apr 3 08:23:11 2016 +0000

    Rename and document functions that read from stdin.
    
    - gans becomes read_switch
    - getans becomes read_switch_multiword
    - getans_via_readline becomes read_switch_multiword_via_readline
    - getanswer becomes read_yes_or_no_if_tty
    - install-mh.c geta becomes read_line

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sun Apr 3 01:32:23 2016 +0000

    test mhlogin -browser

Author: David Levine <david.levine@gonift.com>
Date:   Sun Mar 27 12:00:16 2016 -0400

    Don't call sm_auth_sasl() for XAUTH2 with -sasl.  Instead,
    call only sm_auth_xoauth2().

Author: David Levine <david.levine@gonift.com>
Date:   Sat Mar 26 19:09:50 2016 -0400

    Added start_test()/finish_test() to README.developers.

Author: David Levine <david.levine@gonift.com>
Date:   Sat Mar 26 19:05:10 2016 -0400

    Migrated the oauth tests to start_test()/finish_test() so that
    they don't have any output on success, but do report the particular
    test on failure.

Author: David Levine <david.levine@gonift.com>
Date:   Sat Mar 26 18:59:31 2016 -0400

    Added start_test() and finish_test() functions to test/common.sh.in.
    See usage information in the (new) cleanup() function in that file.
    This allow us to isolate test failures based on naming of individual
    tests within a single test file.  As part of this, added set -e to
    setup_test().  This required minor updates to test/new/basic and
    test/pick/test-stderr to conform.  So, migrated test/new/test-basic
    to start_test()/finish_test().

Author: David Levine <david.levine@gonift.com>
Date:   Thu Mar 24 21:25:19 2016 -0400

    Added -browser switch to mhlogin(1).

Merge: 630af73 961d5bf
Author: David Levine <david.levine@gonift.com>
Date:   Thu Mar 24 20:24:15 2016 -0400

    Merge remote-tracking branch 'origin' into xoauth

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 24 19:57:15 2016 -0400

    Changed minchars swit values for -[no]concat switches to show(1)
    from negative to 0, so that they can be abbreviated and so that they
    appear with -help.  Added them to the man page, and fixed text that
    was copied from mhshow(1) man page.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 24 19:55:58 2016 -0400

    Use WIFXEXITED to check return status of system(), because
    comparison with NOTOK wasn't valid.

Author: David Levine <david.levine@gonift.com>
Date:   Wed Mar 23 21:40:31 2016 -0400

    Changed sign of minchars for the SASL-related switches from
    negative to positive so the won't be hidden from help messages.
    I think.

Merge: 626b510 f1920d7
Author: David Levine <david.levine@gonift.com>
Date:   Wed Mar 23 20:41:46 2016 -0400

    Merge remote-tracking branch 'origin' into xoauth
    
     merge is necessary,

Author: David Levine <david.levine@gonift.com>
Date:   Wed Mar 23 20:25:32 2016 -0400

    Replaced -oauth service switch with -saslmech xoauth2
    -authservice service, because OAUTH2 is a SASL mechanism.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Mar 20 17:28:27 2016 -0700

    Another pass at cleaning up (some of) the manpages.
    
    This continues work I started a couple of years ago, but then got
    derailed on.  There are two main goals behind these updates:
    
    1) replace some low-level troff constructs with more modern
       man(7) facilities, and
    
    2) adopt a more consistent visual style to the layout and
       formatting of the manpages, particularly in reference to
       typeset pages.
    
    This time around I have updated README.manpages to describe the new
    guidelines.  They are mostly non-intrusive, and serve to clean up
    a lot of visual clutter that has crept in over the years.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 19 10:15:43 2016 -0400

    Added check of return value of write() to quash compiler warning.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 19 00:06:24 2016 -0400

    Recover properly if the character conversion fails.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 19 00:04:56 2016 -0400

    Fix substitution code so it uses the right pointer for the utf-8 test.

Merge: c2a69f6 2885665
Author: David Levine <david.levine@gonift.com>
Date:   Fri Mar 18 08:30:21 2016 -0400

    Merge remote-tracking branch 'origin' into xoauth

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 17 22:05:54 2016 -0400

    Have fix_boundary() return NOTOK if it couldn't fix a boundary,
    so that mhfixmsg won't modify the message.

Author: David Levine <david.levine@gonift.com>
Date:   Wed Mar 16 21:32:48 2016 -0400

    Added oauth support to whatnow.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Mar 13 15:40:23 2016 -0400

    Added oauth switch to whatnow.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Mar 13 13:11:21 2016 -0400

    Added use of local variable user to prevent compiler warning
    when built without OAuth2 support.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Mar 13 12:58:25 2016 -0400

    Sort JSON output from oauth tests so that comparisons don't
    depend on it being in a specific order.  Also, clean up test
    tmp files.

Author: David Levine <david.levine@gonift.com>
Date:   Sun Mar 13 12:57:18 2016 -0400

    Set MH_VERSION, OAUTH_SUPPORT, and CURL_USER_AGENT in tests/common.sh.in
    so that oauth tests can be run individually (not just via make check).

Author: David Levine <david.levine@gonift.com>
Date:   Sun Mar 13 11:00:05 2016 -0400

    Added OAuth2 support to build_nmh.

Merge: b7f1c78 ddb9e8c
Author: David Levine <david.levine@gonift.com>
Date:   Sun Mar 13 10:42:39 2016 -0400

    Merge branch 'master' into xoauth

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 12 13:25:36 2016 -0500

    Have -nocrlflinebreaks apply to the message parts that -decodetypes
    designates.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 12 10:41:03 2016 -0500

    Added EXAMPLES and BUGS sections.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sat Mar 12 00:15:46 2016 -0500

    Implement the -reverse option to pick(1) to change the search order.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 27 11:44:51 2016 -0500

    Updated date on mh-folders(5) man page.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 27 11:33:39 2016 -0500

    Added application/ics to default list if types to decode.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu Feb 25 11:33:14 2016 -0500

    mh-folders.man: note that folders should not be named numerically

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 24 20:32:10 2016 -0500

    Added -[no]crlflinebreaks switches to mhfixmsg(1).

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 21 11:59:41 2016 -0500

    Added check for successful decode of a different part with
    attempted -decodetext of binary text to test-mhfixmsg.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 21 11:22:53 2016 -0500

    Don't consider failure to build a text/plain part to be an error.
    This allows mhfixmsg to succeed even if there isn't a suitable
    mhfixmsg-format-text/subtype profile entry for every text part in
    the message.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 20 13:41:52 2016 -0500

    Added -decodetypes switch to mhfixmsg(1).

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 28 21:16:43 2016 -0500

    Add missing -infile switch name to mhfixmsg-format-text/calendar
    rule in mhn.defaults.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 23 15:14:33 2016 -0500

    mhical enhancement:  If a datetime is missing the time, assume
    midnight.  If there is no end datetime (DTEND) and the DTSTART
    doesn't contain a time, assume that the event is for the entire day.

Author: Richard M Kreuter <kreuter@progn.net>
Date:   Tue Jan 19 21:39:11 2016 -0500

    Set MH to the resolved, absolute pathname inside context_read() so
    that exec'd children can find it.

Author: Richard M Kreuter <kreuter@progn.net>
Date:   Tue Jan 19 21:19:16 2016 -0500

    Added all of mhshow's documented switches to show's handling, on the
    notion that nmh's pieces should know about each other.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 19 21:03:30 2016 -0500

    Added mention of mhfixmsg -fixcte to error message for improper C-T-E in
    multipart message.  Thanks to Conrad Hughes for suggesting this.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 29 22:21:11 2015 -0500

    Moved addition of -ansi -pedantic to CFLAGS with gcc from
    configure.ac to docs/contrib/build_nmh, so that they're not
    included by default with builds by users.

Author: David Levine <levinedl@acm.org>
Date:   Thu Nov 19 15:27:49 2015 -0500

    Allow a RRULE in an iCalendar request to not have an INTERVAL on its
    yearly FREQ, because INTERVAL defaults to 1.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 18 18:35:59 2015 -0500

    Remove any enclosing quotes from a timezone identifier in an
    iCalendar event request.  See comment added to format_datetime()
    that says that I don't believe that RFC 5545 allows them to be
    quoted.  But Oliver Kiddle found them in the wild.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 18 18:02:43 2015 -0500

    If format_datetime() returns null, store a copy of node->value on c->c_text
    to prevent a double free().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Aug 22 22:16:22 2015 -0400

    If str == buffer, then do NOT do a strncpy(buffer, str).  Many systems
    this works, but on some systems it causes a SIGABRT.  POSIX says the
    behavior on overlapping copies with str*cpy() is officially undefined.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Aug 22 22:14:41 2015 -0400

    Add support for setting the environment variable MH_TEST_NOCLEANUP to
    prevent a test from cleaning up the test working directory.

Author: Leonardo Taccari <iamleot@gmail.com>
Date:   Fri Aug 21 13:26:53 2015 -0400

    Add support for the -sendmail flag to send/post, to support changing the
    sendmail executable.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jul 13 22:32:36 2015 -0400

    Unquoted addresses in mhshow and scan output.  Suggested by
    Anthony Bentley.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 20 12:09:54 2015 -0400

    Change the reference to the valgrind suppression file from $MH_OBJ_DIR to
    $srcdir so "make distcheck" works.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 20 12:02:14 2015 -0400

    Include a new valgrind warning suppression for MacOS X.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Fri Mar 20 10:26:02 2015 -0400

    Make sure the valgrind suppression file is honored, and add some extra
    suppressions needed when running under the Debian fakeroot environment.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 17 11:02:38 2015 -0400

    Fix error message to correctly report the program that failed to execute
    when doing HTML conversion.
    Also, remove perl function prototypes as they are not considered best
    practice.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 6 22:58:58 2015 -0500

    Rearrange all callers of post(8) so that the filename is always last.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed Mar 4 13:10:38 2015 -0500

    mhparse.c: verify all MIME-Version: headers encountered
    
    in addition to verifying, silently ignore duplicate version headers.

Merge: f9eb71e 3f60981
Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 22 21:21:40 2015 -0600

    Merge remote-tracking branch 'origin/convertargs'

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sat Feb 14 11:36:24 2015 -0500

    use %l uniformly on all the text-mode browser display strings
    
    otherwise behavior changes depending on which browser was present
    when nmh is configured/installed.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 13 23:30:03 2015 -0600

    Filter converted text/html to remove blank lines and leading space
    that lynx inserts.  Also, changed ISO-8859-1 to US-ASCII because it
    is, so it doesn't need to be converted.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 13 22:22:21 2015 -0600

    Removed m_chkids(), per suggestion of Marcin Cieslak.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 13 21:31:48 2015 -0600

    Removed unnecessary #include of h/signals.h.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 13 21:30:41 2015 -0600

    Removed #include of signal.h because it's in h/signals.h.

Author: Marcin Cieslak <saper@saper.info>
Date:   Fri Feb 13 21:01:09 2015 -0600

    Reset done in inc_done() to prevent endless loop when setegid()
    fails (in which case adios() is called, which calls done()).

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 12 21:33:05 2015 -0600

    That didn't work, so removed offset.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 12 21:27:45 2015 -0600

    Use +0000 isntead of -0000 offset because FreeBSD displays it that way.

Author: Marcin Cieslak <saper@saper.info>
Date:   Thu Feb 12 21:09:26 2015 -0600

    Replaced setgid() calls with setegid() so that it works with dot
    locking on FreeBSD.  setegid() should be supported on modern POSIX
    systems.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 12 20:22:32 2015 -0600

    Added showmimeproc to test/common.sh.in so that test-show will test
    it in the workspace, not the user's installation.  Also added all of
    the other procs defined in config/config.c that are currently unused,
    just in case they some day are.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 12 20:03:11 2015 -0600

    Removed a few more msh (MS_MSH and mshproc) and vmh (vmhproc) relics.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 11 21:38:51 2015 -0600

    Replaced individual assignment of array elements, one of which was
    out of range, with array initialization.

Author: Marcin Cieslak <saper@saper.info>
Date:   Tue Feb 10 14:18:05 2015 +0000

    Fixed the error message in lockit() when it fails to create tmp file.

Author: Marcin Cieslak <saper@saper.info>
Date:   Tue Feb 10 14:18:05 2015 +0000

    Fixed "inc" to be installed setgid mail with dot locking.  MAILGROUP=1
    was not set in the config.h because we no longer use "LOCKTYPE"
    configure variable.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sun Feb 8 15:13:31 2015 -0500

    update tests for new message separator header from mhshow
    
    also added test names to tests, in any file i touched

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sun Feb 8 16:06:44 2015 -0500

    update man pages for new mhshow message separator header

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sun Feb 8 15:22:07 2015 -0500

    add new message separator header to mhshow
    
    new switches to mhshow (-headerform and -[no]header) control whether
    and what is displayed before the display of every message's content.
    the default separator looks like "[ Message folder:msg ]".  the
    implementation parallels the -markform feature.
    
    since mhshow is often started by show, show now passes the -[no]header
    options through to mhshow.  (also, show no longer attempts to pass
    such options through to cat (in the case of -noshowproc)).

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Feb 6 13:03:36 2015 -0500

    fix typo in mh-format.man

Author: Eric Gillespie <epg@google.com>
Date:   Thu Feb 5 12:46:28 2015 -0800

    Test that show always shows message numbers.
    
    show shows message numbers in two different formats when showing one
    non-MIME, multiple non-MIME messages, or one MIME message.
    
    show does not show any message numbers when showing multiple messages
    any of which is MIME.
    
    This is not a new bug, just one that has bothered me since I started
    using mhshow with 1.6.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Feb 6 11:57:58 2015 -0500

    test/common.sh: allow giving individual tests a name

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Feb 6 11:32:44 2015 -0500

    man pages -- clarify what -part and -type do when used together

Merge: 991ae1d afea511
Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 8 09:23:34 2015 -0600

    Merge remote-tracking branch 'origin' into convertargs

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 8 09:21:13 2015 -0600

    Added support to mhfixmsg -reformat for multipart/related.  If it has
    only a single part that is not text/plain and can be converted to
    text/plain, a text/plain part is added and the type of the part is
    changed to multipart/alternative.  If the multipart/related has more
    than one part but does not have a text/plain part, try to add one.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 4 19:19:54 2015 -0600

    Fixed test-convert to work on Cygwin and other platforms that
    default to UTF-8 locale.

Merge: 397195e ff6c0df
Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 4 19:18:33 2015 -0600

    Merge remote-tracking branch 'origin' into convertargs

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 4 19:05:16 2015 -0600

    Removed unused local variable from move_preferred_part().

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed Feb 4 18:52:53 2015 -0500

    pending-release-notes: add mhshow's "-prefer", and mh-format's %(kibi/kilo)

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed Feb 4 14:44:36 2015 -0500

    test-subpart: add mhlist and mhshow tests for -type/-part/-prefer

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed Feb 4 12:07:27 2015 -0500

    update mhshow, mhlist, and mhstore man pages for -prefer switch

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Feb 3 21:55:41 2015 -0500

    implement -prefer, for multipart/alternative preferences

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Feb 3 23:03:46 2015 -0500

    mhshow.man: more detail on use of -part and -type switches

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Feb 3 12:39:53 2015 -0500

    mhshow: ensure that -part always shows every part requested
    
    previously, "mhshow -part 1 -part 1.3" would show 1.1 but not 1.3.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Jan 30 19:52:24 2015 -0500

    mhshow: fix display of alternatives after certain nested multiparts
    
    adjust return codes so that we now have a clear indication of whether
    there was a hard error (NOTOK), a failure to display due to type
    mismatch (DONE), or complete success (OK).  use those codes in
    show_multi_internal() to decide whether we're finished with this
    multipart or not.
    
    prior to this change, it was impossible to show part 1.2 of a
    message constructed like the following, because the disinction
    between (the new, as described above) DONE and OK states was
    lost while processing multipart/related part 1.1.
     msg part  type/subtype              size description
      28       multipart/mixed           1040
         1     multipart/alternative      623
         1.1   multipart/related          275
         1.1.1 text/html                  105
         1.2   text/plain                  33
         2     text/plain                  83
    
    this fix is related to 9cc2510 and c9794733.  hopefully it's right
    this time.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Jan 30 20:14:59 2015 -0500

    mhshow: simplify code -- the DONE status was adding no value

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Jan 30 19:41:37 2015 -0500

    drop the second argument to part_ok(), since it is always 1
    
    the second argument hasn't been used since "historical" times.
    also add some commentary to part_ok().

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Jan 27 15:17:20 2015 -0800

    Add a note about new bindir option to mhparam.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Jan 27 15:07:19 2015 -0800

    'mhparam bindir' now prints NMH's idea of $(bindir).

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 20 19:10:56 2015 -0600

    Added a line break to mhbuild man page because the
    %docdir%/contrib/replaliases line caused format complaints from groff.

Merge: 4857a9e a70006b
Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 18 21:31:20 2015 -0600

    Merge remote-tracking branch 'origin' into convertargs

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 11 19:10:23 2015 -0600

    Fixed check of return value of show_content_aux().

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 11 19:05:11 2015 -0600

    Have show_content_aux2(), and therefore show_content_aux(), return
    the status of the process used to show, instead of (usually) OK.
    
    (cherry picked from commit a70006bbdf676639961877b02a19e9e1f1d0ec78)

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 11 19:05:11 2015 -0600

    Have show_content_aux2(), and therefore show_content_aux(), return
    the status of the process used to show, instead of (usually) OK.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 10 17:23:54 2015 -0600

    Fixed typo in mh-format.man page, which I wouldn't have noticed
    if I didn't go back in to update its date.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 10 17:12:49 2015 -0600

    Added multiply format function, requested by Norm.

Merge: ebd5247 0706d36
Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 7 20:32:20 2015 -0600

    Merge remote-tracking branch 'origin' into convertargs

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 7 20:15:06 2015 -0600

    Pass along arguments to calaccept(), etc., functions in replaliases.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 7 20:13:41 2015 -0600

    Fix to commit 6b073f7b67a0afd64012ff7d00818ec1bd07b5f2 to properly
    detect a Content-Type header in output from converted content.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 6 21:39:42 2015 -0600

    Another fix to convertarg handling of multipart/related.  Two,
    actually.  One is a simple bug fix, the other restricts concatenation
    to text/plain, not just text, parts.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 5 22:32:00 2015 -0600

    Specifically look for Content-Type header in converted content.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 5 19:10:33 2015 -0600

    Fixed convertarg handling of text part in multipart/related.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 4 11:22:18 2015 -0600

    Forgot to commit test-mhical.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 4 10:52:28 2015 -0600

    Added mhical(1), to display, reply to, and cancel iCalendar (RFC 5545)
    event requests.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 4 09:57:23 2015 -0600

    Added yacc/bison support to configure.ac.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 29 07:44:38 2014 -0600

    Added rtm alias.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 29 06:06:59 2014 -0600

    More cleanup of the cp in tests/common.sh.in.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 28 22:15:04 2014 -0600

    Added -h and -p options to replaliases.  The -p argument can be useful
    with improperly structured messages, such as those that use
    multipart/related when they should have used multipart/alternative.
    Alos, removed -editor mhbuild because it precludes use of WhatNow
    attach.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 28 21:12:06 2014 -0600

    Replaced explicit list of files to be copied in test/common.sh.in
    with *.  It wasn't trivial, per the comments in the file about
    portability to posh, but close.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 28 15:51:36 2014 -0600

    OK, this fixes the problem referenced in the last commit.  It
    removes the copy of the etc files only during make distcheck.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 28 13:42:35 2014 -0600

    Reverted commit a2b00e7053ca3be3d1389588580c71498222a267.  It caused
    make check to pull etc files from where they were already installed,
    not from the test directory.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 28 12:46:22 2014 -0600

    Removed export of most of the variables in test/common.sh.in.  The
    test scripts source common.sh so they don't need them to be exported.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 28 12:32:14 2014 -0600

    Removed copy of all of the etc files from test/common.sh.in.
    Instead, for make distcheck, pass the location of the installed etc
    directory via DISTCHECK_CONFIGURE_FLAGS, configure, and
    TESTS_ENVIRONMENT to a new nmhetcdirinst variable.  Outside of make
    distcheck, nmhetcdir is valid by itself.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 28 12:12:40 2014 -0600

    Rearranged the variable settings at the top of test/common.sh.in.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 27 11:25:48 2014 -0600

    Changed direct access to etc files in a couple of tests to be the
    installed (for the test) versions, not the copies made by common.sh.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 27 11:19:43 2014 -0600

    Replaced nmhexecdir with nmhlibexecdir in test/common.sh.in (and
    test-mhparam) for consisitency with the Makefile.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 25 11:10:52 2014 -0600

    Added -fixtype switch to mhfixmsg(1).  It ensures that each part of
    a message has the correct MIME type shown in its Content-Type header.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 25 11:04:28 2014 -0600

    Added const to char * arguments of uprf().

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 25 00:05:36 2014 -0600

    Added ct_str_type() and ct_str_subtype() functions, to translate
    MIME type and subtype names to the the internal MIME parser codes.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 25 00:04:34 2014 -0600

    Merged two adjacent if (verbose) blocks.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 24 18:25:43 2014 -0600

    Fixed memory leak in mime_type().  get_file_info() always allocates
    its return value.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 24 14:35:41 2014 -0600

    Always initialize those two variables made static in commit
    771706ac9fed2b902bd4d3ddccb15ee27b0f58ae in case they were
    set in previous calls.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 21 19:50:58 2014 -0600

    And removed another improperly copied comment.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 21 19:46:25 2014 -0600

    Removed improperly copied comment from test-mhfixmsg.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 21 19:41:12 2014 -0600

    In expand_pseudoheader(), set Content-Type to 7-bit for ASCII text.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 21 16:21:27 2014 -0600

    Added mention of profile components that are described
    in other man pages.  Suggested by Michael Richardson.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 21 10:31:41 2014 -0600

    Rearranged code to avoid "might be clobbered by longjmp" warnings from
    gcc 4.9.2

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 21 10:22:41 2014 -0600

    Removed unnecessary #includes of setjmp.h.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 20 14:27:03 2014 -0600

    Removed widths from mhbuild-convert-text/html lines that should
    have been removed by commit 5ab36412b5fc49feb41fa816129c68fd6d946e8b.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 20 14:07:37 2014 -0600

    Fixed use of text_plain_ct in mhbuildsbr.c so that it works with
    multiple text parts.  Found by Clang static analyzer.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 20 10:42:11 2014 -0600

    Set COLUMNS in test-cd if using readline so that its wrapping doesn't
    disturb the test output.  The problem arose with a long workspace path.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 20 10:36:10 2014 -0600

    posh didn't like use of file wildcard in common.sh.in.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 20 09:21:50 2014 -0600

    Removed R from default PARINIT environment variable so that par(1)
    does not consider an input word that is too long to be an error.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 17 20:43:37 2014 -0600

    Fixed format engine output of negative number with 0 fill character.
    Improper output was reported by Bob Carragher.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 14 22:11:00 2014 -0600

    Added -convertargs switch to repl(1), to pass arguments to programs
    specified in the user's profile or mhn.defaults to convert message
    content.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 13 08:30:35 2014 -0600

    Rearranged mhn.defaults.sh a bit:  consolidated web-browser specific
    settings and put most of the mhstore-store- directives in a here doc.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 13 08:04:13 2014 -0600

    Clarified in repl(1) man page that -noformat is only the
    default when no -filter switch is used.

Author: Eric Gillespie <epg@google.com>
Date:   Mon Dec 8 23:37:51 2014 -0800

    Strip carriage returns fakehttprequest logging.

Author: Eric Gillespie <epg@google.com>
Date:   Mon Dec 8 23:29:07 2014 -0800

    Note curl dependencies for Linux and FreeBSD.

Author: Eric Gillespie <epg@google.com>
Date:   Mon Dec 8 23:26:27 2014 -0800

    Teach mhparam about oauth support.

Author: Eric Gillespie <epg@google.com>
Date:   Mon Dec 8 23:20:01 2014 -0800

    Implement OAuth 2.0 [1] for XOAUTH2 in SMTP [2] and POP3 [3].
    
    Google defined XOAUTH2 for SMTP, and that's what we use here.  If other
    providers implement XOAUTH2 or some similar OAuth-based SMTP authentication
    protocol, it should be simple to extend this.
    
    [1] https://tools.ietf.org/html/rfc6749
    [2] https://developers.google.com/gmail/xoauth2_protocol
    [3] http://googleappsdeveloper.blogspot.com/2014/10/updates-on-authentication-for-gmail.html
    
    Technically, XOAUTH2 is a SASL auth mechanism, but the implementation is so
    trivial, I can't justify the code complexity or additional dependency
    requirement of using Cyrus SASL for this.  So it's completely separate.
    
    Changes:
    
    - New dependencies:
    
      - jsmn (JSON processing library) bundled directly rather than linked to as
        an external library because there is no clear winner among JSON
        libraries for C and this one is tiny
    
      - libcurl is nearly ubiquitous and too heavy-weight to bundle, so link to
        the library the user must install separately
    
    - Add oauth.h / oauth.c which do almost all the work, with quite a bit of
      help from curl and jsmn.
    
    - Add new mhlogin program to authorize nmh to use the Gmail account and
      store the access and refresh tokens.
    
    - Add new user_agent global to version.c (version.sh); not too happy with
      such a generic name, but the others had no mh_ prefix or anything...
    
    - Add XOAUTH2 support to:
      mts/smtp/smtp.c uip/post.c uip/send.c uip/popsbr.c uip/inc.c uip/msgchk.c
    
    - Split duplicated serving code out of fakepop.c and fakesmtp.c to new
      server.c and also use that for new fakehttp.c.
    
    - Add XOAUTH2 support to fakepop.c and fakesmtp.c.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Mon Dec 8 21:47:58 2014 -0800

    import jsmn 86:19001fb4adb3

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 6 09:30:52 2014 -0600

    Only remove extraneous trailing semicolon from Content-Type and
    Content-Disposition headers because those are the only ones that
    parse_mime() warns about, but it does appear on others.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Fri Dec 5 21:08:40 2014 -0800

    Terminate last arg in proxy argv n popsbr.c:parse_proxy().
    
    This bug seems to have existed since this code was born.  I guess
    others have been lucky?

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 2 13:41:55 2014 -0500

    Set all Content structure elements to NULL as they are free()'d; in a few
    cases a content structure is reused and you can get into problems with
    double-free()ing elements depending on your MIME composition content syntax.

Merge: 330bdf6 8206fbf
Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 2 13:12:45 2014 -0500

    Merge commit '8206fbf', due to my screwup of committing it on a detached
    HEAD after a git-bisect.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 2 13:00:47 2014 -0500

    Turns out those warnings for ali(1) actually happen when the prefix is
    33 characters, not 35.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 2 09:35:02 2014 -0500

    Explicitly depend on $(srcdir)/config/version.h rather than depend
    on VPATH.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Mon Dec 1 13:32:26 2014 -0500

    cast isspace() arg to unsigned char in previous commit

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Mon Dec 1 08:57:44 2014 -0500

    handle extraneous trailing ';' characters that are followed by whitespace

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 30 21:35:19 2014 -0600

    mhfixmsg now removes an extraneous trailing semicolon from header
    parameter lists.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 22 19:00:32 2014 -0600

    Use Nmh-Attach for attach header field name, and accept Attach.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 22 18:55:39 2014 -0600

    Have to check for missing type parameter in message/related part
    even though it's required according to RFC 2387 Sec. 3.1.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 22 18:54:48 2014 -0600

    Expanded explanation of mhfixmsg return status in its man page.

Author: David Levine <levinedl@acm.org>
Date:   Thu Nov 20 22:28:28 2014 -0600

    Look at type of parent multipart/related when determining whether
    a non-plain text part already has a text/plain sibling.

Author: David Levine <levinedl@acm.org>
Date:   Thu Nov 20 22:27:58 2014 -0600

    Added support for multipart/related to MIME parser.

Author: David Levine <levinedl@acm.org>
Date:   Thu Nov 20 20:25:14 2014 -0600

    Added some checks to mhfixmsg.c to avoid dereferecing null pointers
    after a failed transformation.

Author: David Levine <levinedl@acm.org>
Date:   Thu Nov 20 19:48:58 2014 -0600

    Fixed double fclose() in InitMultiPart() and leaks introduced in
    commit 5be8db81.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu Nov 20 15:41:34 2014 -0500

    prevent spurious errors when requesting specific message parts
    
    no one should be reporting NOTOK for failure to display parts that
    weren't actually requested.  failure should be reserved for parts that
    we really attempted to display.
    
    (this fix is an extension of c9794733.)

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 19 21:04:33 2014 -0600

    Updated simple integration example in mhfixmsg(1) man page
    and added return status values.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 19 20:17:45 2014 -0600

    Updated test-mhfixmsg to support -[no]changecur.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 19 20:13:01 2014 -0600

    Added -[no]changecur switches to mhfixmsg(1).

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 16 18:13:47 2014 -0600

    Updated test-repl to compare with new -help message.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 16 17:14:32 2014 -0600

    Fixed repl help message to show "-[no]cc all|to|cc|me" instead of
    different options for -cc and -nocc.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 16 17:10:52 2014 -0600

    Fixed leak in content_charset():  if get_param() found the charset,
    it returns a copy.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 15 10:20:42 2014 -0600

    Moved mhstore declarations from uip/mhn.c, uip/mhstore.c, and
    uip/mhstoresbr.c to h/mhparse.h.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 15 08:40:36 2014 -0600

    Removed "If this draft originated on the local host, then" phrase
    from mh-alias man page.  Alias resolution applies no matter where
    the draft originated.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 7 23:08:13 2014 -0600

    Changed content_charset() to not cache, so the user can always, and
    should, free the return value.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 7 22:46:17 2014 -0600

    Cleaned up leaks from calls to content_charset() in mhfixmsg.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 7 22:42:34 2014 -0600

    Added deallocation of cts to freects_done().

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 4 21:47:13 2014 -0600

    Fixed repl(1) man page to show "msg" instead of "msgs" because
    it only allows reply to one message.

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 4 17:04:30 2014 -0600

    Fixed mlistfree() so that it doesn't dereference a free'd list node
    in order to find the next node.

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 4 17:00:28 2014 -0600

    Fixed commit 6cc9e85e73ff6f6c67ae6e645d184bbf57ecc2f0 to properly
    return other than the first mbox/address if there's a match in
    getmymbox/getmyaddr.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 29 21:27:55 2014 -0500

    Fixed memory management in mhstore.  The main problem was a double
    free when both -file and -outfile switches were used on a MIME
    message.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 29 19:37:18 2014 -0500

    Added initial "MH-Profile-Version: 1.0\n" line to newly created
    profiles.  The main purpose of this first line is to fool file(1).
    Without it, if the first line of the profile is Path:, file 5.19
    reports its type as message/news.  With it, it reports the type as
    text/plain.

Author: David Levine <levinedl@acm.org>
Date:   Mon Oct 27 21:20:07 2014 -0500

    Renamed getmymbox mh-format escape function to getmyaddr, and
    added new getmymbox that returns the user's address with any
    personal name.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 26 10:41:04 2014 -0500

    Added getmymbox function escape.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 25 20:41:55 2014 -0500

    Fixed memory leak in do_name() when multiple dates are parsed.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 25 20:38:20 2014 -0500

    Added free_fs(), corresponding to new_fs().

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 25 18:54:50 2014 -0500

    Fixed dst format escape to return 1 instead of 16, to agree with its
    documentation.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 24 23:25:58 2014 -0500

    Added mhstore-store-text/html formatting string to mhn.defaults.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 24 23:19:54 2014 -0500

    Fixed typo in mhstore man page.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 24 22:22:47 2014 -0500

    Reworked charstring_buffer_copy() to not use strdup() so that
    charstrings with null bytes can be supported.  Added
    charstring_append_cstring().

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 11 09:22:52 2014 -0500

    Added mh_xcalloc().

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 11 09:17:14 2014 -0500

    The units of the zone format escape are minutes, not hours.

Merge: edccf71 a92ba79
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Oct 8 19:13:19 2014 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Oct 8 19:12:28 2014 -0700

    no-op to force check the buildbots.

Merge: cdec1be 64be852
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 5 12:32:20 2014 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 5 12:28:56 2014 -0700

    mhn.defaults: make fetch less agressive on FreeBSD.
    
    Drop the -a flag to fetch.  Its retry logic has a bug where it will
    go into an endless loop when trying to re-fetch an object behind
    an https:// link when it is unable to validate the X.509 certificate
    chain.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 5 10:18:25 2014 -0500

    Use "mhparam etcdir" instead of hard-coded etc in build_nmh.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 5 01:50:59 2014 -0700

    Clean atags file as part of maintainer-clean.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 5 01:27:56 2014 -0700

    Add a missing option to mhn fetch command for FreeBSD.
    
    I *always* forget the '-o -' to redirect to stdout :-P

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 5 01:20:56 2014 -0700

    On FreeBSD, use fetch(1) to retrieve external content through URLs.
    
    fetch(1) is part of the base system, so it's guaranteed to always be there.
    And it is more likely to have been configured for any local site
    customizations (local caches, proxies, etc).

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 5 00:26:11 2014 -0700

    If building from a non-master git branch, include the branch name in the version string.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Oct 4 22:49:01 2014 -0700

    New locations for config files and support binaries, and smarter default for install root directory.
    
    The default locations for config files and back-end executables has
    changed.
    
    Config files have moved from ${sysconfdir} to ${sysconfdir}/nmh, and
    the back-end programs from ${libdir} to ${libexecdir}/nmh.
    
    The only user-visible change is the addition of a new mhparam(1)
    component 'libexecdir', which replaces the previous 'libdir'.  User
    scripts invoking 'mhparam libdir' will need an update.  'libdir'
    has been kept around for the time being, to give people a chance
    to update their scripts.  It returns the same value as 'libexecdir'.
    'libdir' has been marked deprecated in the mhparam(1) manpage and
    the release notes; it will be removed in a couple of releases.
    
    In conjunction with this change there was an opportunity to do a
    bit of Makefile cleanup.  The old 'auxexec' construct has been
    replaced with a new scheme that leverages automake's templating.
    The auxexec_* references have been replaced with nmhlibexec_* forms,
    and a corresponding nmhlibexecdir variable defined as ${libexecdir}/nmh.
    
    Likewise, etcdir has been replaced with nmhetcdir.
    
    These name changes have percolated downstream to some extent, primarily
    in the man pages and test scripts.
    
    Finally, configure has been made a bit smarter about setting the
    default ${prefix}.  If it finds an existing nmh installation, it
    will set the default ${prefix} to match, falling back to /usr/local/nmh.
    configure looks for an existing installation by searching $PATH for
    a viable mhparam binary.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 4 22:43:21 2014 -0500

    Fixed commit 2adafe760a9c45b417727a3f5d9481de26471a8b to not
    try to allocate a charstring_t of length INT_MAX with -width 0.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 4 22:17:08 2014 -0500

    Simplified test-mhl-flags a bit.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Oct 1 17:20:38 2014 -0700

    Add a 'guide' file for acme(1).
    
    If we ever find more than one acme user working on the source,
    the single-guide-file premise might need a review.
    
    Ultimately, there should be a way for the configure script to
    search for and import a personal guide file from the developer's
    $HOME or some such.  The next person to come along can figure
    that out.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Oct 1 15:36:25 2014 -0700

    git: ignore top-level tags files
    
    atags is the output from a ctags variant that generates its
    output in a format recognized by Plan 9's acme editor.
    (ftp://orthanc.ca/unix/atags/ for details.)

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Sep 29 22:42:28 2014 -0700

    FreeBSD packages destination directory fixup.
    
    If the ports collection is not installed, assume ports/packages
    install under /usr/local.
    
    Also, when querying <bsd.port.mk>, use the value of the $(LOCALBASE)
    macro. ($(PREFIX) is for port-specific overrides of $(LOCALBASE).)

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Sep 29 15:52:18 2014 -0700

    For FreeBSD builds, also search the ports tree for includes and libs.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 14 20:24:24 2014 -0500

    Added checks of return value of fwrite() calls where missing.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 14 19:31:43 2014 -0500

    Fixed formatting of rtrim/nortrim in mhl man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 14 19:14:10 2014 -0500

    An "rtrim" flag has been added to mhl to remove any trailing
    whitespace from filtered text lines.  A corresponding "nortrim" flag
    has also been added.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 14 19:04:21 2014 -0500

    If a component has trailing whitespace, e.g., body:component="> ",
    mhl now trims that whitespace off when filtering blank text lines.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 12 22:12:33 2014 -0500

    Fixed all anomalies detected by clang static analyzer (with
    default checkers on Linux).  One was notable:  there was a break
    missing from a switch case in fmt_scan.c, which caused the result
    of the sday function escape to be garbage.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 12 15:06:52 2014 -0400

    Fix typo in man page

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 7 09:56:21 2014 -0500

    On some platforms, -D_FORTIFY_SOURCE=2 warns about ignoring the
    return value from mbtowc() even when it is called to reset the
    shift state.  So wrap that in an if statement with a null body.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 7 09:18:20 2014 -0500

    Added -D_FORTIFY_SOURCE=2 now that the build is clean with it.
    Removed -Wno-unused-result because it shold no longer be necessary.
    Adjusting all settings of CPPFLAGS to have consistent form.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 6 20:26:42 2014 -0500

    Added a couple of new directories and a note about valgrind
    warnings from debuginfo to README.developers.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 6 08:00:52 2014 -0500

    Check return values of system calls in uip/ and test/ .c files, found
    with gcc's -D_FORTIFY_SOURCE=2.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 5 21:18:28 2014 -0500

    Quote "$SEARCHPATH" in mhn.defaults.sh to allow spaces, etc., in
    PATH components.

Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 1 21:09:04 2014 -0500

    Doubled size of buffers used by m_getfld(), scan, and fmttest to
    8192, on any platform, so that -width 0 and -outsize max are
    likely to include at least some part of the body of each message.

Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 1 20:27:33 2014 -0500

    Fixed typo in mh-profile.man.

Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 1 20:14:52 2014 -0500

    Don't let scan() use too large a width (BUFSIZ for now) to prevent
    allocating a huge output buffer.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 31 15:40:57 2014 -0500

    A value of 0 for the width switch of scan(1), inc(1), ap(1), dp(1),
    fmttest(1), and mhl(1) now means as many characters as the format
    engine can produce [Bug #15274].  That amount is limited by internal
    buffers.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 31 15:39:47 2014 -0500

    Fixed read of body in fmttest to limit size to that of rbuf, if
    smaller than outwidth, to avoid overrunning it.

Author: David Levine <levinedl@acm.org>
Date:   Fri Aug 29 08:50:51 2014 -0500

    fmt_scan() no longer subtracts 1 from the width.  This has the effect
    of no longer counting the trailing newline in the output of scan(1),
    inc(1), and the other programs that rely on it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Aug 28 22:29:21 2014 -0400

    Very very rough cut at trying to parse email addresses with Bison.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 25 22:06:11 2014 -0500

    Check return values of system calls in several sbr .c files, found
    with gcc's -D_FORTIFY_SOURCE=2.  Updated checks added previously to
    mhfixmsg.c to be consistent.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 25 20:49:39 2014 -0500

    Moved reverse_alternative_parts() from mhfixmsg.c to mhparse.c
    and added declaration to mhparse.h.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 25 19:50:23 2014 -0500

    Removed msh relics from scansbr.c, including a global.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 25 19:29:34 2014 -0500

    Added size_t cast of another MB_CUR_MAX to silence the compiler
    on FreeBSD 9.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 24 21:46:34 2014 -0500

    Added cast of MB_CUR_MAX to size_t to silence compiler warning on
    FreeBSD.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 24 21:19:10 2014 -0500

    Dynamically allocate space for the output of fmt_scan(), using
    charstring_t, so a fixed sized output buffer is no longer needed.
    Also got rid of scanl global.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 24 12:06:40 2014 -0500

    Added const to last argument of trace_cb signature, it'll be
    needed for use with charstring.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 24 08:23:55 2014 -0500

    Added charstring "class".

Author: David Levine <levinedl@acm.org>
Date:   Wed Aug 20 07:53:56 2014 -0500

    Refer to RFC 2046 instead of 1521 in mhlist.man.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 18 20:47:03 2014 -0500

    Changed dist_contrib_DATA to dist_contrib_SCRIPTS so that all
    of the scripts will be installed with execute permissions.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 18 20:36:00 2014 -0500

    Updated mhfixmsg(1) man page to refer to mh-mkstemp(1) instead of
    mktemp.

Author: David Levine <levinedl@acm.org>
Date:   Sat Aug 16 21:01:26 2014 -0500

    Checked return value of write() calls in mhfixmsg.c,
    found with gcc's -D_FORTIFY_SOURCE=2.

Author: David Levine <levinedl@acm.org>
Date:   Fri Aug 15 21:00:57 2014 -0500

    Removed h/msh, hopefully the last msh relic.

Author: David Levine <levinedl@acm.org>
Date:   Sat Aug 9 09:20:31 2014 -0500

    ncurses package is required to run all of test suite on Linux and Cygwin.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Aug 8 14:32:54 2014 -0700

    Print information about the compiler toolchain on Darwin and FreeBSD.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Aug 6 17:48:18 2014 -0700

    Add new build tool: tools/showbuildenv
    
    This prints some basic information about the build environment.
    It's intended use is to print some information about the specific
    build environment for each of the builds in the buildbot cluster.
    In particular, the patch level of the OS, and the versions of
    3rd-party packages installed on the system, compiler versions, etc.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 3 22:08:23 2014 -0500

    Removed second argument from m_Eom() in m_getfld.c because
    it was unused.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 3 21:05:03 2014 -0500

    Here's a better fix to m_Eom() in m_getfld.c than commit
    d2520ac7054ad75d60342606bf13c821305d958c.  The comparison
    of the return value of Getc() with EOF must be as an
    integer, not a char.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 3 21:01:16 2014 -0500

    Removed eom_action from m_getfld.c because it was only used by
    m_eomsbr(), which was removed by commit
    68e8c25f906e7353269502d2292c8e99aa8c6605.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 3 20:35:07 2014 -0500

    Removed mhlsbr().  It was only used by msh, too.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 3 20:10:45 2014 -0500

    Removed m_eomsbr() from m_getfld.c, and its scan_eom_action()
    wrapper.  It was only used by msh, which was removed by commit
    e6917522a770cf2dba9997ca047977bc55fac061.

Author: David Levine <levinedl@acm.org>
Date:   Sun Aug 3 07:53:15 2014 -0500

    Added -debug switch to pick(1) and deprecated $MHPDEBUG.

Author: David Levine <levinedl@acm.org>
Date:   Sat Aug 2 21:37:34 2014 -0500

    Fixed refile(1) -retainsequences when the source and destination
    folders are the same.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 27 08:32:13 2014 -0500

    Separated out list of programs that are required to build from a
    source code snapshot from those that are required to build from a
    distribution.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jul 24 13:10:23 2014 -0500

    Fixed sed usage in flex fixup to not use -s (or -e, because
    even that's not needed).

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 23 21:20:34 2014 -0500

    Removed "true" from end of flex fixups.  I don't know why it was
    there.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 23 21:10:47 2014 -0500

    Apply flex fixup to dtimep.c with flex 2.5.37 as well as 2.5.36.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jul 22 21:50:30 2014 -0500

    When mhparam(1) is going to output the value for spoollocking,
    call mts_init() first in case it was set in mts.conf.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jul 22 21:17:54 2014 -0500

    Updated test-spoollocking to restore mts.conf when it's finished
    (successfully) so as to not upset subsequent tests.  Also fixed
    removal of existing spoollocking option each time through.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jul 22 20:46:04 2014 -0500

    Note in mh-folders(5) man page that spoollocking can be overridden
    in mts.conf as well as with configure.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jul 9 12:05:49 2014 -0400

    Fix bug #42718; ali(1) still refers to removed options -normalize and
    -nonormalize.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jul 8 19:58:12 2014 -0500

    If the user didn't specify any of the tls switches to post(8), try to
    help them by implying -initialtls if they're using port 465 (smtps,
    until IANA revoked that registration in 1998).

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 6 22:22:38 2014 -0500

    Here's an even simpler fix to enable TLS by default.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 6 16:46:12 2014 -0500

    Fix to commit 03e76aecdf671ca13b5912af8206e9bdcb6c0919 to enable
    TLS by default.  Boolean logic is our friend.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Jul 4 13:24:37 2014 -0700

    Revert "Default to enabling (Cyrus) SASL, if available."
    
    This reverts commit fd23674a5829d5092c99a07110086f02f0b4a238.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jul 3 19:31:44 2014 -0700

    Turn back the sasl test.  Everything broke as a result.
    Not surprising.
    
    Revert "Comments should say why a chance matters ..."
    
    This reverts commit 7e6d0b76b1869b4fecc2412ac68f9739ee5916ea.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jul 3 17:49:31 2014 -0700

    Comments should say why a chance matters ...

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jul 3 16:40:37 2014 -0700

    Default to enabling (Cyrus) SASL, if available.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jul 3 16:33:56 2014 -0700

    Fix the release notes to put things in the correct section,

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jul 3 16:25:13 2014 -0700

    Note that post uses the submission port now.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jul 3 16:11:38 2014 -0700

    Enable TLS by default.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jun 16 21:04:47 2014 -0500

    Check return value of setlocale(3) and admonish on failure.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Jun 16 17:03:06 2014 -0700

    Add missing variable initializations on fmt_scan().

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Jun 16 16:03:25 2014 -0700

    Ensure getline() is in scope on FreeBSD.
    
    On FreeBSD, to make the getline() prototype visible, you must
    '#define _WITH_GETLINE' before including <stdio.h>.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 15 22:43:16 2014 -0500

    Fix to commit 0d3875d020fb17d34918f5e81ee7f87fbc5d1565:  it seems
    that only Linux uses the locale name of en_US.utf8, so added check
    for the more common en_US.utf-8 to the tests that use it.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 15 22:05:16 2014 -0500

    Reordered #includes of sbr/terminal.c to allow compilation on
    Solaris 10.  Thanks to Michael Urban for report the problem and
    verifying the fix.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 14 11:52:42 2014 -0500

    Skip (parts of) tests that require en_US.utf8 locale if it's
    not available.  Thanks to Alexander Zangerl for reporting the
    issue.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jun 13 15:17:48 2014 -0400

    Test to make sure inc works properly with a POP server that has
    multiple messages on it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jun 13 15:07:26 2014 -0400

    Support multiple messages with fakepop.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jun 10 21:08:02 2014 -0400

    Always default the username to the local username, even when not
    doing SASL.  Fix suggested by Michael Urban.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jun 10 19:06:54 2014 -0400

    Use variable-size (but in one case, fixed but larger) buffers for the SASL
    exchange to deal with larger SASL messages (specifically, when doing GSSAPI
    with certain ticket extensions).

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Mon Jun 9 23:21:35 2014 -0400

    mh-profile.man: rewrite the Profile Lookup section for clarity
    
    thanks to Ralph Corderoy for the text.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jun 9 12:00:17 2014 -0400

    If "curl" is available, create a nmh-access-url entry that uses it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jun 9 11:36:05 2014 -0400

    Fix curl example for nmh-access-url entry.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jun 7 23:14:12 2014 -0400

    Return an appropriate error if the input characters are 8-bit, but the
    locale character set is US-ASCII.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jun 7 22:40:12 2014 -0400

    Whoops, this should be LC_CTYPE.  Fixing that exposes the lack of an
    appropriate environment variable in test-utf8-body

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed Jun 4 12:18:12 2014 -0400

    mhlist: don't truncate anything when -verbose
    
    without this change to the -verbose output, there's no easy way to use
    mhlist to get an unmodified content-type or content-description.  (the
    non-verbose output isn't changed.)

Author: David Levine <levinedl@acm.org>
Date:   Thu May 29 21:08:59 2014 -0500

    Clarified description in comments of context_find_by_type().

Author: David Levine <levinedl@acm.org>
Date:   Thu May 29 21:07:25 2014 -0500

    Added static to declaration of docc().

Author: David Levine <levinedl@acm.org>
Date:   Thu May 29 21:05:36 2014 -0500

    Undid commit 475fef2edee9db3c63fc089df76f8e93e3d598cd, it didn't
    seem popular.  We'd be better off with a proper method, or using
    formail(1), to extract the addresses from a message.

Author: David Levine <levinedl@acm.org>
Date:   Thu May 29 21:02:49 2014 -0500

    Split assignment and export of shell variable.

Author: David Levine <levinedl@acm.org>
Date:   Tue May 27 21:35:23 2014 -0500

    Added mention of "Reply to <address>?" prompt to repl(1) man
    page and code, as comment.  Suggested by Norm so that scripts
    can depend on it.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 26 09:17:34 2014 -0500

    Added context_find_by_type(), helper function to search first, if
    subtype is non-NULL, for invoname-string-type/subtype and then
    invoname-string-type.  Also gets rid of some fixed-size temp buffers.

Author: David Levine <levinedl@acm.org>
Date:   Fri May 23 17:07:39 2014 -0500

    Fixed test-mkstemp to work with valgrind.

Author: David Levine <levinedl@acm.org>
Date:   Thu May 22 20:39:45 2014 -0500

    Fixed to commit 378589b17424bd78acbfc57d505383ffb8c256cb:
    when a -file switch will be used, insert -[no]concat before
    the filename (and therefore, the -file switch itself).

Author: David Levine <levinedl@acm.org>
Date:   Wed May 21 22:11:42 2014 -0500

    Don't pass -[no]concat from show(1) to mhl(1).

Author: David Levine <levinedl@acm.org>
Date:   Wed May 21 20:56:25 2014 -0500

    Fixed typos in comments.

Author: David Levine <levinedl@acm.org>
Date:   Wed May 21 20:50:22 2014 -0500

    On platforms with no MIMETYPEPROC, declare the content to be
    binary if it contains any NUL characters.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon May 19 13:37:26 2014 -0400

    Explain how to get a literal % in format files.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 18 21:55:13 2014 -0500

    Documented steps to build RPM from tarball, without using autogen.sh.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 18 21:43:20 2014 -0500

    Added autogen.sh to EXTRA_DIST.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri May 16 13:02:43 2014 -0400

    Handle unknown message types in the generic content handler rather
    than in the RFC822 handler; this will cause them to be displayed using
    an output marker rather than throw an error.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri May 16 12:14:21 2014 -0400

    Output a newline if the last character in a text/plain part is
    not a newline (but only for mhshow).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri May 16 00:04:24 2014 -0400

    Move the prototype for show_content_aux() to a common header file; it
    got an extra argument recently but none of the other users of it
    noticed.
    
    When fixing this I discovered that the usage of show_content_aux()
    by mhstoresbr.c was wrong; the prototype had an extra argument in
    the middle of it.  Apparently this has been broken for 15 years!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu May 15 23:01:49 2014 -0400

    Switch from %p to %l (%p is no longer supported, although we silently
    accept it).

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu May 15 14:02:07 2014 -0400

    fix comment syntax

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue May 13 09:36:42 2014 -0400

    clarify scan_content() logic for choosing encoding

Author: David Levine <levinedl@acm.org>
Date:   Thu May 15 10:28:03 2014 -0500

    Added support for mhbuild-disposition-<type>[/<subtype>] profile
    entries when mhbuild expands Attach: headers.  Default to
    'attachment', but override with 'inline' entries for text/calendar
    and message/rfc822 in mhn.defaults.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu May 15 08:55:45 2014 -0400

    change mhlist to use decimal math when abbreviating sizes
    
    the K/M/G/T units imply factors of 1000, so make the code
    match.  (the alternative would be to change the units to
    Ki/Mi/Gi/Ti.)  mhlist output might someday be configurable
    using mh-format, in which case the user will be able to choose.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue May 13 10:10:09 2014 -0400

    add $(kibi) function, as complement to %(kilo)
    
    %(kibi) will convert a number to IEC prefix units, i.e. Ki, Mi, Gi,
    Ti, representing factors of 1024.  (by comparison, %(kilo) represents
    factors of 1000.)

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue May 13 09:43:43 2014 -0400

    rename %(units) to %(kilo)
    
    per discussion here:
      http://lists.nongnu.org/archive/html/nmh-workers/2014-05/msg00092.html

Author: David Levine <levinedl@acm.org>
Date:   Tue May 13 07:02:11 2014 -0500

    Added --dereference option, if supported, to file(1) command
    in NMH_MIMETYPEPROC and NMH_MIMEENCODINGPROC macros.

Author: David Levine <levinedl@acm.org>
Date:   Fri May 9 18:58:11 2014 -0500

    Fix to commit b828fcb1695393007a75c41d32b2173c296be9d7:  a couple
    of commas were missing from the added line.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu May 8 14:25:14 2014 -0400

    add new sample files for mhbuild tests to Makefile.am

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu May 8 12:42:10 2014 -0400

    add new test for 'mhbuild -check'

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu May 8 11:31:56 2014 -0400

    eliminate use of fgets() from calculate_digest() in mhbuildsbr.c

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu May 8 10:57:40 2014 -0400

    eliminate use of fgets() in mhbuild.c
    
    use getline() instead, which is more tolerant of NULs in the input.
    also cleaned up error and file cleanup paths a bit.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu May 8 10:51:30 2014 -0400

    eliminate use of fgets() in mhparse.c
    
    use getline() instead, which is more tolerant of NULs in the input.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed May 7 19:43:04 2014 -0400

    add new test for NUL bytes embedded in text/plain parts
    
    such parts should be encoded with quoted-printable

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed May 7 16:57:14 2014 -0400

    add new test for attachment containing NULs

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed May 7 19:41:39 2014 -0400

    clean up whitespace in mhbuildsbr.c
    
    lots of space-follows-tabs, and trailing whitespace.
    no code changes.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed May 7 19:36:56 2014 -0400

    make scan_content() work correctly with content containing NULs
    
    switched from fgets to getline for unambiguous reads in the face of
    NUL bytes.  added a checkfornuls flag, and use it to cause the correct
    encoding when content-types of application or text contain NULs.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed May 7 19:34:33 2014 -0400

    make writeQuoted() work correctly with content containing NULs

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu May 8 12:37:50 2014 -0400

    Treat unknown top-level content types as "application" types, instead
    of generating an "unknown content type 0" error.

Author: David Levine <levinedl@acm.org>
Date:   Wed May 7 21:16:46 2014 -0500

    Fixed test-charset to pass without iconv.

Author: David Levine <levinedl@acm.org>
Date:   Wed May 7 21:14:45 2014 -0500

    Moved norm_charmap() declaration from h/prototypes.h to
    sbr/check_charset.c.  That's the only place where it's used and
    we want to keep it that way.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed May 7 12:33:56 2014 -0700

    Add a doxygen config file.
    
    Sends its output to docs/doxygen/... (see docs/doxygen/html/index.html after
    you run doxygen).
    
    Requires graphviz, for the dependency graphs.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed May 7 12:09:21 2014 -0700

    Revert "Increment VERSION on the head to 1.7+dev."
    
    This reverts commit 6cce62edaae4cc28ac42a1a796ff18f183407788.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed May 7 12:07:03 2014 -0700

    Add a 'tools' subdirectory.  This is a home for developer-oriented
    scripts and such which can't be run from the Makefile(s) due to
    system dependencies.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed May 7 11:49:10 2014 -0700

    Increment VERSION on the head to 1.7+dev.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed May 7 11:44:05 2014 -0700

    Scrub *.plist (Clang Static Analyzer) files when cleaning.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed May 7 11:43:09 2014 -0700

    Git: ingore *.plist files (generated by the Clang Static Analyzer).

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed May 7 12:10:35 2014 -0400

    remove binaries unintentionally committed
    
    oops.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Mon May 5 22:41:43 2014 -0400

    modify tests for the new mhshow mime part marker format
    
    also added a couple of Content-Description headers to better
    test the marker format.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed May 7 10:19:56 2014 -0400

    modify mhshow marker format to include the size of the part

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue May 6 17:28:18 2014 -0400

    add "%(units)" function, to express numbers with SI units
    
    i.e., 1510 --> 1.5K, 15780000 --> 15.8M  etc.  useful with %(size),
    as in %(units(size)).

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue May 6 11:54:52 2014 -0400

    make the %(size) function useful in mhshow marker line formats
    
    normally %(size) returns the size of the message.  in mhshow
    marker lines, it returns the size of the (decoded, if necessary) part.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue May 6 22:41:34 2014 -0400

    Document these functions a bit better.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 4 22:30:45 2014 -0500

    Removed obsolete comment.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 4 09:25:49 2014 -0500

    Fixed typo in comment in sbr/readconfig.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 4 21:51:52 2014 -0500

    Replaced use of norm_charmap() in mhshow and mhfixmsg with
    case-insensitive string comparison against the charset name.
    norm_charmap() is intended for use with result of nl_langinfo(),
    and didn't add much value here.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 4 09:03:33 2014 -0500

    In mhshow, copy result of call to norm_charmap() and get_charset()
    because they return a static buffer.  Thanks to Alexander Zangerl
    for tracking this down, when using an ISO-8859-1 locale.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed Apr 23 21:44:54 2014 -0400

    mhshow:  apply marker form to all part separators
    
    the mhshow "-markform" format is now used for all part separators, not
    just those being left out.  the format now overloads the %(unseen)
    function to indicate that the content of the part being marked has
    been suppressed.  the built-in default and example formats both make
    use of this function.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sat Apr 26 10:45:47 2014 -0400

    mhshow: suppress error for undisplayable parts, if they're not wanted
    
    consider this message:
    
       1       multipart/mixed          1113K
         1     multipart/alternative      292
         1.1   text/html                   66
         1.2   text/plain                  49
         2     image/jpeg                823K
    
    if this is displayed using "mshow -part 2", in the presence of an
    MHSHOW variable which _only_ describes a rule for displaying images,
    then we don't want to get an error about how nothing in part 1 was
    displayable.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Apr 22 12:23:01 2014 -0400

    man pages: clarify how profiles entries are searched
    
    (cherry picked from commit d7b59eb68168ead6a81ca40cf8aa5cccbf86c649)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 21 23:00:47 2014 -0400

    Fix minor typo in NEWS file.  Pointed out by Norman Shapiro.

Author: David Levine <levinedl@acm.org>
Date:   Mon Apr 21 19:00:45 2014 -0500

    Added yet another NDBM (gdbm, actually) header/lib pair, for Ralph's
    platform.

Author: David Levine <levinedl@acm.org>
Date:   Mon Apr 21 13:00:00 2014 -0500

    Added mhfixmsg to nmh man page.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sun Apr 20 19:01:48 2014 -0400

    mhshow.man: fix an incorrect 'mhn' reference

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 20 18:28:21 2014 -0400

    Documentation improvements, from Ralph Corderoy.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 20 18:08:47 2014 -0400

    Move clsfolds() before the call to context_save(); that is required
    when using private sequences, since seq_save() only moves the sequence
    information into the context structure; a subsequent call to context_save()
    is required to actually write out the context file.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 20 00:02:26 2014 -0400

    Sigh.  Of course I find another bug after I release RC2.  Make sure to
    initialize the enclosing CT structure when creating a message/external-body
    part.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 18 10:57:27 2014 -0400

    Remove support for a "*" in alias files (which would add everyone in
    the password file to the alias).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 18 10:44:19 2014 -0400

    Remove msh(1).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 18 10:03:27 2014 -0400

    Remove mhtest(8).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 18 09:30:22 2014 -0400

    Remove conflict(8).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 18 09:20:42 2014 -0400

    Remove -queue support to post; it is now officially obsolete.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 18 08:43:37 2014 -0400

    Fix the same problem in scan that was fixed in commit
    9eb9b47593181a3bf987eeaa0398ab5330ec12f8, but fix it for Maildir
    support.  Patch from Eric Gillespie.

Author: David Levine <levinedl@acm.org>
Date:   Thu Apr 17 19:55:19 2014 -0500

    Unset MAILDROP in test/common.sh so that it doesn't confuse
    test/inc/test-msgchk.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 16 11:46:55 2014 -0400

    Sigh.  Mention that we have to do both a "git push" and a "git push --tags".

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 16 11:44:48 2014 -0400

    Mention release branchpoint tagging.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 15 21:57:30 2014 -0500

    Fixed popsbr.c to look like its nmh 1.5 version, except it now
    uses nmh_get_credentials() instead of ruserpass() directly.  Also,
    added checks of return values of nmh_get_credentials() to smtp.c.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 15 21:10:41 2014 -0500

    Consistently refer to $HOME/.mh_profile and mh-profile(5) in
    the man pages.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 15 20:58:32 2014 -0500

    Reworked retrieval of username and password with SMTP and sasl so
    that if getusername() and no password are accepted by the mechanism,
    then the user need not provide them.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Apr 15 21:39:38 2014 -0400

    docs/contrib/ml: add a runtime check for known bash-ism
    
    i'm leaving the #! line as /bin/bash, because that's how i wrote
    and tested.  but with this change i think the script will still
    function correctly on a wide variety of shells.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 14 21:32:41 2014 -0400

    It turns out that due to the changes to m_getfld() to support file
    position tracking, this broke the scan output from inc(1) when POPing
    more than one message at a time.  Since a new filehandle was being
    passed to each call to scan(), it made the most sense to simply
    discard the m_getfld() state for each call to scan() when doing POP.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Mon Apr 14 12:29:39 2014 -0400

    replyfilter: flesh out the configuration instructions

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 14 11:58:54 2014 -0400

    Updating release notes for new release.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 14 09:57:59 2014 -0400

    Update for post-1.6.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 13 23:09:54 2014 -0400

    Update these a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 13 23:07:45 2014 -0400

    Add README-iCalendar to the distribution.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 13 23:02:57 2014 -0400

    Update developer documentation to match reality.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 13 22:37:53 2014 -0400

    If attaching a "message" content type, scan the content to see if it
    has 8bit characters and set the CTE on the enclosing MIME headers
    appropriately.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 13 22:36:34 2014 -0400

    Create a default CTE so routines in mhparse.c are happy.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 13 22:17:23 2014 -0400

    Make sure the draft filename ends up in the MIME structure, so error
    messages have the proper name in them.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sun Apr 13 16:18:07 2014 -0400

    add rmf(1) and folder(1) to one another's SEE ALSO sections

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 13 15:13:21 2014 -0500

    If mhfixmsg's call to convert_charset() fails, output why.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 13 13:11:00 2014 -0400

    If c_termproc is set, include a default display command so the charset
    conversion pipeline will work correctly.

Author: David Levine <levinedl@acm.org>
Date:   Fri Apr 11 17:20:02 2014 -0500

    Fixed showproc for RFC 822 messages.  Thanks to Mikhail for
    pointing this out.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Apr 11 15:55:54 2014 -0400

    mhshow: properly report the name of a failing display program
    
    otherwise it's not clear what didn't work.

Author: David Levine <levinedl@acm.org>
Date:   Thu Apr 10 21:21:28 2014 -0500

    If -[no]concat is given to show(1), have it use showmimeproc instead
    of showproc and pass those switches along.  This way, show won't pass
    them to mhl, which doesn't accept them.

Merge: 4c82793 236a2b6
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Apr 10 18:49:18 2014 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Apr 10 18:47:43 2014 -0700

    Add a note about devel/autotools as a pre-req for building on FreeBSD.
    
    Be a bit more specific about the versions of some OSes we build
    in the buildbot cluster.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 10 21:45:14 2014 -0400

    Use a dynamically-allocated buffer for character set conversion, and
    resize it if we get E2BIG.  Also create a test that exercises this
    particular problem.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 10 18:58:39 2014 -0400

    Don't clobber "cp"; use dp instead.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 10 14:09:18 2014 -0400

    Fix bug in error message when reporting character set conversion failure.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 10 12:29:28 2014 -0400

    A bad cut-and-paste job made -noinlineonly not work.  Patch from
    M. Levinson.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 10 12:28:01 2014 -0400

    Fix test for inlineonly.

Author: David Levine <levinedl@acm.org>
Date:   Thu Apr 10 07:52:41 2014 -0500

    Added -dump to w3m and elinks invocations in mhn.defaults.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Apr 10 04:10:34 2014 -0700

    When lkfopendata() fails, seqfile is being freed too soon.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Apr 10 04:00:18 2014 -0700

    I missed one spot in getln() where the new quoting flag needs to be cleared.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Apr 10 03:52:17 2014 -0700

    If getln() sees a newline as its first character, it incorrectly
    references a character one byte before the start of its input
    buffer.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Apr 10 03:07:16 2014 -0700

    Clang's static analyzer reports a potential NULL pointer deref.
    This is a "shouldn't happen" case, so I have added an assert
    to quell the warning, and catch the failure in the off chance
    we do get here with last == NULL.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Apr 10 02:43:36 2014 -0700

    Remove dead initialization of fp in main().

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 9 22:04:58 2014 -0500

    Added -dump (and -child) to lynx invocation when it's used in
    mhshow-show-text/html.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 9 21:05:07 2014 -0400

    Formatting fix, from Mikhail <mp39590@gmail.com>.

Merge: 6e94720 d6e398f
Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 9 19:19:26 2014 -0500

    Merge remote-tracking branch 'origin/fix-locking'

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 9 16:32:56 2014 -0500

    The size reported by mhshow test-charset is different with and
    without iconv, so determine it at runtime.

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 9 16:31:06 2014 -0500

    Use *ct->c_ceclosefnx() instead of clsoe_encoding() in show_content_aux().

Merge: 1f29440 e6ddebc
Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 9 16:25:08 2014 -0400

    Merge branch 'mhshow-fixup'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 9 16:24:34 2014 -0400

    Document and distribute mhshow.marker

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 9 16:16:18 2014 -0400

    Document the changes made to mhshow.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 9 14:53:00 2014 -0400

    Change from "concat" to "concatsw" so we don't conflict with the
    function concat().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 9 13:30:42 2014 -0400

    Add new flags for -concat/-noconcat, -inlineonly/-noinlineonly, and
    -textonly/-notextonly;

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 9 13:15:28 2014 -0400

    Change things so we only supply a form filename; most programs don't do
    both, and this isn't work the extra hassle.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 9 11:29:32 2014 -0400

    Now only display text and inline content by default.
    Use mh-format(5) to display marker text for skipped content.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 8 21:34:20 2014 -0500

    lkopen_dot() would block forever if another process held a lock
    forever.  Changed it to only retry for 60 seconds, like the other
    lkopen's.  And have it indicate that it failed to acquire the lock.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 6 13:55:27 2014 -0500

    Instead of relying on errno to determine if locking failed, pass
    back explicit indication in int * argument to lk(f)opendata() and
    lkopenspool().

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 6 11:12:14 2014 -0500

    Don't ignore return value of lkfopendata(), most notably of
    seq_read() in folder_read().  Increased LOCK_RETRIES from 5 to 60.

Author: David Levine <levinedl@acm.org>
Date:   Fri Apr 4 20:05:51 2014 -0500

    Update context and sequences before showing messages in mhn(1),
    just like in mhshow(1).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 3 18:12:56 2014 -0400

    Moving closer to fixing mhshow completely.  Includes fix from David Levine
    for a slight bug in charset conversion.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 25 22:41:13 2014 -0400

    Start of changes for mhshow; compiles, but does nothing (yet).

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 23 08:43:56 2014 -0500

    mhn.defaults.sh really doesn't need to look in /usr/demo/SOUND
    for helper programs any more.  If the user has it in their PATH,
    it will anyway.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 23 08:30:37 2014 -0500

    Added mhshow-show-application/pdf detection to mhn.defaults.sh.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 23 08:00:12 2014 -0500

    Note that order is preserved for messages that have the same date,
    when sorting on dates.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 21 18:53:26 2014 -0400

    Move pidcheck() into mhshowsbr.c (the only consumer of it) and make
    it static.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 21 14:22:58 2014 -0400

    Remove support for -pause/-nopause switches to mhshow(1).  This and
    commit 4c436246f048635446353dadaa68174445c58160 are based on work
    originally done by Markus Schnalke.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 21 12:56:37 2014 -0400

    Remove support for parallel content display.  This means we can finally drive
    a stake in the heart of the horrible xpid global!

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 20 09:40:01 2014 -0500

    Fixed quoting of charset value in mhn.defaults.sh.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 16 15:03:37 2014 -0500

    Renamed mkstemp(1) man page to mh-mkstemp(1), so it doesn't obscure
    any existing mkstemp(3) page.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Mar 16 12:19:54 2014 -0700

    Update the manpage style guide to be consistent about setting program names in
    boldface always.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 16 10:40:27 2014 -0500

    Fixed formatting of program name in mh-mime(7) man page.  Removed
    CONTEXT section from mkstemp(1) man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 16 10:15:41 2014 -0500

    Moved "mhparam iconv" description to mhparam(1) man page and put
    references to it in mh-mime(7), mhfixmsg(1), and mhshow(1) man pages.
    Updated mhparam man page description of other configuration
    parameters.  Added "Message Rewrite" section to mh-mime page.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 14 20:25:06 2014 -0500

    Fixed some of the issues noted by clang --analyze with
    mhfixmsg.c and mkstemp.c.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 14 20:22:07 2014 -0500

    Fixed fixup of sbr/dtimep.c with flex 2.5.36.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 14 19:56:38 2014 -0500

    Modified probe to output sbr/dtimep.c.  The flex version is 2.5.36.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 14 19:16:23 2014 -0500

    Added probe to configure.ac to output flex version (for fed18arm7 build).

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 14 19:04:45 2014 -0500

    Compare character with EOF using signed comparison because
    EOF can be (and is likely) negative.  This showed up on
    arm7, which apparently uses unsigned char for char.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 14 15:22:12 2014 -0400

    Sigh.  Make localmbox work even if we're not using -debug.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 14 15:21:49 2014 -0400

    Whoops, missed a warning groff found.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 14 14:59:39 2014 -0400

    Fix some typos and make some style changes suggested by Ralph Corderoy

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 14 12:31:23 2014 -0400

    Add support for printing iconv and localmbox.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 13 15:53:05 2014 -0400

    Update for mh-mime.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 13 15:51:32 2014 -0400

    Create new mh-mime man page, with overview of how MIME handling works in nmh.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 13 15:11:22 2014 -0400

    Update and fix some formatting issues.

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 10 20:26:51 2014 -0500

    Fixed test-mkstemp to work on platforms that don't have mkstemps(3),
    such as CentOS 5.

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 10 20:24:46 2014 -0500

    Check for text/html display programs in this order:  w3m, lynx, elinks.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 7 12:04:46 2014 -0500

    Fix minor typo.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Mar 7 09:05:17 2014 -0800

    Import Dave Crocker's brief history of email development at Rand.
    (Added with his permission.)

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 6 20:32:14 2014 -0600

    Fixed test/getcwidth.c to build without MULTIBYTE_SUPPORT.
    Found by cppcheck.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 6 20:15:45 2014 -0600

    Fixed a few very minor issues that cppcheck noticed.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 6 19:46:30 2014 -0600

    Removed declaration of unused sm_reply from post.c.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 6 19:45:37 2014 -0600

    Made a couple of globals static in smtp.c.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 6 19:43:47 2014 -0600

    Changed unused symbol that gen-ctype-checked creates with NDEBUG
    from a data object to a function, to remove a global from libmh.a.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 6 19:39:10 2014 -0600

    Added remedy for compile warnings when built with --with-tls on
    Mac OS 10.7 or later.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 6 19:35:22 2014 -0600

    Remove backup file at end of test-ext-params, and a temp file.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 6 15:45:19 2014 -0500

    Put in check so "attach" is rejected when the draft already has MIME headers.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 6 15:31:01 2014 -0500

    Update test to match reality

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 6 15:25:55 2014 -0500

    Update documentation to match reality.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 6 14:59:35 2014 -0500

    Prevent crash if editfile() is called and both "*ed" and editsave
    are NULL.  This can happen if you call "mime" and then run "edit" without
    any arguments, if you're running whatnow standalone.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 6 14:34:34 2014 -0500

    Remove unneeded assignment.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 23:31:31 2014 -0500

    Fix up some warnings and problems when iconv doesn't exist.

Merge: 7b9cb49 5c3a50d
Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 23:17:17 2014 -0500

    Merge branch 'extended-params'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 21:27:25 2014 -0500

    Update pending-release-notes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 21:26:02 2014 -0500

    More tests for extended-parameter parsing.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 18:22:56 2014 -0500

    Add extra argument to add_param() so it can use the passed-in pointers
    directly without making copies first.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 15:43:33 2014 -0500

    A more complicated RFC 2231 parsing example.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 15:42:59 2014 -0500

    Whoops, a little TOO hasty on the last bugfix; put back an assignment.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 15:11:54 2014 -0500

    Switch over to using the token parser instead of isspace(), and
    make sure we have our pointer correct when doing an encoded parameter
    that isn't the first one.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 14:36:43 2014 -0500

    Move language tag parser into the block so it only gets
    invoked on index 0.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 14:04:47 2014 -0500

    Change disposition output slightly.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 13:48:45 2014 -0500

    Update information to mention RFC 2231.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 13:40:13 2014 -0500

    Add message/external-body test.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 5 13:03:30 2014 -0500

    Update mhlist and other relevant utilities to output disposition information
    with a new -disposition switch.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 4 23:44:09 2014 -0500

    Some tests for RFC 2231 decoding; seems like it works, but need to stress
    it some more.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 4 23:43:26 2014 -0500

    Fix up some error reporting, and reassemble partial parameters correctly.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 4 22:49:13 2014 -0500

    Fix up a few pointer mishaps; this should now get everything right!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 4 22:37:10 2014 -0500

    Whoops, forgot to set the name element of the partial parameter structure.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 4 19:53:23 2014 -0500

    A few minor fixups; the parser now passes the test suite!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 4 13:45:19 2014 -0500

    Fixes for the MIME parser; kinda works for regular parameters, but
    still needs some fixes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 3 21:52:35 2014 -0500

    More work on extended parameter parser.  Does not compile yet.

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 3 07:14:09 2014 -0800

    In test/common.sh.in trap, cd to $MH_TEST_DIR before trying
    to remove its Mail subdirectory.  rm on Solaris won't remove
    it if it's in the path of the current working directory.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 3 00:43:46 2014 -0500

    Make parse_header_attrs() a private function (there are no longer any
    public consumers of it).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 3 00:42:56 2014 -0500

    Convert unqp() to decode_qp(), and make it a public function.  Also,
    handle the case where decode_qp() is passed a character outside of
    the normal ASCII range.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 2 22:38:57 2014 -0600

    Added mkstemp(1), wrapper around mkstemp(3)/mkstemps(3), to
    auxexec, for use by mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 2 20:29:20 2014 -0600

    Added convenience function die() to mhmail.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Mar 2 21:04:55 2014 -0500

    Switch over get_ctinfo() to determine the filename based on the filename if
    one was not provided.  Remove some unneeded functions as part of this work.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 2 12:00:13 2014 -0600

    Added recommendation to use nmh-storage profile setting or
    non-default -clobber with mhstore -always.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 2 10:09:18 2014 -0600

    Added check of -noverbose to test-mhstore.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 2 09:30:01 2014 -0600

    Added commented explaining use of ci_attrs[0] in
    build_multipart_alt() of mhfixmsg.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Mar 2 00:07:10 2014 -0500

    Whoops, forgot to TEST THIS OUT first.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Mar 2 00:06:13 2014 -0500

    For some reason viamail listed mhoutsbr as a dependency.  It turned out it
    wasn't required, so we removed it so we don't have to pull in a complete MIME
    parser into viamail.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 1 23:51:19 2014 -0500

    More cleaned and conversion to the new parameter API.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 1 23:24:47 2014 -0500

    Add a new get_param_value(); redo iconv() parameter conversion code.
    Start having code use get_param() and get_param_value() rather than
    walking the whole parameter linked list.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 1 13:55:24 2014 -0600

    Removed recommendation from mhstore man page that users not put
    -auto in their profile.  Added recommendation that users not use
    the %a escape string.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 1 13:30:50 2014 -0600

    Added description of switches.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 1 12:00:18 2014 -0600

    mhstore(1) now obeys its -noverbose switch.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 1 08:32:20 2014 -0600

    Fix to commit a2806483a53fcdb62ca8e2bec4f4e023355f4470
    to properly handle quoting when text follows quoted
    text in a mhshow display string.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 1 08:30:27 2014 -0600

    Moved discussion when no messages are matched from BUGS section
    to new subsection under DESCRIPTION, per Ralph's suggestion.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 28 22:59:09 2014 -0600

    Removed a couple of unnecessary vector typedefs from h/mh.h.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 28 22:05:37 2014 -0600

    Updated MACHINES and SPECS/nmh.spec to reflect packages
    available for CentOS Linux.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 27 21:43:18 2014 -0500

    Fix iconv return value test warning.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 27 21:38:09 2014 -0500

    Support complete encoding for encoding Content-Type parameters.  Start
    work on retrieving parameters and converting them to the correct charset.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 27 11:50:33 2014 -0500

    Use RFC 2047 encoding for Content-Description, and make sure to encode
    MIME parameters correctly when building the Content-Disposition header.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 26 22:58:26 2014 -0500

    Re-do length calculation for parameter output, and adapt test for new code.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 26 21:48:29 2014 -0600

    Fixed quoting of filename, expanded C-T parameter values, etc.,
    in mhshow.  Removed the workarounds that had built up when it
    was broken.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 26 21:13:30 2014 -0500

    Closer, but not quite right yet.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 26 19:58:43 2014 -0600

    Updated mhparam, man pages, and test-mhparam to reflect split
    of locking methods into datalocking and spoollocking.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 25 21:31:18 2014 -0500

    Add test for long + encoded line; does not pass right now.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 25 21:30:52 2014 -0500

    Make sure we include space in the list of characters we need to encode in
    a parameter line.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 25 21:28:45 2014 -0500

    Remove unused variable, and make sure we free c_dispo_type.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 25 21:15:51 2014 -0500

    A new test for longer lines.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 25 21:14:51 2014 -0500

    Calculate "characters to use in for current line" based on starting a new
    line, rather than the number of characters in the previous line.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 25 15:23:56 2014 -0500

    First basic test of extended parameter output: working!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 24 21:34:12 2014 -0500

    Beginnings of test suite for RFC 2231 support; does not work yet.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 24 20:18:17 2014 -0600

    Fixed m_getfld() to not return EOF indicator, so that files need
    not end with a newline.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 24 13:39:19 2014 -0500

    Make sure we don't modify the original text when processing the disposition
    header.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 23 18:52:52 2014 -0600

    Added mh-folders to nmh(7) man page.  Split out Formats section of
    nmh man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 23 21:29:52 2014 -0500

    Fix up error reporting for the hook code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 22 00:07:55 2014 -0500

    It compiles now!  And actually sort of works, but still a LOT more
    that needs to be done before it is complete.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 21 14:49:07 2014 -0500

    Getting closer to getting something working.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 20 14:55:01 2014 -0500

    More work on handling encoded params; still does not compile.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 19 22:01:45 2014 -0600

    Cast argument to isspace() to unsigned char instead of int.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 19 21:55:19 2014 -0600

    Fix to commit ed3214f1518b36c8b96a1a17be4af0a708ea25e3
    to not try to quote filenames in multipart parts.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 19 21:36:16 2014 -0600

    Generalized %{charset} display string escape to any Content-Type
    parameter.  Also, always quote the expanded value, whether or not
    the escape was quoted in the profile.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 19 20:09:28 2014 -0600

    Added reason to mhfixmsg's printout when it fails to decode binary
    content.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 19 18:57:29 2014 -0600

    Refined commit ed3214f1518b36c8b96a1a17be4af0a708ea25e3 to only
    accept single quotes wrapping %f and %F display escapes.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 18 21:26:52 2014 -0600

    Migrated show_content_aux2() to argsplit().

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 18 21:16:06 2014 -0600

    Removed redundant quoting of %f and %F in display strings.  Now,
    the code checks to see if those escapes are quoted before quoting
    them.  Removed quoting of them in mhn.defaults.sh because it isn't
    (and wasn't) necessary.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 18 19:16:39 2014 -0600

    Removed leading "exec " inserted in show_content_aux2(), which
    allows use of shell expansion on Content-Type parameters in
    mhshow display straings.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 18 12:38:06 2014 -0500

    Fix for bug #41618: Supply charset to w3m when converting text/html parts.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 18 07:54:37 2014 -0600

    Silenced warnings when built without iconv.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 16 15:25:34 2014 -0600

    Added MH libdir to PATH in test-textcharset because it uses ap.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 16 14:12:15 2014 -0600

    Removed remaining TMP relics missed with commit
    d046c8f0992fddcd69f2172a6607a14dec3b1251.  Also, have mhmail clean
    up a .orig tmp file, now that it always uses mhbuild.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 16 13:12:39 2014 -0600

    Added support for %{charset} display string escape to mhshow(1).

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 16 11:30:41 2014 -0600

    Factored out duplicate code into parse_display_string() function.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 16 10:26:34 2014 -0600

    Instead of printing PostScript attachments, by default, from mhshow,
    try to find a suitable viewer.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 16 10:06:47 2014 -0600

    Added associations to mhn.defaults.sh from
    http://technet.microsoft.com/en-us/library/cc179224.aspx.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 12 15:41:39 2014 -0500

    More extended parameter work.  Still non-functional.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 12 15:41:04 2014 -0500

    Move contains8bit() to a common file, and make it a bit more general.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 11 23:17:00 2014 -0500

    Beginnings of RFC 2231 support.  Does not compile (yet).

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 10 23:17:28 2014 -0600

    Removed the -[no]textcharset switches that were added to mhshow(1)
    in commit 721b0395fb2fceac4e66fed1009ed2f17fd5351f.  They weren't
    needed.  So the net effect is that, if built with iconv, mhshow
    will attempt to convert text/plain content to match the user's locale.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 9 12:52:28 2014 -0600

    Use test_skip in test-textcharset if not built with iconv.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 9 10:32:46 2014 -0600

    Need to set locale to something other than UTF-8 on Cygwin for
    the first couple of checks in test-textcharset.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 9 09:59:23 2014 -0600

    Removed potential buffer overflow from ruserpass().  It had been
    there a long time.  Also, move the tokval buffer from global data
    to the stack.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 9 09:58:00 2014 -0600

    Added -[no]textcharset switches to mhshow(1).  These only apply if
    nmh was configured with iconv(3) support.  If -textcharset is not
    used, mhshow will convert, if necessary, the charset of text/plain
    content to match the user's locale setting.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 9 09:05:14 2014 -0600

    Use $MH shortcut for the profile in a few of the tests.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 9 08:56:42 2014 -0600

    In test-mhfixmsg, look at configuration to see if iconv is enabled
    rather than detecting it from test output.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 8 22:23:17 2014 -0600

    Remove mhbuild backup files at end of a couple of tests, if successful.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 8 21:38:18 2014 -0600

    Changed "codeset" to "charset" for (and in) mhfixmsg.  Also
    cleaned up some comments in mhshowsbr.c.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 8 11:11:25 2014 -0600

    Moved upcase(), update_attr(), content_charset(), and
    convert_charset() out of mhfixmsg.c so that other programs can
    use them.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 7 15:53:35 2014 -0500

    Start of changes to support extended parameter parsing and decoding.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 5 13:05:21 2014 -0500

    Fix uninitialized variable warning

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 5 11:02:01 2014 -0500

    Adjust the quoted-printable output routine to continue when the end of
    the buffer is reached, rather than adding a soft line break.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 4 15:09:12 2014 -0500

    Add test for -maxunencoded.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 4 14:54:16 2014 -0500

    A few more C-T-E tests.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 4 13:36:29 2014 -0500

    Still more CTE tests to cover (hopefully) all of tbe base64 cases.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 4 13:34:22 2014 -0500

    More CTE tests.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 4 12:38:34 2014 -0500

    More fixes (and tests) for the base64 encoder.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 4 11:49:49 2014 -0500

    Add a new base64 CTE test.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 4 11:19:24 2014 -0500

    Fix encoder so at least one case of LF -> CR LF conversion happens correctly.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 3 22:48:38 2014 -0600

    Reordered a bit of code in signal handler.  Noted in comment that
    NetBSD doesn't have mkstemps(3).

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 3 21:42:44 2014 -0600

    Use rename(2), not link(2), in m_mktemps() if mkstemps() is not
    available.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 3 21:46:33 2014 -0500

    Add a new (but incomplete) test for mhbuild's new functionality.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 3 21:46:08 2014 -0500

    Fix up mhbuild so the character set is always output when needed, even
    when the CTE is specified.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 3 21:45:41 2014 -0500

    Document changes to mhbuild.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 3 20:14:55 2014 -0500

    Support for selectable Content-Transfer-Encoding.
    Now default to 8bit for CTE for text types.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 2 22:34:14 2014 -0600

    netbsd uses flock by default for mail spool locking, as reported
    by Robert Elz.  Use *netbsd* to also include knetbsd, though I
    don't know for sure that it uses flock.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 2 22:16:25 2014 -0600

    Restored setuid/setgid to slocal:  it needs them when run as root,
    as a mail delivery agent.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 2 16:45:23 2014 -0600

    Removed some unused code that forked /bin/mkdir to make a new
    directory if an the effective and real uids differed.  There are no
    setuid executables in nmh.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 2 09:58:45 2014 -0600

    Removed all unnecessary setuid/setgid calls.  Using setuid as an
    example and not showing the setgid analogues:
    
        1) setuid(getuid());
        This dropped privileges before an exec and is normally a
        good thing.  Except here, the return value isn't checked.
        And, we don't have any setuid programs in nmh now, so it was
        unnecessary.
    
        2) if (geteuid() == 0) setuid(pw->pw_uid);
        This would have been a security hole if the executable was
        setuid root because the user specifies the source of the pw
        data.  This was in slocal(1), which is not setuid, so this
        was certainly not needed.
    
        3) setuid(geteuid());
        This was in post(8) for when it called the sendmail
        executable directly (-mts sendmail or -mts sendmail/pipe.
        It's not necessary with modern sendmail or replacements.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 2 08:46:25 2014 -0600

    Added m_mktemps(), which creates a temporary file with a specified
    suffix.  It uses mkstemps(3) where available, which should be most
    modern platforms.  If not available, it tries link(2), and if that
    fails, rename(2).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 1 16:13:00 2014 -0500

    Change mhstore test slightly to test canonical line ending handling for
    text MIME parts that are encoded with base64.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 1 15:57:49 2014 -0500

    Document changes to base64 encoder/decoder.

Merge: 3235599 d722ee2
Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 1 12:48:20 2014 -0500

    Merge branch 'base64-text-fixup'

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 1 11:32:53 2014 -0600

    Removed set +e where not needed in test-mhfixmsg.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 1 11:24:16 2014 -0600

    Fixed test-mhfixmsg check attempted -decode of binary text to
    work with the fixed base64 decoder.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 1 10:11:08 2014 -0600

    Added note that suffixes were removed from filenames of temporary files.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 1 10:09:13 2014 -0600

    Look for w3m if lynx isn't available for mhshow-show-text.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 1 10:11:08 2014 -0600

    Added note that suffixes were removed from filenames of temporary files.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 1 10:09:13 2014 -0600

    Look for w3m if lynx isn't available for mhshow-show-text.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 31 15:53:04 2014 -0500

    Fix base64 to handle text parts properly; currently this breaks mhfixmsg,
    and I'm not sure why yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 31 15:00:57 2014 -0500

    Add -width when appropriate for this test.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 29 15:56:01 2014 -0500

    Beginnings of selectable CTE; allow specification in mhbuild directives,
    but it doesn't do anything quite yet.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 28 21:36:05 2014 -0600

    Unset LANG, LC_ALL, and LC_TYPE in common.sh so that the tests
    don't accidentally rely on any of the user's settings.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 27 18:56:20 2014 -0600

    mhl() needs to set invo_name, too.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 27 12:53:03 2014 -0600

    WhatNow needs to set invo_name so that switches are interpreted properly.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 26 11:57:29 2014 -0600

    No longer look at TMP environment variable for temporary file storage.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 26 11:26:11 2014 -0600

    Merge branch 'tmpfiles'

Merge: 1468359 dd259aa
Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 26 11:23:53 2014 -0600

    Merge branch 'tmpfiles'

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 25 10:50:29 2014 -0600

    Added unregister_for_removal(0) calls to the couple of children
    that don't exec() or _exit() after fork().

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 25 10:04:19 2014 -0600

    Replaced nearly all unlink(3) calls with m_unlink().

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 25 09:26:13 2014 -0600

    Restored the unlinks of temporary files immediately after their
    creation in rcvtty.c, now that we have m_unlink().

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 25 09:15:05 2014 -0600

    Replaced boilerplate at beginning of each nmh program with new
    nmh_init() function.  It sets up an atexit() function and signal
    handlers so that all temporary files are removed when the program
    terminates, however that happens.  It relies on a call in m_mktemp()
    to register each temporary file for removal.  See new "nmh temporary
    files" section in README.developers and comments in m_mktemp.c.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 24 21:10:03 2014 -0600

    Removed 3 renames of temporary files in mhparse.c.  They added
    unnecessary filename extensions to the temp files.  They weren't good
    from a security standpoint and added a failure mode.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 24 20:29:38 2014 -0600

    Replaced use of mkstemp() with m_mktemp() in lock_file.c.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 24 13:17:56 2014 -0500

    Move uip/attach.c to sbr/mime_type.c; it was used by enough programs
    that it deserved to be in libmh.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 24 12:38:03 2014 -0500

    In my over-eager trimming I didn't realize the fallback code that
    used the mhshow-suffix configuration information to determine the
    MIME type was removed; put that back into mime_type().

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 23 22:16:34 2014 -0600

    Replaced use of mkstemp() with m_mktemp2() in header_fd() of
    rcvtty.c.  It never would have worked, anyway, because it had 5
    instead of 6 X's in the template.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 21:48:24 2014 -0500

    Switch from volatile char * to the more correct char *volatile.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 23 19:58:41 2014 -0600

    Separate export from assignment in test-dist and test-attach.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 14:55:21 2014 -0500

    Whoops, forgot to initialize the linked list next pointer to NULL.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 14:55:06 2014 -0500

    Make sure we include tiny.jpg we need for the test suite.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 14:40:44 2014 -0500

    Try to suppress warnings from changes (but why is this thing complaining
    about drft being clobbered now??)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 14:24:35 2014 -0500

    Hm, maybe I can't put environment variable assignments in front of
    functions?

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 14:01:53 2014 -0500

    Whoops, forgot a newline.

Merge: 05b74a0 18a3694
Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 13:35:31 2014 -0500

    Merge branch 'mhbuild-always'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 13:35:03 2014 -0500

    Document changes to mhbuild and send.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 00:34:18 2014 -0500

    Garbage collect unused code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 00:32:18 2014 -0500

    Remove automimeproc functionality; it's redundant now.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 00:31:55 2014 -0500

    Update the pending-release-notes for changes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 23 00:07:54 2014 -0500

    Flesh out test-attach, and set it to run as part of the test suite.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 22 18:59:07 2014 -0500

    Fix mhmail so it works with the new world order.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 22 15:22:07 2014 -0500

    Convert whatnow over to using the new Attach header.
    Mark the old -attach switches as deprecated (and make them not show
    up in help).  Still more documentation cleanup to do.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 22 12:06:49 2014 -0500

    Fixed this to use Attach instead of Nmh-Attachment.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 21 22:09:49 2014 -0600

    Added svector_find() function.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 21 22:35:35 2014 -0500

    Make viamail read the user's profile; this is required because sendsbr()
    wants to call mhbuild, which can be overridden via the user's profile
    (which is required for the test suite to work).

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 21 20:55:57 2014 -0600

    Always check that mktemp()/mktemp2() succeeds before trying to
    use result.  And if it fails, have the error message report
    the directory where the failed temporary file creation occurred.
    And, removed all chmod()'s of temporary files created by mktemp()/
    mktemp2() because they set the umask to 077 before calling mkstemp(3).

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 21 20:51:00 2014 -0600

    Expose get_temp_dir().

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 21 20:50:11 2014 -0600

    Enable asserts when debug is enabled, in build_nmh.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 21 20:12:29 2014 -0500

    Fix a bunch of tests for the mhbuild changes; still more to do.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 20 21:08:47 2014 -0600

    Replaced use of m_mktemp() with m_mktemp2() so that tmp files created
    by attach, burst, mhbuild, and post will be in the directory specified
    by the first non-null of {MHTMPDIR, TMPDIR, TMP, MH Path directory}.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 20 21:07:08 2014 -0600

    Removed remaining occurrences of char *tmp from uip/mh* programs.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 20 20:53:10 2014 -0600

    Expanded mhpath(1) man page discussion of its handling of out-of-range
    message numbers, and fixed a couple of formatting glitches.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 20 10:52:07 2014 -0600

    Use LC_ALL instead of LC_CTYPE in test-pick because LC_ALL has
    precendence.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 20 10:31:16 2014 -0600

    Fixed three LC_ALL settings:
    1) Replaced en_US.ISO8859-1 with C because that's sufficient to show
       decoding with an invalid multibyte sequence.
    2) Removed redundant LC_ALL=en_US.UTF-8; that is set for the entire test.
    3) Removed the last en_US.ISO8859-1 because it hid what the test was
       trying to show.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 20 01:27:15 2014 -0500

    Remove autoconf checks for nl_langinfo() and langinfo.h

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 20 01:15:55 2014 -0500

    Completely deprecate support for MM_CHARSET.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 19 23:21:51 2014 -0600

    Removed "tmp" from the uip/mh* programs, so that they no longer
    use the nmh-storage profile component for their tmp files.  Or
    their invoname, but that will be taken care of later.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 19 23:21:32 2014 -0500

    Remove the --disable-locale configure option and make locale support
    unconditional.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 19 13:47:07 2014 -0500

    Document the -dist flag.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 19 11:59:25 2014 -0500

    Change error message so "Unknown error 0" doesn't get printed if there
    is an error parsing an address.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 19 11:52:47 2014 -0500

    Add a test for dist to make sure it works with headers that need RFC-2047
    encoding.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 19 10:48:14 2014 -0600

    Updated MACHINES to show package requirements on Linux and Cygwin.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 19 01:11:59 2014 -0500

    Add support for not outputting any MIME headers when using dist.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 19 00:50:49 2014 -0500

    Allow mhbuild to work when the message body is empty.  You know, that
    was actually a giant pain!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 18 23:34:41 2014 -0500

    Removed unused argument "file" to user_content().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 18 01:17:12 2014 -0500

    Beginning of work to run mhbuild always.  A bit more complicated than I
    originally expected.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 18 00:38:39 2014 -0500

    Explictly return the exit code, so we can portably guarantee that
    pidstatus() will return 0 on a successful command execution.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 17 18:42:52 2014 -0600

    Removed -a option from whatnow attach, in anticipation of
    removal of send -attachformat.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 17 15:45:31 2014 -0500

    Add support for -auto flag to mhbuild.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 17 14:20:12 2014 -0500

    Remove WHATNOW #ifdefs; that code was obsolete a long time ago.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 16 21:48:01 2014 -0600

    Moved readline check to after termcap/curses check in configure.ac.
    This way, $TERMLIB can be included in the readline check.  That's
    neeed on CentOS 5.9.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 16 19:55:58 2014 -0600

    Moved readconfig() of mhn.defaults into construct_build_directive().
    This way, platforms that don't define MIMETYPEPROC will display
    the proper directive with attach -v.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 14 20:09:40 2014 -0600

    Added check to get_file_info() in attach.c for failed fgets() call.
    It can happen on Cygwin for mysterious reasons,
    http://cygwin.com/faq/faq.html#faq.using.bloda.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 14 19:39:42 2014 -0600

    Removed the tests of attach -v -a from test-attach-detach, and
    added -prompt '' to try to get the test to pass on Mac OS X.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 14 07:41:28 2014 -0600

    Modified last check added to test-scan-multibyte so that it
    also works without iconv support.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 13 20:29:19 2014 -0600

    Skip the last check that I added to test-scan-multibyte if we don't
    have iconv support because it requires converting from ISO-8859-1 to
    UTF-8.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 13 20:08:55 2014 -0600

    In cpstripped(), check for negative return value from wcwidth().

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 13 14:33:44 2014 -0800

    Better fix for test-attach-detach on platforms without readline.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 13 13:35:41 2014 -0800

    Fixed build on Solaris by only checking for -Wno-unused-result with gcc.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 12 12:18:47 2014 -0600

    Hacked test-attach-detach to pass on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 12 11:45:16 2014 -0600

    Final fix to test-attach-detach:  on some platforms, there's no
    charset for a text/plain file.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 12 11:32:11 2014 -0600

    Really fix mode of file that's used in test-attach-detach.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 12 11:26:07 2014 -0600

    One final fix to test-attach-detach.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 12 11:22:57 2014 -0600

    Fixed test-attach-detach to work with any umask, and without readline.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 12 10:18:20 2014 -0600

    Added -v and -a switches to whatnow attach so the user can see
    the mhbuild directive that send(1) will use.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 16:30:42 2014 -0600

    Refined the POSTLINK used on OpenBSD so that it leaves the warnings,
    but capitalizes the "w" so that they don't color the buildbot waterfall.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 16:00:14 2014 -0600

    Refined the autoconf test for -Wno-unused-result so that
    it's only used where we need it (currently Ubuntu gcc 4.8.1
    with -O2).

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 11:22:50 2014 -0600

    Calculate port numbers in test suite based on uid so that different
    users can run the test suite on a host simultaneously.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 11:02:19 2014 -0600

    Updated Cygwin and Linux build notes.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 11:01:21 2014 -0600

    Added more .exe files to .gitignore.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 10:15:27 2014 -0600

    Work around OpenBSD 5.4 file(1), which reports the --mime-encoding
    of text files as "binary".

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 09:22:36 2014 -0600

    Reworked attach to add charset to Content-Type string for
    text content.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 08:09:20 2014 -0600

    Changed how build_nmh deals with older mhparam that doesn't
    report SASL/TLS.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 11 08:00:55 2014 -0600

    Reorganized autoconf test for -Qunused-warnings so that it
    outputs something when configuring on any platform.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 11 01:41:44 2014 -0500

    Change test-mhmail so it can handle a MIMETYPEPROC that doesn't output
    the character set.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 11 01:11:45 2014 -0500

    Switch over to using --mime-type, since --mime seems to include a
    charset for non-text MIME types.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 10 23:41:04 2014 -0600

    Fixed POSTLINK (on OpenBSD) now that it doesn't use -Qunused-arguments.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 11 00:32:54 2014 -0500

    More tests, but not quite there yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 10 13:31:05 2014 -0500

    Don't error out if the message body is empty.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 10 23:25:19 2014 -0600

    Only add -Qunused-arguments to LDFLAGS if compiler is clang.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 10 20:49:24 2014 -0800

    Reworked LFLAGS hack for flex 2.5.35 and 2.5.36 to work on
    Ubuntu.  And use sed instead of ed.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 10 19:36:34 2014 -0600

    No longer add -g or -s to LDFLAGS.  autoconf handles -g.  And "make
    install-strip" is the approved way to install stripped executables.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 10 19:03:56 2014 -0600

    Added -Wno-unused-result to silence warnings on Ubuntu.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 10 00:45:38 2014 -0500

    Make sure we use the 'short' filename and add newlines where appropriate.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 9 23:17:25 2014 -0500

    A bit closer, but don't run the test just yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 9 16:03:21 2014 -0500

    Preliminary Attach: header support.  Untested just yet.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 8 20:54:50 2014 -0600

    OpenBSD 5 needs an other-libraries (fourth argument) to the
    AC_CHECK_LIB for SSL_library_init, because it doesn't automatically
    append -lcrypto when linking with -lssl.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 8 20:14:57 2014 -0600

    Hard-code the config/version.c target, instead of using $@, so its
    rule works for the distcheck target with Solaris (System V) make.
    distcheck uses VPATH, causes that make to prepend the VPATH to $@.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 8 19:02:58 2014 -0600

    Replace use of awk with sed in test-anno because it failed
    on Solaris (gawk).

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 8 18:23:10 2014 -0600

    Detect whether or not to use -n with tail in build_nmh.
    Synched that to uip/mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 7 22:51:41 2014 -0600

    Fixed typo in last commit of test-curses.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 7 22:49:51 2014 -0600

    Added -Txterm-color to tput invocations that didn't have it.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 7 22:27:55 2014 -0600

    In test-curses, use termcap codes if terminfo capabilities
    are not supported, such as on FreeBSD 9.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 7 20:18:52 2014 -0600

    Added sbr/dtimep.c to CLEANFILES so that make distcheck passes on
    FreeBSD 9.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 7 19:51:58 2014 -0600

    Clarified advisory message it test-mhfixmsg if a text browser
    isn't available.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 7 23:15:39 2014 -0500

    Update this for From, Resent-From, and Envelope-From.  Also document
    Attach even though the code hasn't been written yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 7 11:45:24 2014 -0500

    Prevent message status allocation code from overflowing if we get a
    message number that is too high; simply abort instead.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 6 20:49:18 2014 -0600

    Replaced hidden make_mime_composition_file_entry() used by attach()
    with public construct_build_directive().

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 6 19:14:20 2014 -0600

    Here's a better fix for the whatnow tests:  set and export
    TERM at the beginning of each test so that valgrind can be
    supported.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 6 11:30:42 2014 -0600

    Removed remaining run_prog's from tests that set an
    environment variable.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 6 11:20:47 2014 -0500

    Add a test for the new curses-based format escapes.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 5 14:48:18 2014 -0600

    Fixed description of send -attach switch in whatnow:  its argument
    is the header file name, not a filename.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 5 10:01:48 2014 -0600

    Removed remaining globals in uip/attach.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 5 09:51:53 2014 -0600

    Got rid of a couple of globals used by attach get_line().

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 5 09:39:11 2014 -0600

    Moved the functions that implement whatnow attach from
    uip/sendsbr.c to new uip/attach.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 5 08:28:58 2014 -0600

    In whatnow help, don't show that detached can be abbreviated
    with "de", because that conflicts with "delete".

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 4 20:44:21 2014 -0500

    Whoops, I'm supposed to NUL-terminate the string, not set the actual pointer
    itself!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 4 14:01:58 2014 -0500

    Make sure scan.curses is installed & distributed.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 4 00:59:38 2014 -0500

    Support for sending color escape sequences retrieved from terminfo(5).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 15:55:10 2014 -0500

    Add support for %(hascolor), and a new function for parameterized
    terminfo capabilities.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 14:40:35 2014 -0500

    Document %(nodate), and update things a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 11:43:16 2014 -0500

    Garbage collect some Autoconf cruft that has been around a lot longer
    than necessary.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 11:06:29 2014 -0500

    Also make sure outc() uses TPUTS_PUTC_ARG.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 11:05:18 2014 -0500

    Whoops, I forgot that AC_CACHE_CHECK calls AC_MSG_RESULT.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 10:44:59 2014 -0500

    Create an autoconf test to determine the argument of the tputs() callback.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 09:27:39 2014 -0500

    Remove checks for termcap.h and ncurses/termcap.h, since we're not using
    those header files anymore.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 00:42:05 2014 -0500

    Sigh.  Fix up missing conversion from clear->ti_clear.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 00:30:15 2014 -0500

    I guess we can't include both termcap and terminfo headers on Solaris.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 3 00:15:56 2014 -0500

    include curses.h so this (hopefully) now works on Solaris.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 2 23:59:57 2014 -0500

    Convert all of the terminal functions over to terminfo(5) instead of
    the older termcap.
    
    Move the terminal-specific code from fmt_compile.c to terminal.c, so it
    is all in one place.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 2 15:55:33 2014 -0500

    Garbage collect unused code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 2 15:52:49 2014 -0500

    Remove baudrate-handing code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 2 15:04:17 2014 -0500

    Always emit an STR instruction for terminal escape sequences, otherwise you
    can get unintended results (like printint the previous contents of the str
    register, which is almost certainly what you don't want).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 2 15:00:46 2014 -0500

    Switch from the M-X format for characters with the high bit set to
    \xXX instead when printing format strings and other characters.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 2 14:46:52 2014 -0500

    Fix problem with %(putlit) and %(zputlit) causing a SIGSEGV
    if str is NULL.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 2 13:54:07 2014 -0500

    Drop support for different behavior on hardcopy terminals.  It's 2014,
    I'm assuming this is not a valid concern anymore.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 2 11:38:20 2014 -0500

    Move the termsbr code into the libmh library, where it belongs.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 1 13:43:51 2014 -0600

    Give up on fmt_compile.c for now.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 1 13:21:56 2014 -0600

    That didn't work.  Try including termcap.h first, instead of
    ncurses/termcap.h.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 1 13:18:08 2014 -0600

    Changed several globals to be static, to avoid collision,
    notably with "filter" in libtermcap.so, on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 1 13:16:48 2014 -0600

    Try including termcap.h before curses.h to see if that solves
    the tputs() mismatch on Solaris.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 31 15:29:40 2013 -0500

    It looks like some systems also need curses.h as well as term.h

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 31 15:20:22 2013 -0500

    Add support for outputing a few (limited) terminal attributes in format
    sequences.  Needs documentation and some expansion.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 31 15:19:21 2013 -0500

    Make sure that branching instructions are traced even if we're executing the
    branch (previously, they would only be traced if they did not execute the
    branch).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 31 00:13:21 2013 -0500

    Change fmttest to use litputs() on str and output buffers during tracing.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 29 08:01:28 2013 -0600

    Generalized the valgrind suppression for sendmsg via readLine.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 28 18:24:54 2013 -0600

    Added test/valgrind.supp to EXTRA_DIST in Makefile.am so that
    NMH_VALGRIND=1 works with make distcheck.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 28 18:23:49 2013 -0600

    Removed one run_prog from test-pick because it loses the setting
    of the LC_CTYPE environment variable.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 28 11:55:12 2013 -0600

    Fixed chmod of temp file in prompter.  Noticed by valgrind.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 28 11:54:05 2013 -0600

    Null-terminate buffer in mbx_copy() in dropsbr.c.  Noticed by
    valgrind.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 28 11:51:01 2013 -0600

    Added support for running the test suite with valgrind by setting
    the NMH_VALGRIND environment variable.  To support that, nmh
    programs that are invoked in the test suite should be run via
    (the new function) run_prog or run_test.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 24 09:02:15 2013 -0600

    Have configure print out what it detects for the program to detect
    the MIME type string for a file.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 23 15:32:45 2013 -0600

    Added "true" to end of flex fixups in configure.ac, in case the
    user has hacked flex to not produce the errant code.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 23 15:09:23 2013 -0600

    Removed flex fixup for version 2.5.37, it's not necessary with
    flex 2.5.37 on Fedora 20.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 18:09:55 2013 -0600

    Use --brief option, if supported, with file --mime.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 17:38:59 2013 -0600

    In test-mhmail, insert semicolon in output of "file --mime" if needed.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 16:42:34 2013 -0600

    file --mime on OpenBSD returns strings such as "text/plain
    charset=us-ascii", without an intervening semilcolon.  Insert one if
    there isn't one.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 16:12:02 2013 -0600

    Removed support for file -i, it just spits out "regular file"
    on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 16:11:18 2013 -0600

    Removed temporary printouts.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 15:30:30 2013 -0600

    More debugging statements for OpenBSD.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 15:08:30 2013 -0600

    Added debuging printouts.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 15:05:38 2013 -0600

    Whooops, gcc on OpenBSD noticed a nasty in the last commit.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 14:42:26 2013 -0600

    With whatnow attach, determine the content MIME type that's inserted
    into the Content-Type header using file --mime or file -i, if
    available on the platform at configuration time.  If not, continue to
    use the mhshow-suffix- method.  Added a mimetypeproc component to
    mhparam so that a user can query the configuration.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 14:38:49 2013 -0600

    Updated date on a few man pages.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 10:41:09 2013 -0600

    Removed temporary probes added in commit
    3441b5648a0c21e067c05f428a51bf96352735e7.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 09:02:29 2013 -0600

    Added temporary probes to see what file --mime and file -i do on
    OpenBSD and Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 22 09:01:41 2013 -0600

    Increased size of file command buffer in make_mime_composition_file_entry()
    because it was a bit too small.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 14 10:41:01 2013 -0600

    Cleaned up setting of CFLAGS in configure.ac.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 14 10:29:33 2013 -0600

    Added POSTLINK to remainder of executables in Makefile.am.
    Replaced hard-coded sbr/libmh.a with $(LDADD) in LDADD
    macro for test/getfullname.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 14 09:51:47 2013 -0600

    The buildbot was reporting "warning" on stdin, not stderr.
    Escape "warning" so that it doesn't snag it.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 14 08:51:42 2013 -0600

    The build failed mysteriously on the OpenBSD buildbot host ("Provide
    an AUTOCONF_VERSION environment variable, please").  This was in the
    compile, not autogen, phase.  Committing trivial change to kick off
    another build.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 14 08:37:11 2013 -0600

    That didn't quite work, try reducing size of warning filter
    temporarily.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 14 08:24:14 2013 -0600

    Filter out "often/almost always misused" warnings from OpenBSD linker.
    Added POSTLINK macro to configure/Makefile for this purpose.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 13 19:23:27 2013 -0600

    Added mention of filename completion at whatnow prompt if nmh
    was configured with readline enabled.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 13 19:20:12 2013 -0600

    Moved the set -x after the uname and string test in autogen.sh
    to reduce build log clutter.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 13 19:12:15 2013 -0600

    Generalized -Wel fix in test-manpages of commit
    27659f0aa30c07081f7b8647c51a6ca82837e5d1 to apply on
    any platform.

Author: Pascal Stumpf <Pascal.Stumpf@cubes.de>
Date:   Fri Dec 13 18:57:57 2013 -0600

    rand()/srand() are not cryptographically secure PRNGs.  Some systems
    have the much better suited arc4random() family of functions; there's
    no reason to not use it if it is available.  Make m_rand() just a
    wrapper around arc4random_buf() in that case.  (There's no need to
    ever seed it manually.)
    
    As a bonus, silences some warnings on OpenBSD.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 13 16:48:02 2013 -0600

    groff -man silence the test-manpages warnings.  One more try: -Wel.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 13 16:25:24 2013 -0600

    Try using -man instead of -mandoc in test-manpages on OpenBSD
    to see if it silences the warnings.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 13 15:33:14 2013 -0600

    Disable assertions by default.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Dec 13 15:38:58 2013 -0500

    Minor autoconf style cleanup.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 12 20:15:14 2013 -0600

    Minor changes to configure.ac:
    1) Replaced direct manipulation of NDEBUG with AC_HEADER_ASSERT.
    2) Removed unnecessary level of quoting around LFLAGS assignments.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 12 20:11:42 2013 -0600

    Moved all LDFLAGS manipulations in configure.ac to one place.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 12 18:37:58 2013 -0600

    Tweaked rcvtty.c to squelch warnings on OpenBSD.  Three of the
    four were due to unused artifacts with HAVE_GETUTXENT not defined.
    The fourth was due to control reaching the end of non-void
    function message_id(), which had an _exit() call at the end.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 12 18:29:31 2013 -0600

    Initialize local child_id in main() of whom.c to squelch warning
    from cc on OpenBSD.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 12 18:27:17 2013 -0600

    Squelch warning from cc on OpenBSD that fd argument of usr_pipe() in
    slocal.c might get clobbered by vfork() by copying it to a volatile
    local.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 12 18:23:45 2013 -0600

    Removed --posix from awk invocation in test-anno.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 12 18:08:01 2013 -0600

    It looks like the sed "a" in test-anno didn't emit a trailing
    newline on OpenBSD.  It does on other platforms.  Try using
    awk instead.

Author: Lyndon Nerenberg <lyndon@bbsobsd5.bitsea.ca>
Date:   Thu Dec 12 11:55:58 2013 -0800

    Add buildbot hacks for OpenBSD.
    
    OpenBSD auto{conf,make} want a version specified in the environment
    for each of the tools.  For now, hardwire this into autogen.sh until
    we can figure out a better way of dealing with this.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 11 20:52:49 2013 -0600

    Sun Studio cc -V must output to stderr.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 11 20:28:10 2013 -0600

    Try 9efa994ecac2790dbc56113f78c464eed1371590 again.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 11 19:47:29 2013 -0600

    Undid last commit of temporary printouts because buildbot is down.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 11 17:19:48 2013 -0600

    Temporarily add some printouts to configure.ac to see why -v
    isn't added to Sun Studio cc on Solaris build host.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Dec 11 10:53:28 2013 -0800

    Prefer cc over gcc.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Dec 11 10:42:04 2013 -0800

    One more attempt at getting the buildbot $PATH correct on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 19:17:00 2013 -0600

    OK, this should work to detect Sun Studio cc.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 19:07:25 2013 -0600

    Oops, that didn't work.  Disable -v with SunStudio cc for now.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 19:05:32 2013 -0600

    OK, use SunStudio cc, if present, on Solaris if user didn't set CC.
    And with it, use -v and suppress the statement not reached warning.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 18:45:26 2013 -0600

    Suppress E_STATEMENT_NOT_REACHED warning from SunStudio cc.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 18:35:08 2013 -0600

    Added -errtags=yes to SunStudio cc options.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 18:22:23 2013 -0600

    Removed a bunch of unreachable break statements found by
    SunStudio cc -v.  Also fixed an "end-of-loop code not
    reached" condition in uip/dropsbr.c.  That one is significant
    because it meant that retries were not attempted when attempting
    to open and lock a file.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 16:43:20 2013 -0600

    Need full path to cc on Solaris buildbot host, at this point.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 16:16:59 2013 -0600

    Try -v with SunStudio cc.  Also, try setting CC instead of modifying
    AC_PROC_CC to pick up cc on the buildbot Solaris host.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Dec 10 14:05:08 2013 -0800

    Remove the Solaris cc hack; the buildbot should have the correct
    cc in its $PATH now.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 08:40:59 2013 -0600

    Removed +w from SunStudio cc, it caused compilation failure.
    Maybe it can only be used with CC.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 08:36:15 2013 -0600

    That worked.  Now try +w2 with SunStudio cc.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 08:15:22 2013 -0600

    Of course that didn't work.  Try specifying the SunStudio
    compiler in CC.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 10 07:53:14 2013 -0600

    That didn't work.  Set PATH to pick up SunStudio cc.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 9 23:45:54 2013 -0600

    Use SolarisStudio cc if available.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 9 23:20:27 2013 -0600

    Added temporary probe to find cc on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 9 18:25:03 2013 -0600

    Removed temporary favor of cc over gcc.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 9 18:19:17 2013 -0600

    Temporarily favor cc over gcc to try it out on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 23:17:50 2013 -0600

    Commit 9c663383ab54e0290781ac1c25d790ce03160e08 introduced
    a backward incompatibility to build_nmh.  Refuse to support
    -y if the current nmh installation has an mhparam that doesn't
    support the sasl and tls components.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Dec 8 22:18:46 2013 -0500

    Clean up comments, and update information on file locking.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 19:02:28 2013 -0600

    Removed dependence of build_nmh on ldd by adding sasl and tls
    components to mhparam(1).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Dec 8 18:05:42 2013 -0500

    Fix one of the POP tests to work on wide terminals.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 13:27:33 2013 -0600

    Removed temporary diagnostic to determine gcc version on Solaris
    buildbot host.  It's 4.5.2.  4.6.0 and later return an error
    status with an unrecognized option, which we rely on for the test
    for -Qunused-arguments.  4.5.2 doesn't.  But that option doesn't
    produce any errors, just warnings that don't contain "warning".
    So ignore it.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 13:16:19 2013 -0600

    Added temporary diagnostic to see what version of gcc is
    used on the buildbot Solaris host.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 12:50:39 2013 -0600

    With the fix of 4929cad323afc87404752a1e88664a7f42cbb737,
    prepare_space() no longer needs to insert initial space.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 12:15:18 2013 -0600

    Try this sed command for squeeze_lines().

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 11:19:13 2013 -0600

    Added -eval 'set document.browse.margin_width = 0' to elinks
    command in mhfixmsg-format-text/html in mhn.defaults, to disable
    indentation of converted text.  Thanks to Rickard Carlsson for
    this suggestion.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 10:56:35 2013 -0600

    That didn't work, so try this awk command from Robert Elz.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 8 10:29:00 2013 -0600

    Fixed squeeze_lines() test function to be compatible with POSIX awk.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 7 20:27:37 2013 -0600

    Fixed test-mhfixmsg to work with elinks, which inserted leading
    space on a line.  Thanks to Valdis for reporting that and to
    Ralph for the awk and sed magic to emulate diff -w (and cat -s).

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 7 10:44:31 2013 -0600

    Added notes to README.developers about write access to
    the git repo and git rebase.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 7 10:39:16 2013 -0600

    Replaced hard-coded use of "," with `mhparam sbackup` in
    test-header-encode.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 7 09:34:05 2013 -0600

    Disable clang complaint about unused -ansi when linking by
    adding -Qunused-arguments to LDFLAGS, if supported.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 6 18:56:11 2013 -0600

    Removed bash-isms from inc/test-deb359167.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 6 18:43:20 2013 -0600

    Skip inc/test-deb359167 on FreeBSD >= 10 because its valgrind
    throws a strange error.  Code provided by Lyndon.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Dec 6 14:52:03 2013 -0800

    test/common.sh.in: use awk to pick off first output field.
    
    md5 and md5sum are inconsistent in their use of SP vs HT as a field separator.
    cut(1) can only handle a single field delimiter character; awk is more forgiving.

Merge: 2734ae8 7d7ed69
Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 5 22:49:54 2013 -0600

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 5 22:49:49 2013 -0600

    Renamed test/getfqdn to test/getcanon.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 5 23:40:44 2013 -0500

    I give up for now; revert these debugging commits.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 5 23:28:44 2013 -0500

    One final check to make sure the binary isn't stripped

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 5 23:15:57 2013 -0500

    Sigh. Make sure the binaries aren't stripped as well.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 5 22:56:57 2013 -0500

    Switch to default of -g so hopefully we can get something useful from the
    FreeBSD buildbot valgrind output.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 5 22:48:04 2013 -0500

    Sigh, I always forget this is errno.h, not sys/errno.h.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 5 21:59:22 2013 -0500

    Have getfqdn fall back to printing out the given hostname if the DNS lookup
    fails, to replicate the behavior of LocalName().

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 5 18:38:16 2013 -0600

    That didn't work, either.  Restoring configure.ac.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 5 18:35:00 2013 -0600

    That didn't work, try adding -pedantic-errors.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 5 18:10:01 2013 -0600

    The linker on FreeBSD 10 doesn't like -ansi.  So added a
    configure check to not put -ansi in CFLAGS if the linker
    doesn't like it.  Though may need to add -pedantic-errors.
    There doesn't seem to be an easy way to get automake to
    not put CFLAGS in the link command.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 5 17:48:08 2013 -0600

    Clean up mhbuild backup files left by test-header-encode.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 5 08:02:27 2013 -0600

    Better fix than commit 605d80e7cf0d02d4bab9387f03b4e1d43177e33e
    for test-mhfixmsg:  always overwrite HOME environment variable
    if mhfixmsg uses w3m.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 5 07:04:51 2013 -0600

    Fix to commit 7e40862e6a4da7810a46aa1e28b05e527fdc208a:
    only one of the variables should have ICONV_CONST.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 22:25:14 2013 -0600

    In test-mhfixmsg, make sure that $HOME is writeable, in case
    nmh has been configured to use w3m.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 21:48:04 2013 -0600

    Really fixed mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 21:18:38 2013 -0600

    Removed temporary hack.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 21:15:31 2013 -0600

    Removed temporary hack to enable debug from configure.ac.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 21:13:55 2013 -0600

    Fixed test-mhmail failure on Solaris:  its tail doesn't suport -n.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 22:03:23 2013 -0500

    Update pending-release-notes regarding removal of the -normalize and
    -nonormalize switches.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 21:56:50 2013 -0500

    Garbage collect "normalize".
    
    The code to normalize addresses (look up the hostnames in DNS for the
    "official" hostnames) was disabled when we made DUMB the default configuration
    in 1.5.  Since them, the -normalize switch was still around in various
    utilities, but it didn't do anything.  Remove all of those switches and
    garbage collect various other bits of the "normalize" functionality.
    
    At the same time, improve getm() a bit; it now takes an argument specifying
    the length of the error buffer.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 20:54:03 2013 -0600

    Added temporary diagnostic hack to test-mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 20:40:59 2013 -0600

    The buildbot is up, put in hacks to enable debug and print out hostname.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 20:30:04 2013 -0600

    Fixed m_getfld() bug introduced in commit
    0c7ac5073c24f01663fadc78b5112c86d52e4452.  This bug caused parsing
    of messages with long (>= 8K) header field values to fail.  The fix
    was easy:  decrement the counter of bytes read when decrementing the
    current read position, in FLDPLUS state.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 20:29:05 2013 -0600

    Use ICONV_CONST in declaration of variable that's passed to
    iconv(), to quiet warning in FreeBSD 10.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 19:49:36 2013 -0600

    Added identifier to each check in test-mhlist to help diagnose
    test failure.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 19:38:11 2013 -0600

    Added comment about not supporting trailing semicolons
    for aliases (in alias file).

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 19:37:00 2013 -0600

    Undid temporary hacks, it looks like the buildbot is down.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 4 19:24:57 2013 -0600

    Temporarily added a few hacks to diagnose problems found by buildbot.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 18:11:31 2013 -0500

    Fix another warning.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 15:49:52 2013 -0500

    A few more tests; I think that's enough for now.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 14:29:54 2013 -0500

    Fix a few warnings.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 12:57:20 2013 -0500

    More tests (but not quite finished yet).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 12:56:54 2013 -0500

    Fix cut & paste mistake.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 12:12:55 2013 -0500

    More man page minor fixup.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 11:56:34 2013 -0500

    Slightly clarify mhbuild man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 4 11:40:52 2013 -0500

    Minor typo fix.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 3 21:57:01 2013 -0500

    Note changes to mhbuild.

Merge: 4c1236a 4fcf75e
Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 3 21:52:30 2013 -0500

    Merge branch 'encode-rfc2047'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 3 21:52:11 2013 -0500

    Support for more tests.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 3 21:36:39 2013 -0500

    Whoops, shouldn't use autoincrement with a macro; forgot about side
    effects!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 3 15:52:00 2013 -0500

    First round of tests!  Still want to do more before it gets merged.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Dec 3 15:21:29 2013 -0500

    Add support for a -file switch to handle messages that are not in folders.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 2 23:34:02 2013 -0500

    Don't put a space after the trailing semicolon for group termination.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 2 23:14:47 2013 -0500

    Use pref_encoding() to select the default encoding for all headers.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 2 23:11:27 2013 -0500

    Do proper group handling, and fix a bug in the q-p encoder.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 2 15:49:35 2013 -0500

    I think we're very close to get address encoding working, but still have
    to test it more.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 2 13:47:34 2013 -0500

    Document a few more things.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 2 13:41:51 2013 -0500

    Since our last caller of getlocaladdr() was removed, garbage-collect this
    function.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 2 13:39:34 2013 -0500

    Remove code to set the signature buffer; it turns out that with our
    refactoring for 1.5, it was no longer used.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 27 12:49:07 2013 -0500

    More work, but still stuff to do.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 25 14:06:38 2013 -0500

    Fix up a few warnings and problems.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 21 15:59:21 2013 -0500

    More work on address portion of RFC 2047 encoder.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 14 15:30:15 2013 -0500

    A little bit closer to working for address headers.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 14 11:43:33 2013 -0500

    Break out the unquote functionality to a separate function.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 14 10:16:22 2013 -0500

    Fix up the unquote test, with help from Lyndon and Ralph.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 13 22:26:09 2013 -0500

    Test for unquoting, but it doesn't work yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 13 20:54:48 2013 -0500

    Switch fmttest over to using snprintb() instead of the private custom version
    we originally cribbed from fmtdump.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 13 20:54:22 2013 -0500

    Document snprintb() a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 13 20:54:05 2013 -0500

    Actually check the output buffer length all of the time.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 13 15:51:08 2013 -0500

    Start work on address header parsing.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 13 11:03:12 2013 -0500

    Fix up date mode so it works without providing a format string.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Nov 10 22:46:49 2013 -0500

    Document things a bit more.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Nov 10 00:46:23 2013 -0500

    A number of bug fixes:
    
    - Fix macro to calculate the number of characters that will fit
      within a specified base64 encoding length.
    - Refactor code to handle leading spaces, and insert a leading space
      correctly after the start of a header.
    
    With all this, it seems to work!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Nov 9 14:27:12 2013 -0500

    Don't increment the buffer pointer for the NUL string terminator; this
    lets us concatenate new text on the end of the current output buffer.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Nov 9 10:39:48 2013 -0500

    Add support for -changecur and -nochangecur to mhlist(1).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 7 22:44:13 2013 -0500

    A little closer, but still has problems.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 7 22:43:50 2013 -0500

    Fix handling of -headerencoding switch.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 7 16:02:14 2013 -0500

    Getting closer to getting base64 header encoding working.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 3 12:36:10 2013 -0600

    Removed spurious space before a period in rcvpack man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 3 12:34:12 2013 -0600

    Cleaned up the "stripped CRs" mhfixmsg verbose message.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Oct 31 11:51:52 2013 -0400

    Beginning stubs to support base64 header encoding.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Oct 31 11:37:52 2013 -0400

    Support the -headerencoding switch to select the header encoding algorithm.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Oct 31 11:36:46 2013 -0400

    Switch to the (correct) casting of char to unsigned char for is*() macros.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Oct 30 20:44:19 2013 -0400

    Fix some space calculation/whitespace handling bugs.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Oct 30 15:32:03 2013 -0400

    Fix qpspecial() macro test, and do proper casts to handle signed chars.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Oct 30 14:04:16 2013 -0400

    It looks like simple quoted-printable encoding of headers works!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Oct 29 22:52:06 2013 -0400

    Remove unused argument.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Oct 29 22:42:51 2013 -0400

    Fix up a few miscalculations.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Oct 29 15:58:35 2013 -0400

    A hopefully-functional quoted-printable encoder

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Oct 28 14:44:30 2013 -0400

    Test to make sure mhshow is actually invoking a charset conversion
    program if one is defined.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Oct 27 22:31:50 2013 -0400

    Fix bug found by LLVM.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Oct 27 22:31:35 2013 -0400

    Fix up warnings reported by LLVM.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 27 08:57:55 2013 -0500

    Interpret a full path argument to mhfixmsg as a filename, not
    a message.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Oct 23 14:40:02 2013 -0400

    A little tiny bit closer to working.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 23 11:24:34 2013 -0500

    Success!  Clean build on the buildbot Solaris11 host.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 23 11:04:52 2013 -0500

    Ooops, fixed typo in configure.ac.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 23 11:02:47 2013 -0500

    See if this cleans up the Solaris build on the buildbot.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 23 10:47:23 2013 -0500

    More probing:  print out sbr/dtimep.c.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 23 10:20:49 2013 -0500

    OK, Solaris on the buildbot uses flex 2.5.35.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 23 10:16:31 2013 -0500

    More probing: added flex -V.

Author: David Levine <levinedl@acm.org>
Date:   Wed Oct 23 09:57:16 2013 -0500

    Added back an enhanced hack to configure.ac to try to diagnose
    the flex 2.5.36/.36 bug workaround.  Changed test-dist a bit
    to help isolate where it just failed.  (My last commit message
    was incorrect:  it was test-dist that failed, not test-comp-format.)

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 22 22:54:08 2013 -0500

    Reverted commit 9caa7da143644ed93c6ba6351f48fa1327ad4392
    because it didn't solve the problem on Solaris, and
    apparently broke test-comp-format, though I don't see how.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 22 19:46:51 2013 -0500

    Added hack to configure.ac to work around bug in flex 2.5.36 and
    2.5.37 that prevents the builds from being completely green.
    According to http://sourceforge.net/p/flex/bugs/140/, this should
    be fixed in the next release of flex.  The hack is confined to
    just configure.ac so it'll be easy to remove.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Oct 21 23:51:57 2013 -0400

    Minor comment update.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Oct 21 16:01:02 2013 -0400

    Start of RFC 2047 encoding code.  Not complete in the slightest.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Oct 21 12:48:23 2013 -0400

    Some comments describing the MIME structures.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 19 09:58:14 2013 -0500

    Added volatile qualifier in a couple of places to get rid of
    "might be clobbered" warning from when -Wno-clobbered isn't
    supported.  And I removed the check for Wno-clobbered from
    configure.ac.  It's no longer needed on any of the platforms
    I use, we'll see if others need it.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 19 09:19:58 2013 -0500

    Allow mhfixmsg to strip carriage returns from ISO-8850, UTF-8,
    and Windows-12xx text, in addition to ASCII.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 19 09:17:22 2013 -0500

    Added docs/README-iCalendar.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Oct 17 22:03:07 2013 -0400

    Implemented -build switch for comp, at the request of the MH-E developers.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Oct 17 21:44:52 2013 -0400

    Minor comment cleanup.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Oct 17 15:43:15 2013 -0400

    Update the mh-sequence(5) man page with details of the format of the
    sequence file.  Also mention that nonexistant messages will be removed
    from sequences.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Oct 15 20:21:32 2013 -0400

    Add locking support to the version of the sequence file reading code used
    by the "new" command.  Based on a patch by Harvey Eneman.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Oct 15 15:02:18 2013 -0400

    Remove support for NOPUBLICSEQ.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Oct 15 14:48:19 2013 -0400

    Remove unneeded stat() call; was a leftover from the original MH
    code where the owner of the folder was checked against the results of
    getuid().

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 6 08:45:22 2013 -0500

    The Content-Disposition type needs to be "inline" for MS Outlook and
    BlackBerry calendar programs to properly handle a text/calendar
    attachment.  So do that with attachformat values of 1 and 2.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 19 18:30:19 2013 -0500

    Added script name to test-mhfixmsg printout.

Author: David Levine <levinedl@acm.org>
Date:   Thu Sep 19 08:13:24 2013 -0500

    Don't check -replacetextplain in test-mhfixmsg if skipping -reformat
    check.

Author: David Levine <levinedl@acm.org>
Date:   Wed Sep 18 21:40:19 2013 -0500

    Run output of -replacetextplain test through uniq.

Author: David Levine <levinedl@acm.org>
Date:   Mon Aug 19 00:42:01 2013 -0500

    Added -replacetextplain switch to mhfixmsg.  If enabled, -reformat
    will replace any existing text/plain part, such as those that are
    empty or that don't match their corresponding text/html part.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jul 2 18:33:37 2013 -0500

    Added unsigned char cast of char argument to isascii() call.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jul 1 15:44:22 2013 -0400

    Reject email addresses which contain 8-bit characters.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jul 1 15:07:16 2013 -0400

    Add warnings about the use of %(decode) on addresses.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jul 1 14:31:51 2013 -0400

    If mbtowc() fails to handle a character, replace the offending character
    with a '?' and continue.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jul 1 07:11:27 2013 -0500

    In test-mhfixmsg, run output through uniq before head instead of after.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 22:29:12 2013 -0500

    Punted on comparing that html part in test-mhfixmsg:  it
    can get reformatted legally.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 21:20:00 2013 -0500

    Try this formatting change to test-mhfixmsg.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 20:46:18 2013 -0500

    One more formatting chagned to the input in test-mhfixmsg.  One of
    the lines is one character longer than the others and that's about
    where the problem shows up, so yanked a character out of it.

Merge: 1863e69 03da1d1
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Jun 30 18:11:42 2013 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Jun 30 18:11:13 2013 -0700

    Revert "Move a variable manipulation outside the context of setjmp() to quell a compiler warning."
    
    Turns out it didn't fix it after all.
    
    This reverts commit 0152658e840581077e5cd575b5195faf18b9df8b.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 20:11:08 2013 -0500

    Changed formatting of the input in test-mhfixmsg that breaks
    on Solaris 11, maybe this will fix it.

Merge: 0152658 7970ff4
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Jun 30 17:59:59 2013 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Jun 30 17:59:31 2013 -0700

    Move a variable manipulation outside the context of setjmp() to quell a compiler warning.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 19:40:34 2013 -0500

    Restored test-mhfixmsg.  Not sure what to do about failure on Solaris.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Jun 30 17:24:48 2013 -0700

    Copy a parameter off the call stack to quell a longjmp warning.

Merge: 5fb90fa daae5d9
Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 19:14:46 2013 -0500

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 19:12:58 2013 -0500

    See if the rest of test-mhfixmsg will pass on Solaris.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Jun 30 16:58:23 2013 -0700

    Remove spurious return statements after exit().
    
    These are holdovers from a long forgotten era.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 18:50:50 2013 -0500

    OK, fixed test-mhfixmsg on Solaris 11, where BUFSIZ is 1024.
    The problem was in the content_encoding() function of mhfixmsg:
    it would restart its counter of the characters on a line whenever
    new characters were read in.  The fix was easy, just move the
    initialization of that counter outside of the fread() loop.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 18:28:56 2013 -0500

    Added to the Solaris debug printout.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 18:11:43 2013 -0500

    Removed exit() after a longjmp() in uip/sendsbr.c to quiet
    compile warning on Solaris 11.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 18:03:28 2013 -0500

    More debugging of test-mhfixmsg on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 17:50:44 2013 -0500

    Fixed removal of <> in test-dist and test-rcvdist.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 16:44:23 2013 -0500

    Remove any <> surrounding localmbox in test-dist and test-rcvdist,
    so that the tests pass when the user doesn't have a SIGNATURE set.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 16:35:39 2013 -0500

    That didn't work, fixed location of mhn.defaults in test.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 30 16:19:56 2013 -0500

    Added debug printouts to see why the test fails on Solaris 11.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Jun 30 13:14:12 2013 -0700

    Prefer /usr/sbin/sendmail over /usr/lib/sendmail.
    
    If the site installs a sendmail replacement, or updates to a newer
    version, odds are better for the new sendmail preferring to install in
    /usr/sbin over /usr/lib.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Jun 30 12:39:46 2013 -0700

    Add compilation guard around lkopen_flock.
    
    Oracle Solaris 11 doesn't have flock().

Author: Lyndon Nerenberg <lyndon@nmhsol11.(none)>
Date:   Sun Jun 30 12:16:07 2013 -0700

    If we're searching for commands, prefer xpg4 versions on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 11 20:30:31 2013 -0500

    Removed hyphen from all occurrences of RFC-*.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 11 20:17:29 2013 -0500

    Changed all bare occurrences of 822/2822 to RFC 822/RFC 2822.
    Reported by Norm.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 11 19:46:51 2013 -0500

    Changed "separated by spaces" in mh-sequence man page to
    "as separate arguments", as suggested by Norm.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 11 19:45:47 2013 -0500

    Changed a couple of occurrences of "white-space" to "whitespace"
    to be consistent with other man pages.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun May 26 12:37:40 2013 -0700

    conflict(8): style - move deprecation notice into DESCRIPTION.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun May 26 12:28:24 2013 -0700

    Remove SYNOPSIS from nmh(7).

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun May 26 12:23:00 2013 -0700

    Delete SYNOPSIS from section 5 manpages.
    
    This isn't applicable to section 5 manpages.

Merge: c943fb3 4859041
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun May 26 12:17:41 2013 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun May 26 12:17:31 2013 -0700

    Fix typo.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 26 11:11:48 2013 -0500

    Added note to pending-release-notes that "*" address-group is
    obsolescent.  Split obsolete and deprecated features into
    separate sections.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat May 25 20:19:50 2013 -0700

    Stupid typo in manpage.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat May 25 20:14:04 2013 -0700

    Clean up mh-alias(5) manpage.
    
    Word-smithing, update to use *.example domains for addresses,
    literal text in bold rather than italic, use typographers quotes on
    single character references, etc.
    
    Re-organize sections to match documentation convention.
    
    Mark "*" address-group as obsolescent.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 12 08:29:34 2013 -0500

    Fixed strip_crs() in mhfixmsg to work even if it's the
    only modification to the message.  Also, fixed the test
    so that it succeeds even if there is no lynx, w3m, etc.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 6 20:14:57 2013 -0500

    Fixed number of bytes to fread() in strip_crs() in mhfixmsg.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun May 5 14:41:34 2013 -0700

    More .ta -> .TP manpage cleanup.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 4 10:38:35 2013 -0500

    Per Ralph's suggestion, added note that "moreproc" is not
    supported in user profile display strings.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 4 10:30:21 2013 -0500

    Replaced hard-coded "more" with DEFAULT_PAGER in show_text().

Author: David Levine <levinedl@acm.org>
Date:   Sat May 4 09:36:42 2013 -0500

    When the mhfixmsg -decodetext switch is enabled, each carriage
    return character that precedes a linefeed character is removed
    from ASCII-encoded text parts.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 4 09:03:27 2013 -0500

    Removed unused declaration of "nolist" from mhshow.c.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 4 09:01:42 2013 -0500

    Replaced raw hack to add the credentials profile entry in post.c
    with new add_profile_entry() function.

Author: David Levine <levinedl@acm.org>
Date:   Thu May 2 20:36:21 2013 -0500

    Fixed failure reported by Valdis of post to retrieve login and
    password with legacy credentials.

Author: David Levine <levinedl@acm.org>
Date:   Wed May 1 20:40:55 2013 -0500

    Fixed problem with m_getfld() with long headers reported by
    Paul Fox.  The problem occurred with the 512th byte of the
    header was a newline:  it then skipped the next character.

Author: David Levine <levinedl@acm.org>
Date:   Wed May 1 20:38:48 2013 -0500

    Set the return status from the check() function of the test
    suite if the check failed.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 30 20:59:55 2013 -0500

    Removed remaining #includes of stdio.h and stdlib.h because
    they're #include'd by h/nmh.h.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 30 20:54:43 2013 -0500

    Applied what was done to uip/send.c in commit
    af429a902add614e35cd76d15172a4ccb70a3be1 to uip/viamail.c and
    uip/whatnowsbr.c, because they call sendsbr() directly.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 28 19:42:09 2013 -0500

    Removed some #includes of stdio.h, ctype.h, stdlib.h, and
    string.h because they're #include'd by h/nmh.h.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 28 19:32:44 2013 -0500

    Removed some #includes of unistd.h and stdio.h because they're
    in h/nmh.h.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 28 19:26:58 2013 -0500

    Redirect some outputs in the test suite to standard error.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 28 14:59:34 2013 -0500

    Fix to commit af429a902add614e35cd76d15172a4ccb70a3be1 to
    use the user found by nmh_get_credentials() in sm_auth_sasl().

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 28 13:07:31 2013 -0500

    Tweaked check of -outfile in test-mhstore.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 28 12:49:44 2013 -0500

    Allow -clobber with mhstore -outfile.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 28 11:29:47 2013 -0500

    Added -outfile switch to mhstore(1).

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 28 11:13:41 2013 -0500

    Refined error message from check() shell function of test suite.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Apr 27 20:32:55 2013 -0400

    Remove extra arguments from two anno tests; the check() function now
    complains about them.  Looks like they were always there.

Author: David Levine <levinedl@acm.org>
Date:   Sat Apr 27 14:08:49 2013 -0500

    Removed #include of sys/param.h from sbr/makedir.c.  It's
    #include'd by h/nmh.h, with HAVE_SYS_PARAM_H protection.

Author: David Levine <levinedl@acm.org>
Date:   Sat Apr 27 13:26:18 2013 -0500

    Allow mhfixmsg -reformat to succeed even when decode of binary
    text fails.  This is a refinement of commit
    ebf35185aa9256b0cd09234f39bd14db9e90e81c.

Author: David Levine <levinedl@acm.org>
Date:   Sat Apr 27 13:24:53 2013 -0500

    Added support for 'ignore space' argument to check() function
    of test/common.sh.in.

Author: David Levine <levinedl@acm.org>
Date:   Mon Apr 22 22:00:38 2013 -0500

    Completed commit 52a236230220232fd632b5aa88eb9bb31dba346e so
    that send(1)/post(1) use "credentials" profile entry.  post
    doesn't read the profile so pass the credentials setting to
    it via a new switch.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 21 09:49:48 2013 -0500

    Replaced calls to static getcpy() in mf.c with calls to strdup()

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 21 09:43:27 2013 -0500

    Added quoting of local part of invalid address in message being
    replied to [Bug #26780].

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 21 09:42:00 2013 -0500

    Fixed small formatting glitch in repl man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 21 09:41:03 2013 -0500

    Added const to arguments of mf functions.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 21 09:39:44 2013 -0500

    Added const to argument of getname().

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 21 09:39:20 2013 -0500

    Added const to argument of getcpy().

Author: David Levine <levinedl@acm.org>
Date:   Sat Apr 20 08:36:12 2013 -0500

    Refined commit 9b70e8396d50989db2177547515594bc15ee8b17 to allow
    options to be passed to ls from whatnow prompt.  This way, "ls -l"
    works as expected.

Author: David Levine <levinedl@acm.org>
Date:   Fri Apr 19 21:06:50 2013 -0500

    Added mention to mhlist(1) man page, in response to question
    from Ralph, that it lists multipart/alternative parts in reverse
    order of their placement in a message.
    
    And in response to suggestion from Ralph, trimmed whitespace from
    ends of mhlist output lines.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Apr 9 14:32:32 2013 -0400

    test-mark:  add tests for relative message selections

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu Apr 4 08:21:19 2013 -0400

    mh-sequence.man: document new '=+' and '=-' for selecting relative msgs
    
    also add a line-item to docs/pending-release-notes.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu Apr 4 08:21:50 2013 -0400

    m_convert: 'foo=n' and 'foo=+/-n' now select msgs with relative offsets

Author: David Levine <levinedl@acm.org>
Date:   Thu Apr 18 21:30:33 2013 -0500

    Fixed permissions of maildelivery file in test-slocal to fix
    test failure reported by Paul Fox.  Also added code to the test
    to help diagnose any failure.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 16 08:00:54 2013 -0500

    Plugged memory leak in m_unknown().

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 16 07:59:54 2013 -0500

    Added date to test message with two blank lines between header
    and body so that the test can pass on other days.

Author: David Levine <levinedl@acm.org>
Date:   Mon Apr 15 21:01:12 2013 -0500

    Fixed problem in m_getfld() reported by Paul Fox.  When
    inc'ing a message from a maildrop with two blank lines
    between the header and body, the last 3 or 4 characters of
    the last header would be copied into the body.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 14 10:47:31 2013 -0500

    Moved #include of signal.h to h/signals.h.  And it was already
    in h/nmh.h.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 14 10:27:47 2013 -0500

    Moved #include of errno.h to h/nmh.h.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 14 10:13:42 2013 -0500

    Removed #include of sys/wait.h from sbr/pidstatus.c.  I missed
    it with b523a72928c0ef630be33cf5f5aab9fc301958e1.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 14 09:53:32 2013 -0500

    A "credentials" mh-profile entry has been added.  This allows
    post(8), whom(1), send(1), inc(1), and msgchk(1) to (optionally)
    honour the username in the .netrc file [Bug #23168].  And, it
    allows specification of any valid filename in place of $HOME/.netrc.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 9 20:26:43 2013 -0500

    Fixed typo in several man pages.

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 3 20:06:19 2013 -0500

    Added vpick to dist_contib_DATA so it gets distributed.

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 3 19:56:54 2013 -0500

    Be sure that mhfixmsg returns a status of non-zero if
    it can't reformat a part.

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 3 18:46:22 2013 -0500

    Added port number to "Connecting to" message with -snoop.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 1 12:10:28 2013 -0400

    Document new -initialtls option.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 31 20:56:49 2013 -0500

    Cast away constness of SSL_CTX_new() arg because that's
    what older versions of ssl use.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 31 20:39:55 2013 -0500

    Look at post instead of inc to determine build options in build_nmh.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 31 20:39:22 2013 -0500

    Added const to SSL_METHOD *.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Mar 31 18:33:46 2013 -0400

    Preliminary support for TLS negotiation at the very start of SMTP session.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 31 16:32:10 2013 -0500

    Moved #include <sys/wait.h> to h/nmh.h.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 31 11:45:09 2013 -0500

    Removed limit on maximum number of sequences in a folder.
    Dynamically sized vectors in sbr/vector.c were added to support
    this.  Their sizes are limited only by virtual memory.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 30 09:53:10 2013 -0500

    Moved #include <assert.h> to h/nmh.h.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 29 12:09:15 2013 -0500

    A bug fix and an enhancement to mhfixmsg based on patches
    provided by M. Levinson:
    1) Set status to NOTOK in get_multipart_boundary() if the
       message is missing its end boundary.  This avoids a seg fault
       in fix_boundary(); also added check for null return from
       parse_mime().  If this turns out to be a common problem, we
       could consider adding code to repair it.  Now, mhfixmsg ignores
       the condition and proceeeds with any other transformations.
    2) With -decodetext 7bit, mhfixmsg now converts base64-encoded
       parts to quoted-printable 8bit if the part will not fit into
       7bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 27 14:56:44 2013 -0400

    Document changes regarding increased per-folder sequence limits.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 27 14:51:33 2013 -0400

    Warn the user if too many sequences exist during sequence initialization.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 27 14:22:40 2013 -0400

    Change seqset_t to unsigned long to support more sequences on LP64 systems.
    Also include necessary casts to make sequence macros worked properly.
    Based on code contributed by M. Levinson.

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 25 22:29:06 2013 -0500

    Reworded description of "mark -seq foo delete all" example
    in mark(1) man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 24 13:37:47 2013 -0500

    Finished replacing mh_strcasecmp() with strcasecmp().  Removed
    sbr/strcasecmp.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 24 13:23:59 2013 -0500

    More replacements of mh_strcasecmp() with strcasecmp().

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 24 11:45:42 2013 -0500

    More replacements of mh_strcasecmp() with strcasecmp().

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 24 11:28:51 2013 -0500

    More replacements of mh_strcasecmp() with strcasecmp().

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 24 11:15:27 2013 -0500

    More replacements of mh_strcasecmp() with strcasecmp().

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 24 10:36:18 2013 -0500

    More replacements of mh_strcasecmp() with strcasecmp().

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 24 09:09:02 2013 -0500

    Started replacing uses of mh_strcasecmp() with strcasecmp().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 23 22:59:24 2013 -0400

    Change folder_delmsgs() to save context and sequence files (and make
    sure those changes are before calling rmmproc().  Update programs
    that use folder_delmsgs() to make all changes to sequences and
    the context before calling folder_delmsgs().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 22 00:28:35 2013 -0400

    Make some formatting changes to conform to our manpage style.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 22 08:33:40 2013 -0500

    Always update sequences and context in mhfixmsg, not just when
    there is a rmmproc.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 21 21:05:09 2013 -0500

    Fixes from M. Levinson:
    1) Fixed typo in elinks option in etc/mhn.defaults.sh.
    2) Added #include <sys/wait.h> to mhfixmsg.c.
    3) Fixed seg fault when there's no corresponding profile entry
       for a message part in mhfixmsg.
    4) If rename() fails in write_content() of mhfixmsg, attempt to
       copy and then remove the file.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 21 21:49:29 2013 -0400

    Minor formatting fix for fmttest man page.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Thu Mar 21 20:22:21 2013 -0500

    Went through the sources and checked where etcpath() is
    used, and added/cloned an explanatory bit of text from the
    fmttest man page to the files section for all affected
    programs.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 21 18:28:21 2013 -0400

    Make sure to mark the sequence file as closed in the msgs struct.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 21 17:19:46 2013 -0400

    Change mhfixmsg to the new world folder_read() API.

Merge: 6f70907 85bb87a
Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 21 17:14:30 2013 -0400

    Merge branch 'newlock'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 21 17:12:42 2013 -0400

    More documentation about locking changes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 21 17:12:13 2013 -0400

    Support for sequence file locking in inc(1).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 21 13:47:04 2013 -0400

    Don't lock and write the sequence files until after the searching
    is complete.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 21 09:13:13 2013 -0500

    Replaced reference to mktemp(3) with mkstemp(3) in
    rmmproc.messageid.

Author: David Levine <levinedl@acm.org>
Date:   Wed Mar 20 21:48:57 2013 -0500

    Added support for Content-Disposition header (RFC 2183) to
    mhstore(1) and mhn(1) when used with -auto.

Author: David Levine <levinedl@acm.org>
Date:   Wed Mar 20 20:52:10 2013 -0500

    Removed hard-coded locking selection from SPECS/nmh.spec.

Author: David Levine <levinedl@acm.org>
Date:   Wed Mar 20 20:25:31 2013 -0500

    Fixed typo in rmf man page.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 19 07:32:24 2013 -0500

    Added -[no]rmmproc switches to rmm and mhfixmsg.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 19 01:02:45 2013 -0400

    Make sure the building of config/config.o and sbr/mts.o depend on
    the Makefile so changes to the Makefile are properly reflected in the build.

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 18 20:00:10 2013 -0500

    Added -[no]rmmproc switches to rmm and mhfixmsg.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 18 15:29:35 2013 -0400

    Add code for (and convert world to) the new world lock order.
    
    Still need to add some code to make inc and pick behave better (not hold locks
    for as long).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 18 10:38:06 2013 -0400

    Add ICONVLIB to build rule for mhfixmsg

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 18 08:54:55 2013 -0500

    Fixed use of WIFEXITED in mhfixmsg.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 17 21:55:56 2013 -0500

    Fixed procmail example in mhfixmsg man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 17 15:40:36 2013 -0500

    Removed color-tests from AM_INIT_AUTOMAKE because the build
    breaks if not supported, and automake 1.13 enables it by
    default.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 17 10:32:57 2013 -0500

    Added mhfixmsg(1).

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 17 10:29:26 2013 -0500

    Fixed typo in fmmtest man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 16 00:04:38 2013 -0400

    Add information about locking support entries to the man pages.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 15 23:45:54 2013 -0400

    Support for locking tests in the test suite.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 15 19:42:43 2013 -0400

    Turns out the close function can be called with FILE * == NULL, so handle
    that case.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 15 15:57:56 2013 -0400

    Mostly complete now, but not yet functional.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 15 08:50:23 2013 -0500

    Corrected comment describing copy_seqs().

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 14 22:02:30 2013 -0500

    Changed c_cefile member of struct Content from pointer to
    struct cefile.  The memory cost will be negligible and it
    simplifies the MIME parser code a bit.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 14 20:58:31 2013 -0500

    Added -[no]retainsequences switches to refile(1).

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 14 20:37:49 2013 -0500

    Changed loop in dumpwidth() to go from [0, 0xffff) because
    wchar_t is 2 bytes wide on Cygwin.  gcc noticed that the loop
    would never terminate because 0xffff would increment to 0.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 14 19:08:15 2013 -0500

    Changed detection of warning in build_nmh for sign mismatch
    in sbr/dtimep.c to work with older gcc.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 14 15:57:07 2013 -0400

    More locking updates; still doesn't compile yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 13 21:02:48 2013 -0400

    Start of the changes for the new lock code.  Does not compile yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 12 14:22:49 2013 -0400

    Add support for RFC-2017, message/external-body content which contains URLs.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 12 12:57:41 2013 -0400

    Change sample disposition from "application" to "attachment"

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 11 18:57:01 2013 -0500

    Added check that writesomecmd() isn't at the end of argp before
    dereferencing ++argp.  I'm surprised that no one, including me,
    tripped over this before:  whatnow(1) would seg fault when
    handling, e.g., detach -n 4.  But until I upgraded to Fedora 18,
    I never noticed it.  (valgrind did.)

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 11 18:42:16 2013 -0500

    Ignore the sign mismatch warning when sbr/dtimep.c is built with
    flex 2.5.36 or 2.5.37.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 8 06:40:07 2013 -0600

    Fixed spelling of "preserve" in refile man page.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 7 20:11:22 2013 -0600

    In the locking discussion of mh-folders(5), discourage direct
    access to the nmh state files.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 5 20:17:08 2013 -0600

    Added lockmethod pseudocomponent to mhparam so that users
    can easily find out what locking method was configured in.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 5 14:30:51 2013 -0500

    Update with more information.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 3 21:45:09 2013 -0600

    Added a bit more on sequences to mh-folders.man.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 3 09:53:10 2013 -0600

    Added beginnings of storage format spec to new mh-folders.man.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 3 09:49:05 2013 -0600

    Fixed typo in rmmproc.messageid.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 27 19:32:38 2013 -0600

    Reworked internals of MIME parser's reverse_parts() and made it
    public.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 27 19:31:31 2013 -0600

    Added tolower(), toupper(), and toascii() to
    gen-ctype-checked.c.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 26 19:23:58 2013 -0600

    Added a handful of functions to the parser to allow access to
    init functions and string representations of enum valus for
    content types and encodings.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 26 19:08:38 2013 -0600

    Added nmh_strcasestr() because POSIX doesn't have strcasestr().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 26 13:19:06 2013 -0500

    Support RFC 2231 language tags in RFC 2047 header strings.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 25 23:02:05 2013 -0600

    Added cpytrim() function.  Unlike trimcpy(), it does not modify
    its argument.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 25 22:46:00 2013 -0600

    Added const qualifier to arguments of concat() and copy().

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 24 21:55:28 2013 -0600

    Added find_str() and rfind_str() to sbr/utils.c

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 24 21:38:33 2013 -0600

    Added const qualifier to char * arguments of add(), addlist(),
    and folder_exists() in sbr/utils.{h,c}.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 22 00:52:50 2013 -0500

    Add support for LS_UNQUOTE instruction.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 22 00:47:47 2013 -0500

    Fix the code to print out an unknown instruction.  Wow, this never worked
    back from the original fmtdump.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 23:56:02 2013 -0500

    Whoops, forgot a \ when adding fmttest.man to man_SRCS.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 23:03:31 2013 -0500

    Quote the arguments to the .I macro so the manpage test doesn't complain.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 22:55:41 2013 -0500

    Document new fmttest program.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 22:55:23 2013 -0500

    Fix a few issues resulting from m_getfld() API changes.

Merge: b5f3b74 7344831
Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 22:40:48 2013 -0500

    Merge branch 'format-test'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 22:38:18 2013 -0500

    Add a lot more text to the man page; it should be in reasonable shape now.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 22:37:47 2013 -0500

    Update instruction output to be a bit more cleaner

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 21 21:01:55 2013 -0600

    Fixed write8Bit() to use fread()/fwrite() instead of
    fgets()/fputs().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 15:53:06 2013 -0500

    Flesh this out so finally it's halfway useful.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 15:52:36 2013 -0500

    Rearrange options a bit and support the -nodump flag.  Also clean up how
    -raw mode works.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 21 15:52:09 2013 -0500

    Bring this up to best practices.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 20 22:37:50 2013 -0500

    Minor updates for fmttest man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 20 15:53:54 2013 -0500

    Basic format tracing support; seems to work!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 20 15:19:11 2013 -0500

    Support for the address duplication done by repl, and also clean up
    some stuff.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 20 12:01:05 2013 -0500

    Support callbacks into the format engine.  This is so we can add in proper
    hooks for %(formataddr), %(concataddr), and (eventually) tracing.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 19 21:57:32 2013 -0500

    Make generating the ChangeLog work if you're building a distribution from
    an object directory.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 19 21:54:14 2013 -0500

    The beginnings of a fmttest man page.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 19 19:45:25 2013 -0600

    In m_getfld.c, cast the returns of valid characters to
    unsigned char.  This differentiates them from EOF and matches
    the behavior prior to the recent m_getfld() rework.  But that
    behavior is very broken on 8-bit input.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 19 13:51:47 2013 -0500

    Apply David Levine's fix from whomfile() to sendfile() as well.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 18 21:32:24 2013 -0600

    Removed addition of whomproc to the vec array in whomfile()
    now that argsplit() does it.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 18 21:24:29 2013 -0600

    Added locking discussion to rcvstore(1) man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 18 20:51:46 2013 -0500

    fmttest is actually starting to get useful now.  Some changes were required
    to the format code to make this code cleaner.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 17 22:04:51 2013 -0600

    "RFC-2045 to RFC-2049" instead of "thru".

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 16 08:27:29 2013 -0600

    When output_content() outputs a non-MIME message with no body,
    suppress the newline after the headers.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 16 08:23:10 2013 -0600

    Added mention of rcvstore(1) to inc(1) man page.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 16 08:21:10 2013 -0600

    Plugged small memory leak in etcpath().

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 16 08:19:45 2013 -0600

    In InitMultiPart(), always set bogus_mp_content if boundaries
    don't match.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 16 00:37:36 2013 -0500

    Remove dead UUCP address parsing code.  Sadly, this is not the complete
    removal of UUCP support, but it's a good start.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 16 00:31:16 2013 -0500

    Slightly more useful, but still more work to do.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 15 15:58:21 2013 -0500

    Add more functionality to fmttest; it's starting to get semi-useful.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 14 21:53:50 2013 -0600

    Added a couple of global variables to mhparse.c to allow
    suppression of the warning about bogus multipart content,
    and detection of it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 14 13:50:28 2013 -0500

    More work on fmttest, but still plenty more to go.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 14 13:49:54 2013 -0500

    Correct man page information for %(width) format instruction.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 13 21:11:59 2013 -0600

    Added support for multiple message/file arguments to
    rmmproc.message.id.  Added mention of it to rmm man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 13 15:53:13 2013 -0500

    Clean up argument handling to fmttest, as a precursor to actually getting
    it done.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 13 14:42:50 2013 -0500

    Remove support for -mail, -saml, -send, and -soml switches in send
    and whatnow.  The code in post implementing these options was removed
    as part of commit 537e02c38f4bb.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 13 14:24:11 2013 -0500

    Convert fmttest over to the new argument processing world order.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 13 10:47:26 2013 -0500

    Document argsplit changes in mh-profile man page.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 12 22:03:54 2013 -0600

    Fixed typo in mhlist man page.  Also removed sendfiles(1)
    from its SEE ALSO list.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 12 20:05:17 2013 -0500

    Remove installproc from the test since we don't have it anymore.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 12 15:39:18 2013 -0500

    Remove "installproc" since it is no longer used.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 12 15:37:00 2013 -0500

    Final conversion to new argsplit() code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 11 15:57:31 2013 -0500

    Add a new test for the MIME functionality in burst.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 10 20:55:54 2013 -0600

    Multipart parts might have content before the first subpart
    and/or after the last subpart that hasn't been stored anywhere
    else, so do that at the end of InitMultiPart(), and output it
    in output_content().

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 10 19:05:37 2013 -0600

    Added etc/rmmproc.messageid, which shows how to try to move
    a message or file to a file that's named based on Message-ID.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 8 15:46:31 2013 -0500

    Make burst(1) be able to burst MIME-formatted messages with message/rfc822
    parts in them.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 8 13:02:00 2013 -0500

    Create a central prototype for free_content().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 7 14:34:12 2013 -0500

    More conversion to argsplit().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 7 11:31:45 2013 -0500

    Move etc/gen-ctype-checked into an Automake primary so dependency information
    can properly be recorded for it.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 6 20:39:06 2013 -0600

    When debugging is enabled, replace the ctype functions with
    macros that index into arrays.  This allows the compiler to
    catch use of char, instead of unsigned char, arguments to
    those functions.  gcc uses -Wchar-subscripts, which is enabled
    with the -Wall that we use by default.  Thanks to Tom Lane for
    suggesting this approach.
    
    This feature can be enabled by undef'ing NDEBUG in config.h.
    configure --enable-debug does that.  We can now use the same
    mechanism to enable and disable assert(3), too.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 6 20:31:18 2013 -0600

    Added global variable skip_mp_cte_check to turn off that check
    for incorrect encoding of multipart messages in InitMultiPart().

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 6 20:28:29 2013 -0600

    output_content() assumed that ci->ci_values[0] was the boundary,
    but that's not always the case.  Added search for the boundary
    in ci->ci_attrs[].

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 6 15:51:04 2013 -0500

    More work to convert programs over to the use of argsplit().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 6 11:12:56 2013 -0500

    Make sure these stdarg lists are properly terminated with pointer-context
    NULLs.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 5 21:06:35 2013 -0500

    Remove warning suppression we no longer need.  Hooray!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 5 21:00:40 2013 -0500

    FINALLY clean up our signed/unsigned character warning mess.  In short, we
    have switched to using "char" almost everywhere, and casting char to
    unsigned char when using the ctype macros/functions.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 5 16:20:53 2013 -0600

    Changed m_getfld() to use char instead of unsigned char.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 5 15:25:23 2013 -0600

    Changed m_getfld() to use char instead of unsigned char.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 5 13:01:09 2013 -0500

    Start of the signed/unsigned char cleanup.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 3 22:51:00 2013 -0600

    Tweaked logic in brkstring.c and showfile.c to get rid of the
    remaining "statement not reached" warnings from Solaris cc.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 2 14:28:39 2013 -0500

    Make sure we don't link getcwidth with the nmh libraries.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 12:56:53 2013 -0600

    Added support for "-" to indicate stdout to output_message().

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 12:54:55 2013 -0600

    Removed unlink of "core" from signal handler of mhlist, mhn,
    mhshow, and mhstore.  Those programs shouldn't remove a file
    that has nothing to do with them.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 12:40:59 2013 -0600

    Removed myuid and mygid variables, they're no longer used and
    the Solaris C compiler complained about their initializers.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 2 13:30:24 2013 -0500

    Cast wchar_t to long unsigned int to deal with differing types of
    wchar_t across systems.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 11:55:23 2013 -0600

    Suppress warning from test-manpages that groff can't break a line if
    the user's prefix is too long.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 10:54:32 2013 -0600

    The Solaris compiler was right about unreachable statements.
    Fixed all of them in uip/.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 10:21:14 2013 -0600

    Added l modifier to X printf conversions of wchar_t's.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 10:18:24 2013 -0600

    Removed unused vec[0] relic from before argsplit conversion.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 10:12:57 2013 -0600

    Added trailing newline to sed input in mhmail when processing
    -headerfield argument, to squelch complain from Solaris sed.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 09:59:28 2013 -0600

    Set MHTMPDIR to try to keep all test-related files together.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 09:58:20 2013 -0600

    More test-mhmail probing.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 09:23:49 2013 -0600

    Try this test-mhmail probe.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 08:43:32 2013 -0600

    More test-mhmail probing.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 08:26:43 2013 -0600

    Modified test-mhmail probe.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 2 08:15:15 2013 -0600

    Added temporary probe to test-mhmail.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 2 01:10:06 2013 -0500

    Convert post over to use new argsplit code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 2 00:48:54 2013 -0500

    Handle the case where (on Solaris) the width of U+2019 is 2 (which seems
    TOTALLY bizarre to me, but there you have it).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 2 00:33:51 2013 -0500

    Rework multibyte test so it will calculate the width of all of the
    Unicode characters we are using.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 23:24:27 2013 -0600

    In setup_test(), set PATH after install.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 23:12:09 2013 -0600

    Added set -x to test-ali.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 22:52:00 2013 -0600

    Maybe the mkdir in setup_test() needs a -p?

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 22:39:49 2013 -0600

    More test-ali diagnostics for Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 22:25:51 2013 -0600

    Use test -t 1 instead of test -w in test-pick.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 22:24:48 2013 -0600

    More setup_test() and test-ali attempts on Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 18:46:02 2013 -0600

    Removed the ls of folder from setup_test().

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 18:35:13 2013 -0600

    Try full path to folder in setup_test().

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 18:16:26 2013 -0600

    Maybe the PATH needs to be exported again in setup_test()?

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 17:37:02 2013 -0600

    So folder does exist the first time through setup_test().
    Let's see its stdout.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 17:20:37 2013 -0600

    Suppressed display of info message when test-eom-align isn't
    run with stdout to a terminal.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 17:19:40 2013 -0600

    Temporarily added ls of folder to setup_test().

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 15:08:32 2013 -0600

    In setup_test(), create the Mail directory if it doesn't
    already exist.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 1 15:41:00 2013 -0500

    Ignore the return status of diff, so we don't exit if diff fails when using
    set -e.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 1 15:18:47 2013 -0500

    Add some diagnostics to determine what is going wrong.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 14:08:45 2013 -0600

    It looks like the first test fails on Solaris because it
    can't find folder.  So, added a test/sleep before its first
    use, in setup_test().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 1 15:03:16 2013 -0500

    If the multibyte width test fails, dump the values of wcwidth() for the
    complete BMP.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 13:38:36 2013 -0600

    Added diagnostic to setup_test() to try to figure out
    why the first test fails on the Solaris buildbot.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 1 13:36:23 2013 -0600

    Restored test-ali to its prior condition.  It failed on the
    Solaris buildbot because it was the first test.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 1 14:06:49 2013 -0500

    Make sure we created the test file even if we don't have iconv support;
    it's needed for two tests.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 1 13:42:51 2013 -0500

    Move ICONV_ENABLED so it always gets initialized even if the header check
    for iconv.h fails.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 1 13:25:17 2013 -0500

    If we don't have iconv, skip the multibyte test that requires character
    set conversion.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 1 12:30:45 2013 -0500

    Finally switch over from vfork() to fork() completely.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 1 12:11:59 2013 -0500

    More code converted to use argsplit().

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Feb 1 07:25:44 2013 -0800

    Fix configure tests for -Wfoo option support.
    
    Drooped support for -Wunused-macros and -Wno-unused-macros.  The
    warnings serve no useful purpose, and causing subsequent configure
    checks for -Wfoo flags to get messed up.
    
    Split each test of -Wfoo into a separate check. Include -Werror in
    the individual flag tests to ensure the test compile fails if the
    other flag isn't supported.  Without this, clang issues a diagnostic
    message about the flag being ignored, but otherwise carries on, fooling
    configure into thinking the flag is in fact supported.

Merge: ae9b723 b78be76
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Feb 1 04:44:29 2013 -0800

    Merge branch 'master' into savannah

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Feb 1 00:20:44 2013 -0800

    Update manpages to use .TP for tagged paragraphs (part I).
    
    This replaces .fc/.nf and friends with the man(7) .TP macro.
    
    This commit covers about half of the man pages.  The rest will
    follow in a couple of days.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Feb 1 00:20:44 2013 -0800

    Update manpages to use .TP for tagged paragraphs (part I).
    
    This replaces .fc/.nf and friends with the man(7) .TP macro.
    
    This commit covers about half of the man pages.  The rest will
    follow in a couple of days.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jan 31 21:28:51 2013 -0800

    Update the manpage template documentation.
    
    Update the section ordering to follow the UNIX order.  This
    pulls nmh-specific sections into the body of the manpage, and
    pushes FILES, SEE ALSO, and BUGS to the end.
    
    Clarifies a few other minor points.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 31 22:32:26 2013 -0600

    More probing of test-ali on Solaris:  exit before the
    setup_test call, which has the folder invocation.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 31 22:30:36 2013 -0600

    OK, test-pick should be good on Solaris now.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 31 21:27:46 2013 -0600

    Added exit to test-ali, temporarily, to isolate failure on
    Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 31 21:24:53 2013 -0600

    More homing in on the test-pick warning.  Also, removed
    warning to user that the tty test is being skipped, it's
    not that important.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 31 20:10:59 2013 -0600

    Removed an used sed invocation from test-mhmail.  I don't
    know if it was causing the warnings on Solaris, we'll see.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 31 21:04:43 2013 -0500

    Fix some warnings for Solaris.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 31 20:04:50 2013 -0600

    it looks like the write to /dev/tty is causing the warning from
    test-pick on Solaris, here's an attempt to squelch that.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 31 19:44:47 2013 -0600

    Removed sizes from mhlist output.  Apparently tar files are
    so much smaller on Solaris that they cause the check of its
    output to break.  The test also compares the contents of
    the tar file, so it's still adequate.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 31 19:43:09 2013 -0600

    Redirected stderr to /dev/null in the test for presence of
    /dev/tty.  Solaris warns that it can't create the device.
    This may not fix it, but it should help isolate which part of
    the test is causing the warning.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 31 20:01:27 2013 -0500

    Set the locale for one of the "pick" invocations to UTF-8, so we can decode
    the UTF-8 header correctly in the test.

Author: Lyndon Nerenberg <lyndon@minisun.(none)>
Date:   Thu Jan 31 03:56:55 2013 -0800

    Use cmp(1) to compare acheieved and expected test results.
    
    'diff -c' on Solaris 11 generate a spurious 'No differences encountered'
    message (on stdout, no less!) when the compared files are identical. This
    changes the test logic to compare with 'cmp -s', and then perform a
    'diff -c' if the results don't match expectations.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jan 31 01:44:03 2013 -0800

    Wrap 'pick -subject foobar 13' test with set +e/-e.
    
    The command was failing silently on FreeBSD, leading to
    premature script termination.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Jan 30 23:55:26 2013 -0800

    Change the MD5FMT macro in configure.ac to not emit filename.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Jan 30 23:07:17 2013 -0800

    How hard can it be to write a portable shell function that does nothing?
    
    Pretty hard, apparently :-P

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Jan 30 21:45:16 2013 -0800

    Hush progress indicator during tests when stdout is not a tty.
    
    This eliminates 100 lines of logfile spam during buildbot runs.

Merge: e716be9 f1722de
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Jan 30 19:58:16 2013 -0800

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh into nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Wed Jan 30 19:57:22 2013 -0800

    IPPROTO_TCP requires <netinet/in.h>
    
    At least on BSD it does.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 30 15:47:32 2013 -0500

    More changes to use argsplit() for helper programs.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 29 15:58:34 2013 -0500

    Switch the editor invocation over to use argsplit().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 29 15:30:36 2013 -0500

    The start of the use of argsplit() to process command strings.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 28 21:38:39 2013 -0600

    Changed m_getfld() buffer size to 4096 from 8192, to benefit
    scan(1).  We could consider using a larger buffer size when
    readying message bodies.  But I expect any benefit would be
    overshadowed by the way parse_mime() currently reads MIME
    messages:  it reopens the file for each part.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 28 21:20:22 2013 -0600

    Added m_getfld_track_filepos() for callers to indicate that they
    may interleave fseek*/ftell* calls with m_getfld() calls.  This
    eliminates the need for m_getfld() to call fseek() when called
    by inc(1) and scan(1).

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 28 19:12:17 2013 -0600

    Added scan_reset_m_getfld_state(), for msh only.  It needs to
    call that so that it can support more than one operation on its
    mailbox.

Merge: a5a4757 4538251
Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 27 10:37:54 2013 -0600

    Merge branch 'm_getfld'

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 27 10:11:10 2013 -0600

    In the sortm warning message, say "file modification time"
    instead of "file mtime", per Paul F.'s suggestion.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 27 09:34:58 2013 -0600

    Changed sortm warning message from an amonish() to and advise(),
    and included the remedy of using the file mtime, per suggestions
    of Norm and Ralph.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 27 08:37:31 2013 -0600

    Fixed a couple of calls to m_getfld():  they were in while loops
    and the loop bodies were missing brackets.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 26 09:42:25 2013 -0600

    Deprecated msh(1).

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 26 09:00:48 2013 -0600

    In build_nmh's output from the test suite:  retain
    colorization and list any test failures.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 26 08:52:50 2013 -0600

    Enabled colorized test output (PASS/FAIL/summary) by default
    via "color-tests" automake option.  To disable at runtime,
    either set your AM_COLOR_TESTS environment variable to "no",
    or provide that on the make check command line.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 25 22:21:53 2013 -0600

    Reworked the new documentation in m_getfld.c.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 25 22:22:46 2013 -0500

    Handle the case in the test suite where wcwidth() can return different
    values for combining Unicode codepoints on different operating systems.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 24 16:05:36 2013 -0500

    Fix the format engine so it properly keeps track of multibyte characters
    and column positions when processing components and other functions.
    
    When working on this code I realized we have nothing that checks to make
    sure right justification of format function output works properly, so a
    test for right justification is also included.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 23 20:24:21 2013 -0600

    Added functions for inc, msh, rcvtty, and scan to access
    scansbr's gstate instance so it can be hidden, except for
    msh's uses of m_getfld().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 21 10:32:37 2013 -0500

    Fix a bug leading to message corruption with inc when incorporation more
    than one message at a time.
    
    When I reworked the scan() code to remove the use of stdio internals,
    two code paths were created.  The inc code path consumed another buffer
    from the nxtbuf list for processing the message body.  At the end of
    scan() there was code to push back all of the consumed buffers to the
    nxtbuf list.  The extra buffer consumed in the inc code path wasn't
    being pushed back, and as a result the nxtbuf list would end up with
    duplicate pointers in it.  This would result in two components sharing
    the same text buffer, which caused the message corruption.
    
    When I looked at this closer, I realized that there was no reason to
    push those buffers back to the list; nxtbuf gets reset to compbuffers
    at the start of every call to scan(), and nxtbuf isn't used after the
    buffers are pushed back.  Some researched revealed that this was the
    same back in the original MH code.  I decided it was simplest to simply
    delete the buffer recycling code.
    (cherry picked from commit 22d2acba60374851c291260ff6aa716e9bf44a6d)

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 23 19:42:56 2013 -0600

    Brought over changes to test-pop from master to m_getfld branch.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 20 08:38:18 2013 -0600

    Added scan and inc from mbox with multiple messages.
    (cherry picked from commit c4c53777458bfcfd288d45b7708e52eb47c56405)

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 17 20:58:25 2013 -0600

    Added test-msg-buffer-boundaries.
    (cherry picked from commit dbd0fa0a56a222bd118fea627eba53e5d9811d01)

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 23 19:20:40 2013 -0600

    Brought over changes to test-pop from m_getfld branch.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 22 21:02:49 2013 -0600

    Changed m_getfld() to automatically allocate a new state
    instance as needed.  Callers no longer use
    m_getfld_state_init().

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 22 17:08:21 2013 -0600

    Removed unnecessary m_getfld_state_destroy() from scan.c.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 22 17:07:47 2013 -0600

    Reworked enter_getfld() and Peek().

Merge: 2f5c4e8 22d2acb
Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 21 10:58:07 2013 -0500

    Merge branch 'master' into format-test

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 21 10:32:37 2013 -0500

    Fix a bug leading to message corruption with inc when incorporation more
    than one message at a time.
    
    When I reworked the scan() code to remove the use of stdio internals,
    two code paths were created.  The inc code path consumed another buffer
    from the nxtbuf list for processing the message body.  At the end of
    scan() there was code to push back all of the consumed buffers to the
    nxtbuf list.  The extra buffer consumed in the inc code path wasn't
    being pushed back, and as a result the nxtbuf list would end up with
    duplicate pointers in it.  This would result in two components sharing
    the same text buffer, which caused the message corruption.
    
    When I looked at this closer, I realized that there was no reason to
    push those buffers back to the list; nxtbuf gets reset to compbuffers
    at the start of every call to scan(), and nxtbuf isn't used after the
    buffers are pushed back.  Some researched revealed that this was the
    same back in the original MH code.  I decided it was simplest to simply
    delete the buffer recycling code.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 21 08:42:20 2013 -0600

    Plugged small memory leak in m_unknown().

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 20 22:22:17 2013 -0600

    Replaced hard-coded value with MAX_DELIMITER_SIZE in m_getfld.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 20 21:27:54 2013 -0600

    Removed the static m_getfld() state instance and replaced
    with functions for callers to create and destroy their own
    instances.  This also allows inc, msh, and pick to call
    m_getfld() with an initial file stream position other than 0.
    
    There is now a global state instance so that scan can call
    m_unknown() on maildrop files.  It'd be nice to get rid of
    that.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 20 22:23:58 2013 -0500

    Fix memory leak in arglist code

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 20 08:38:18 2013 -0600

    Added scan and inc from mbox with multiple messages.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 20 07:49:58 2013 -0600

    Updated test-inc-scanout on master to match version of
    m_getfld branch.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 19 08:33:38 2013 -0600

    Added a FILE * to the m_getfld_state struct so that most
    functions don't need to pass it explicitly.  Note that
    m_getfld() must still be passed the FILE * because some
    callers, e.g., those in mhparse.c, reopen their input file
    and therefore pass different FILE *'s for the same input.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 19 08:00:03 2013 -0600

    Moved all file static data in m_getfld.c into the
    m_getfld_state struct.  Changed MSG_INPUT_SIZE from
    hard-coded number to BUFSIZ.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 19 06:54:10 2013 -0600

    Added check of -pack to test-pop.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 18 19:19:00 2013 -0600

    Fixed test-header to work on Cygwin, which has a BUFSIZ of
    only 1024.  That caused an error message to be truncated.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 18 16:03:26 2013 -0500

    Beginning of implementation of new argsplit() function to handle arguments
    to profile-defined commands.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 17 21:58:50 2013 -0600

    Removed all traces of m_getfld() FLDEOF and BODYEOF states.
    They were never set by m_getfld(), so all caller code that
    supported them was completely unexercised.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 17 21:46:54 2013 -0600

    Minimized message files reads in m_getfld() when the caller
    interleaves calls to fseek().  Added check of handling of
    long header field name without a colon to test-header.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 17 20:58:25 2013 -0600

    Added test-msg-buffer-boundaries.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 16 22:02:12 2013 -0600

    More cleanup of m_getfld(), changed some variable names.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 16 21:48:11 2013 -0600

    Added check of header field body with more than 511
    characters to test-inc-scanout.  Also changed a couple of
    test message files to be generated on the fly.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 16 20:13:04 2013 -0600

    Cleaned up m_getfld() code a bit.  The most notable change
    was to remove the check for mmdlm2 not being null.  It's
    global data so that shouldn't happen.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 15 22:56:33 2013 -0600

    Added check of a header with name that's 998 bytes long to
    test-header.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 15 20:11:41 2013 -0600

    Removed the for-loop that was used to get a header field
    name in m_getfld ().  It was no longer necessary when not
    drawing directly from the stdio buffer.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 15 19:38:16 2013 -0600

    Check that a character array isn't empty before looking for its
    next-to-last element.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 15 18:14:46 2013 -0600

    In build_nmh, removed configuration of pager and editor.
    And replaced use of which(1) with a self-contained function.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 15 15:30:17 2013 -0500

    Support the VISUAL and EDITOR environment variables, and remove support
    for configuring a default editor with --with-editor.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 15 13:22:13 2013 -0500

    Remove the --with-pager configure option and replace it with a default
    of "more".

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 14 22:05:38 2013 -0600

    Renamed a couple of m_getfld auxiliary functions.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 14 21:34:08 2013 -0600

    Cleaned up m_getfld's read_more().

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 14 21:05:22 2013 -0600

    In m_getfld(), fixed the loop that handles the FLDPLUS case.
    In Getc(), removed the increment of the byte count at EOF,
    it didn't seem correct or necessary.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 14 20:58:56 2013 -0600

    m_getfld() now supports interleaving calls with
    fseek()/ftell().  Reverted the changes to uip/mhparse.c of
    commit 484eb1003ae647e4b751e4d7829c7daf44fb99c9 because
    they're no longer necessary.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 14 09:45:23 2013 -0600

    Moved test of empty header field from
    test/inc/test-inc-scanout to test/bad-input/test-header.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 14 09:41:50 2013 -0600

    Cleaned up a bit.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 13 21:56:07 2013 -0600

    Added support for m_getfld() callers interleaving fseek() calls
    with their m_getfld() calls.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 13 11:08:28 2013 -0600

    Added bytes_read to m_getfld() buffer state.  This is the
    next step in supporting ftell()/fseek().

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 13 09:43:15 2013 -0600

    Removed unused local char_read from forwsbr.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 13 09:17:47 2013 -0600

    Added check of m_getfld() handling of fields with trailing
    whitespace to test-inc-scanout.'

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 12 11:14:45 2013 -0600

    Removed "sleazy hack" of negative bufsz because commit
    05d8af21d26673279a1ca079ad9c6f301426fe0e removed the only
    use of it.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 12 10:58:31 2013 -0600

    Cleaned up FLDPLUS handling in m_getfld().  As part of this,
    removed the backing up of the read pointer in the "something
    went wrong" portion of the FLD handling.  It had been moved
    back two positions.  The first is no longer necessary
    because a Getc() was replace by a Peek(), and the second
    caused the extra blank line noted in the old comments.
    Updated the expected output in test/bad-input/test-header to
    correspond.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 12 09:23:19 2013 -0600

    Fixed addition to test-inc-scanout in
    683e0fb1a14da5b9ce7bc5db6e76951d14d79348 to not depend on
    current date.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 12 09:21:59 2013 -0600

    Very minor cleanup to m_getfld() to remove an increment of j.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 11 11:13:44 2013 -0500

    We never use the autoconf checks for errno.h, crypt.h, or netdb.h, so
    remove them.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 11 11:07:51 2013 -0500

    At this point we're assuming at least C89 support, so there's no reason
    we should check for support for const and standard header files.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 10 22:52:59 2013 -0600

    Started revising m_getfld() code to replace direct buffer
    access with Getc().  The goal is to again support fseek()
    after return from m_getfld().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 10 14:18:15 2013 -0500

    Convert the MIME content cache switches over to the smatch() New World Order.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 10 08:00:20 2013 -0600

    Added explicit third initializer to some swit struct values
    to silence gcc -Wmissing-field-initialziers warning.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 9 22:04:23 2013 -0500

    Convert all argument processing over to using X-Macros for cleanup.
    Based on a suggestion by Ralph Corderoy.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 9 20:58:03 2013 -0600

    Added comments to and started cleaning up m_getfld.c.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 9 20:50:58 2013 -0600

    When read_more() loads more bytes, save some from the end of the
    current chunk and move them to the front of the buffer.  This
    allows backing up of the current position, which is necessary when
    looking for the message delimiter in a maildrop file.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 7 17:41:27 2013 -0500

    Fix bug where a "cur" sequence that was outside the folder allocation limits
    could trigger a core dump on some systems.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 6 15:04:24 2013 -0600

    Removed support for #ifdef LBL.  It was broken anyways,
    sometime between MH 6.8.5 and the Apr 1999 entry into CVS.
    Also removed the addtoseq format function that could only be
    accessed with it.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 6 09:38:21 2013 -0600

    Fixed test-utf8-body to actually contain the UTF-8 character
    instead of the single byte, 8-bit character.  This was caught
    using Heirloom shell with a UTF-8 locale:  when it wrote the
    test draft from a here document, it converted the single byte
    character to UTF-8.  This verifies that behavior:
    
    LANG=en_US.utf-8 /usr/lib/heirloom/5bin/sh -c "od -x <<EOF
    `printf '\xA1'`
    EOF
    "

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 5 09:55:35 2013 -0600

    Expanded warning message for invalid Content-Transfer-Encoding.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 4 18:50:06 2013 -0600

    Added reference to RFC-1864 to mhbuild man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 4 15:12:15 2013 -0500

    Remove support for -ebcdicsafe/-noebcdicsafe switches in various utilities.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 4 15:03:32 2013 -0500

    Create a dependency for mh-chart.man on all of the man page sources so
    it gets rebuilt correctly if the man pages change.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 3 22:33:42 2013 -0600

    Block SIGPIPE before killing the child in sm_end().  This replaces
    the discard() calls that were removed in commit 4548a3ecc4248a1d4.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 3 22:32:28 2013 -0600

    Removed discard() call in post(8).  It was only used with -debug
    and seemed to serve no useful purpose any more.  Its comment
    said that it was needed to help the loader.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 3 21:59:44 2013 -0600

    In cpstripped() and cptrimmed(), if a multibyte character is
    found, only count it as taking up one character in the
    destination buffer (if it has enought room).  This way,
    scan(1)'s output won't be jagged if there are any subjects,
    for example, that have multibyte characters.
    
    Added a test for this to test-scan-multibyte, and moved the
    test for an invalid multibyte sequence from test-scan to it.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 3 21:51:56 2013 -0600

    Removed empty file name .null from the historical mh-6.8.5 tree.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 2 20:07:43 2013 -0600

    Fixed decoding of header fields when they contain a character that
    can't be converted.  Added test case to test-scan.  valgrind also
    noticed that things went amiss.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 2 18:13:59 2013 -0600

    Remove test .netrc file at the end of test-pop.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 2 15:23:29 2013 -0500

    Switch to using native automake rules for cscope.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 1 22:06:33 2013 -0500

    Change TLS support to only link the TLS libraries with the programs that
    need them.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 1 02:40:30 2013 -0500

    Clean up (and hopefully improve) the autoconf iconv tests.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 1 01:50:06 2013 -0500

    Still MORE autoconf cleanup.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 1 01:27:08 2013 -0500

    Autoconf/automake cleanup

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 1 01:01:32 2013 -0500

    Document removal of --enable-nmh-debug

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 1 01:00:03 2013 -0500

    Finally deprecate --enable-nmh-debug

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Dec 30 20:17:01 2012 -0500

    Note changes to autoconf requirements here.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Dec 30 19:40:42 2012 -0500

    We are now requiring autoconf 2.68 and automake 1.13.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 30 12:19:47 2012 -0800

    Note that the minimum required version of automake is 1.12.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 30 09:38:46 2012 -0800

    Ignore top-level ar-lib file.
    
    This is detritus from the AM_PROG_AR macro I added to configure.ac.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 30 01:27:49 2012 -0800

    Add an AM_PROG_AR program check to configure.ac  This quells a
    warning when configuring on FreeBSD 10.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 27 13:53:33 2012 -0600

    Corrected fseek() emulation to fix test/bad-input/test-header.

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 27 09:51:09 2012 -0600

    Replace use of ftell() in mhparse.c:get_content() by keeping track
    of bytes read by m_getfld().

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 26 14:03:20 2012 -0600

    Tweaked last commit to test/common.sh.in to eliminate a mv.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 26 11:09:28 2012 -0600

    Added note about PATH when running "make check" on Cygwin.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 26 11:04:23 2012 -0600

    Fixed test-slocal to work with mmdfldir set to /dev/null, and on
    Cygwin, which needs the full path to tee(1).

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 26 09:52:12 2012 -0600

    Restored an explicit refill of the buffer in m_getfld() that I
    removed in the big stdio cleanup.  Its need is shown by reducing
    the message buffer size to 2048.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 25 19:25:43 2012 -0600

    Removed call to fpurge() and its platform-specific emulations
    from discard.c.  discard() is called on stdout from mhl(1) and
    msh(1) in interrupt handlers, and post(8) but only with -debug.
    tcflush() should do the purge when stdout is a terminal.  If
    it's a file or pipe, well, maybe some garbage could get flushed
    out.  And it's called on the streams that post uses to talk to
    its smtp server, so removed those calls because they no longer
    do anything.  And removed LINUX_STDIO define from configure.ac.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 25 11:57:31 2012 -0600

    Replaced all the stdio buffer access in m_getfld.c with a single call
    to fread() and then some almost straightforward buffer manipulations.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 25 11:57:02 2012 -0600

    Fixed formatting of last change to scansbr.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 23 09:27:03 2012 -0600

    Updated m_getfld() interface description.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 22 11:51:21 2012 -0600

    Changed bufsz argument of m_getfld() to be in-out instead of in.
    This allowed removal of the msg_count global, in turn allowing
    removal of sbr/m_msgdef.c

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 22 10:14:36 2012 -0600

    Changed msg_style and msg_delim to be file static to m_getfld.c
    instead of global.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 22 10:05:51 2012 -0600

    Changed type of name argument to m_getfld() from unsigned char *
    to unsigned char[NAMESZ].

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 22 09:51:25 2012 -0600

    Added m_getfld () interface description.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 11 23:24:19 2012 -0600

    Removed a few #ifndef JLR/#endif pairs because they're not needed.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 11 19:45:29 2012 -0600

    Removed some dead code, all inside #if 0's.  I tried to not remove
    anything useful, so there are a few #if 0's remaining.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Dec 10 20:54:15 2012 -0800

    Import a copy of Markus Schnalke's master's thesis: The Modern Mail Handler.
    
    (Added with Markus' permission.)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 10 23:23:44 2012 -0500

    Remove the peeking into the stdio internals inside of scan().  Hm, this
    was more complicated than I originally thought.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 10 16:01:59 2012 -0500

    The beginnings of a program to test format functions/files.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 9 21:26:49 2012 -0600

    Added release notes for releases 1.4 and 1.3 to tail of NEWS.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Dec 7 10:27:52 2012 -0500

    mhshow:  properly treat unknown multipart subtypes as "mixed"

Author: David Levine <levinedl@acm.org>
Date:   Thu Dec 6 09:46:18 2012 -0600

    Added test of -nosequence to test-pick.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Wed Dec 5 21:47:12 2012 -0500

    pick: add -nosequence command line switch

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 3 18:45:55 2012 -0600

    Note in dist, mh-profile, and repl man pages that the @ link
    is only created with -atfile.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 3 08:54:21 2012 -0600

    Fix to 25581a94c5113eb78b2baf7110408df96efc4418: always set $editalt,
    even without -atfile.

Author: Jerrad Pierce <belg4mit@pthbb.org>
Date:   Sun Dec 2 21:02:11 2012 -0600

    Added docs/contrib/vpick.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 2 09:19:21 2012 -0600

    Cleaned up sendfiles(1) man page just a bit.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Dec 2 09:05:37 2012 -0600

    Corrected the last addition to man/nmh.man.  Might be nicer to explain
    the warty truth from the off.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 1 10:53:36 2012 -0600

    Updated the TODO file.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 1 10:52:27 2012 -0600

    Copied atexit() code from fakesmtp.c to fakepop.c so that its
    pid file gets cleaned up.  Also copied the sig handler.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 30 18:42:40 2012 -0600

    Fixed formatting glitch in msh.man.

Author: Jerrad Pierce <belg4mit@pthbb.org>
Date:   Fri Nov 30 18:40:52 2012 -0600

    Added description of @folder format to nmh.man.

Merge: d6c134e b6f8e44
Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 29 15:28:12 2012 -0500

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu Nov 29 14:54:49 2012 -0500

    show: remove unused variable
    
    this should have been part of the previous removal of unreachable code.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu Nov 29 13:59:55 2012 -0500

    show:  remove unreachable code
    
    the stanza in question has been impossible to reach for some time.  i
    believe its purpose was to give a non-mh display proc full pathname
    arguments to work with.  since we've chdir'd to the folder, giving it
    message numbers (i.e., relative pathnames) is fine.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Nov 27 00:20:55 2012 -0500

    show: remove MAXARGS limit when running any of the helper procs
    
    use app_msgarg() to maintain both the msgs[] and vec[] string vectors.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Mon Nov 26 23:43:00 2012 -0500

    forw: remove MAXARGS limit when running mhlproc
    
    use app_msgarg() to maintain both the msgs[] and vec[] string vectors.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Nov 27 09:53:56 2012 -0500

    burst: eliminate use of MAXARGS
    
    use the already available app_msgarg() utility to make this easy.
    (the MAXARGS limit was highly unlikely to be exceeded, in practice.)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Nov 28 11:21:50 2012 -0500

    Update about changes to rmmproc support.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Nov 27 12:05:56 2012 -0500

    app_msgarg: de-obfuscate
    
    add some whitespace and break things up.  and add comment to reflect
    that this might be (and is) used for more than just msg parameters.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Mon Nov 26 21:00:28 2012 -0500

    Artificial argv limits.
    
    when i skimmed the code earlier, i was looking at all the uses of
    MAXARGS -- many of which are used to size local arrays.  converting
    them all to be dynamically-sized might be a fair amount of work.
    
    but looking at rmm.c, refile.c, and folder_delmsgs(), i don't think
    that issue applies.  the patch below fixes the problem, and makes
    rmmproc and refile do the right thing (well, at least, the modern
    thing).  NB: i didn't test to the limit where execvp should return
    E2BIG.
    
    as for the rest of mh -- it's certainly possible to hit the MAXARGS
    limit with other commands (show, for instance), but i suspect the
    frequency is much lower, and those, too, can be fixed as needed.
    
    paul
    
    >From 9636bc0e1697829966f51d2c301cd5d730c38c0a Mon Sep 17 00:00:00 2001
    From: Paul Fox <pgf@foxharp.boston.ma.us>
    Date: Mon, 26 Nov 2012 20:49:55 -0500
    Subject: [PATCH] rmm/refile: remove the MAXARGS limit when running rmmproc

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 26 11:25:31 2012 -0500

    Since pick now uses decode_rfc2047, we need to be sure to link in the
    iconv library (if we need it).

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 25 09:17:15 2012 -0600

    In pick(1), attempt to decode each header field as if it were
    MIME encoded.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 25 09:06:20 2012 -0600

    In pick(1), attempt to decode each header field as if it were
    MIME encoded.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Nov 25 00:49:04 2012 -0500

    A new test for the POP support in inc.  Very simple for now, but it seems
    to at least check the basic functionality.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Nov 24 23:50:31 2012 -0500

    Add support for a -nosasl switch.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 24 09:08:31 2012 -0600

    Fixed pick(1) to properly unfold multiple-line header fields
    by removing newlines instead of replacing them with spaces
    [Bug #15215].

Author: Bill Wohler <wohler@newt.com>
Date:   Sat Nov 24 01:41:06 2012 -0500

    The big news for this update is nmh 1.5.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 23 20:54:28 2012 -0500

    Fix the race condition with fakesmtp so it works without needing retries.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 23 19:59:37 2012 -0500

    Document changes to inc.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 23 19:58:34 2012 -0500

    Document the -port switch to inc.  Also, fix the -port switch to inc so
    it actually works.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 23 09:27:44 2012 -0600

    Added test-slocal.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 23 09:26:21 2012 -0600

    slocal used to support two different formats for three of
    its arguments:
    
      [address info sender]
      [-addr address] [-info data] [-sender sender]
    
    But it hasn't properly supported the first form since at
    least April 1999.  So, I removed that first form from the
    man page and the broken support from the code.  Score
    another for the test suite!

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 23 09:25:15 2012 -0600

    Added Message-Id to messages in test suite.

Author: David Levine <levinedl@acm.org>
Date:   Mon Nov 19 19:19:59 2012 -0600

    Fixed a couple of signed-unsigned comparisons.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Nov 20 00:47:24 2012 +0100

    Yozo TODA: fix for mhshow-charset- directives in .mh_profile being broken

Merge: ea28cc1 c616181
Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 15:31:21 2012 -0500

    Merge branch 'format-memory-rework'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 15:29:01 2012 -0500

    Make sure we strip off a newline from components we want to display (we
    were stripping off a newline from the wrong copy of the component).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 14:37:14 2012 -0500

    Convert repl to the new world format API.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 14:19:30 2012 -0500

    Support for the new world format API for comp and forw.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 14:18:55 2012 -0500

    Whoops, with the new world order we need to make sure we allocate memory
    for all strings in format instructions.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 13:48:16 2012 -0500

    Convert scan() to the new world format API.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 13:47:46 2012 -0500

    Change fmt_findcasecmp() to fmt_findcasecomp().  The new name is more
    consistent.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 12:23:16 2012 -0500

    Change API a bit.
    
    Rename fmt_addcomp() to fmt_addcomptext().
    Create new function fmt_addcompentry().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Nov 19 12:22:26 2012 -0500

    Remove unused variable.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 17 12:05:22 2012 -0600

    Removed leading space from lines in mhbuild and rmm man pages
    to correct formatting.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 16 23:56:26 2012 -0500

    Finished work on rcvdist to convert to new world format API.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 16 23:41:10 2012 -0500

    More (and hopefully for now) the final cleanup for mhl.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 16 23:22:23 2012 -0500

    Basic support for the new world API; seems to work!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 16 23:21:54 2012 -0500

    Add missing functions for manipulating component text.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 16 23:20:28 2012 -0500

    Fix up documentation a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 21:47:59 2012 -0500

    Partial work for mhl; still more stuff to do.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 21:47:36 2012 -0500

    Fix missing argument to fmt_free().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 15:53:24 2012 -0500

    Beginnings of conversion of code to new format interface.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 15:50:46 2012 -0500

    Update documentation to match code change.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 14:21:20 2012 -0500

    Fix a few bugs:
    
    Make sure to add a ref when adding to the hash table.
    Forgot the increment the format array inside of fmt_free().
    Marked an allocated string when doing FT_LIT.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 13:30:30 2012 -0500

    Add some comments to explain how format loop support was supposed to work.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 11:05:55 2012 -0500

    Add refcounting to struct comp.
    Move CHASH and FINDCOMP into fmt_compile.c to make private.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 09:19:36 2012 -0500

    Beginnings of the changes to fmt_compile for memory rework.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Nov 15 09:18:11 2012 -0500

    Update with new functions and comments describing them.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 14 08:47:14 2012 -0600

    Removed support for zip from sendfiles.  I added it as part of the
    sendfiles rewrite, f8baa5a34335fc0fc8ccabfabc601d0af73ab769, a few
    weeks ago.  But because sendfiles fed zip from standard input, zip
    would use Zip64 extensions.  That would require unzip 6.0 or later
    to extract, according to the zip man page.  But current MacOS X
    uses unzip 5.52, so it broke there.

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 13 22:35:57 2012 -0600

    1) Don't bother checking stderr output from sendfiles because tar's
       output format isn't standardized.
    2) Added -c to uncompress.

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 13 22:32:22 2012 -0600

    Updated scan.highlighted to feed an expression to %(zputlit).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Nov 13 22:23:02 2012 -0500

    Make sure we stick to POSIX-sed only.  I _think_ this portable enough to
    work everywhere.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Nov 13 18:53:55 2012 -0500

    Change %(putlit) and %(zputlit) to take TF_EXPR instead of TF_STR.  This
    was originally my fault; TF_STR means a string literal as an argument, but
    the documentation (and the code) really means for it to take an expression.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 9 15:02:53 2012 -0600

    Updated test-scan to correspond to commit
    112b90c43391644f24559f5aa58752214de0e8a5.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Nov 9 14:53:21 2012 -0600

    Added ml script to docs/contrib.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 9 14:39:59 2012 -0600

    Refer to just "root" in slocal man page.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Nov 9 14:37:59 2012 -0600

    Added ml script to docs/contrib.

Author: David Levine <levinedl@acm.org>
Date:   Wed Nov 7 16:48:05 2012 -0600

    In scan.highlighted, set black background on the colorized lines
    to enhance visibility if the user has a light background.

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 6 18:43:42 2012 -0600

    Removed note from BUGS section of several man pages saying
    that command line arguments must be quoted for protection from
    the shell.  That's not a bug, and has nothing to do with nmh.
    
    Changed "back-quoted" to "backquoted" for consistency in a few
    man pages.

Author: David Levine <levinedl@acm.org>
Date:   Tue Nov 6 18:42:45 2012 -0600

    Fixed typo in mhn.man.

Author: David Levine <levinedl@acm.org>
Date:   Mon Nov 5 13:10:16 2012 -0600

    Fixed typo in mh-format man page description of zputlit.

Author: David Levine <levinedl@acm.org>
Date:   Mon Nov 5 11:25:33 2012 -0600

    Added application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    for .xlsx files.

Author: David Levine <levinedl@acm.org>
Date:   Sun Nov 4 20:58:47 2012 -0600

    Added format support for zputlit function escape.  It requires
    that the str contents have zero display width, such as for
    terminal escape sequences.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Nov 3 19:22:49 2012 -0700

    nmh.7 isn't the place to advise people how to change their $PATH.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 3 08:13:34 2012 -0500

    Fixed comparison to be signed instead of unsigned.

Author: David Levine <levinedl@acm.org>
Date:   Sat Nov 3 07:37:40 2012 -0500

    Added description of "all" range abbreviation.

Author: David Levine <levinedl@acm.org>
Date:   Fri Nov 2 22:45:07 2012 -0500

    Added argument to fmt_scan() to specify the buffer size.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 28 22:35:45 2012 -0500

    Updated date on sortm(1) man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 28 13:21:46 2012 -0500

    Updated build-nmh-cygwin for release of Cygwin nmh 1.5-2.  To use:
    1) Change VERSION to 1.5-2.
    2) make dist
    3) Symlink build-nmh-cygwin to nmh-1.5-2 and run that with "all".

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 27 12:36:29 2012 -0500

    Fixed typo reported by Ralph.
    
    I also should have mentioned in the commit message for
    sortm(1) -check/-nocheck that Norm proposed their addition.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 27 12:18:45 2012 -0500

    In test-post-common.sh and test-mhmail, wait for fakesmtp to start
    for up to 40 seconds.  10 seconds wasn't long enough when I leaned
    on my machine.  Also, print out a message if exiting due to that
    timeout.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 27 12:14:01 2012 -0500

    Added -check/-nocheck switches to sortm(1).  Also removed obsolete
    note in the BUGS portion of its man page about how it sorts messages
    that are missing or have an invalid Date: field.  It actually sorts
    them using their file modification times.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 23 19:18:20 2012 -0500

    Fixed typo in Cygwin section of MACHINES.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 23 19:16:56 2012 -0500

    Cyrus SASL 2.1.25 introduced the sasl_callback_ft prototype,
    which has an explicit void parameter list, according to best
    practice.  So we need to cast to avoid compile warnings.
    And provide a sasl_callback_ft prototype for earlier versions.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 21 12:39:43 2012 -0700

    Clarify that manpage references use the .IR macro everywhere.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 21 12:38:40 2012 -0700

    Fix one last missed %nmhdate% substitution.
    
    Remove empty CONTEXT section.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 21 12:37:49 2012 -0700

    Remove %nmhdate% substitution from man.sed.  It's no longer used.

Merge: 9dedfb1 cbaaccc
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Oct 21 12:33:21 2012 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 21 12:02:40 2012 -0500

    Corrected date in sendfiles.man

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 21 09:52:46 2012 -0500

    Updated sendfiles(1):
    1) Added -from switch.
    2) sendfiles will now construct a From address, using the sender's
       localmbox, if the user does not specify it with -from or the PERSON
       environment variable.
    3) Added support for bzip2, lzma, and zip compression methods.  Added
       a new switch to select the method:  -compress <method>.  Because
       support for the old -compress with was broken (it did not use
       -c with compress/uncompress) and it was undocumented, it has
       been replaced.  Retained old -gzip and -none switches for backward
       compatibility even though they were undocumented.
    4) Allow the recipient argument to be preceded by the optional -to
       switch iff the subject argument is preceded by the optional
       -subject switch.  Allow the delay value to be specified using the
       optional -delay switch.
    5) Added -version and -help switches.
    6) All switches can now be abbreviated.
    
    /etc/sendfiles no longer needs to be configured.  It's easier to
    support make distcheck by having it figure out its path at runtime.
    
    In viamail, set postproc to post in the same directory as itself, if
    invoked with a full path.  This allows it to support make distcheck.
    viamail does not read the profile so its postproc is otherwise
    hard-coded at compile time.
    
    Added test-sendfiles.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Oct 20 16:51:01 2012 -0700

    Update the manpage style guide.

Merge: d1cb667 a69289c
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Oct 20 15:02:16 2012 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Oct 20 14:42:32 2012 -0700

    Rationalize .TH manpage macro invocations.
    
    This patch addresses the following issues with .TH macro usage:
    
      .TH COMP %manext1% "%nmhdate%" MH.6.8 [%nmhverion%]
    
    1) "MH.6.8" is no longer relevant.
    
    2) %nmhdate% is a hardwired value that only gets updated along with
       %nmhversion% and is therefore redundant.
    
    This patch nukes the MH.6.8 tag, and replaces the hardwired
    %nmhdate% field with the latest date the associated manpage has
    been updated.  I pulled the dates - as best I could - from the
    git logs.
    
    Going forward, it is incumbent on developers to update the
    manpage date stamps as they update the pages themselves.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 20 16:40:06 2012 -0500

    Cleaned up a couple of shell variables.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 20 16:39:25 2012 -0500

    Fixed the trap to work with posh.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 20 10:41:43 2012 -0500

    Fixed printf's in test suite.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 20 07:44:34 2012 -0500

    Fixed the trap in mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Fri Oct 19 14:23:17 2012 -0500

    Cleaned up uip/mhmail.  Added chmod +x of spost in configure.ac.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 20:18:03 2012 -0700

    Manpage cross-reference cleanups:  convert '.BR cmd (section)' to '.IR cmd (section)'
    throughout the text.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 19:48:02 2012 -0700

    A couple more manpage typo cleanups.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 19:45:38 2012 -0700

    Typo.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 19:39:37 2012 -0700

    Manpage SEE ALSO cleanup.
    
    Convert to '.IR cmd (section)' format for manpage references.
    
    Fixed a couple of inline '.BR cmd (section)' instances as well.
    
    Removed HISTORY from new(1); this stuff doesn't belong in manpages.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 18:20:18 2012 -0700

    Elide spurious empty lines in manpage source files.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 17:29:30 2012 -0700

    Ensure the .TH macro is the first line of the manpage source files. Some
    versions of man(1) get upset if .TH doesn't come first.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 17:08:17 2012 -0700

    Update the manpage authors guide, primarily for .TP, but also fixes
    a couple of other incorrect style recommendations.
    
    These updates are incomplete ... more to follow.

Merge: 956ddac e2d655d
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 16:40:17 2012 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 16:32:48 2012 -0700

    Incorporate Paul Fox's changes that group the commands by functional groups.
    
    Move the "generated code" warning comment below the .TH macro to work around some buggy
    man(1) implementations.
    
    Removed all the .RS/.RE indenting and replaced the use of .fc and tab indenting
    with .TP macros.
    
    Move the BUGS section below SEE ALSO to follow the usual section ordering convention.
    
    Fixed up some italic vs. bold usage.
    
    Use '.IR foo (section)' in the SEE ALSO section.
    
    Removed some irrelevant text, along with a small amount of word-smithing.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 16 14:53:04 2012 -0500

    Unset PAGER in test/common.sh so that make distcheck passes.

Merge: a7b486a 342e355
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 12:39:59 2012 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 12:36:30 2012 -0700

    Add new make targets 'man' and 'cleanman' to build and clean just
    the man/ sub-directory.  I also removed the '@' supressors for the
    internal manpage targets.  There's no net benefit to hiding this stuff.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 16 13:27:32 2012 -0500

    Cleaned up some printf's.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 16 13:23:43 2012 -0500

    Updated sendfiles(1) man page to reflect upcoming code update.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Oct 16 11:12:27 2012 -0700

    Some version of man(1) barf if the first line of the manpage is not
    the .TH macro.  Re-order the generated mh-chart.man so that the 'auto-generated'
    comment appears after the .TH macro.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Oct 15 17:08:29 2012 -0700

    Slightly reformat the FINDCOMP macro to quell a clang warning about
    an empty for()-loop body.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Oct 15 17:06:40 2012 -0700

    automake 1.12 generates some (apparently) harmless warnings, but the build
    fails becuase we invoke automake with -Werror.  Remove -Werror from the
    automake options until the autotools gurus can patch things up.

Merge: 5548c9a 47dca82
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Oct 15 15:22:39 2012 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Oct 15 15:21:48 2012 -0700

    Allow $PAGER to override the compiled-in default pager command.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 14 21:13:05 2012 -0500

    Removed unused function seek_home().

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 14 19:27:17 2012 -0500

    The first alias contained in a blind list is now expanded.  The
    mh-alias(5) man page was updated to show that blind lists must not
    be terminated with, or contain, a trailing semicolon [Bug #15604].

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 14 19:02:43 2012 -0500

    Changed error message to say that blind lists aren't
    compatible with sendmail/pipe.

Author: Ralph Corderoy <ralph@inputplus.co.uk>
Date:   Sun Oct 14 18:59:06 2012 -0500

    Fixed "mark -sequence cur -delete all" to work for cur as
    well as any other sequence, to allow clearing of the current
    message indication.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 13 18:00:39 2012 -0500

    Don't allow blind aliases with sendmail/pipe mts.  Before this change,
    they would be fed to sendmail, which would reject them anyway.  This
    change catches that in post and presents a more helpful error message
    to the user (at the "What now?" prompt, if used).
    
    A possible future enhancement might be, with sendmail/pipe, to expand
    out blind aliases and put the addresses in Bcc: header fields, but
    then the recipients would get messages with the Blind-Carbon-Copy
    indication.  (Note that Dcc isn't supported with sendmail/pipe,
    either.)
    
    Just for information:  old spost fed the addresses of blind aliases to
    sendmail, making them visible to all recipients.  Oops.

Author: David Levine <levinedl@acm.org>
Date:   Sat Oct 13 09:56:08 2012 -0500

    Removed potential buffer overflow in ali.c by replacing array of
    hard-coded maximum size with dynamically-sized array.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 11 23:00:43 2012 -0500

    Fixed sortm(1) verbose message and man page to reflect that with
    -limit 0, the sort is only on the text field.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 11 21:48:42 2012 -0500

    Added -noall/-all switches to sortm(1).

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 7 22:55:33 2012 -0500

    Fixed typo in mh-alias man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 7 11:25:01 2012 -0500

    Added newline to "send" that's piped to dist.  Old 2.6 Linux
    needs it.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 7 10:31:12 2012 -0500

    Added test-anno, test-dist, test-msgchk, and test-rcvtty.

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 7 10:27:31 2012 -0500

    Changed nmh-fcc to fcc.  See etc/forwcomps.  Another catch by the
    test suite!

Author: David Levine <levinedl@acm.org>
Date:   Sun Oct 7 10:18:54 2012 -0500

    Updates to test/common.sh.in:
    1) Added function check_for_hard_links.  Moved this code out of
       test-refile so that other tests can use it.
    2) Added mmdfldir and mmdflfil settings to the mts.conf for tests, to
       support test-msgchk.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 23 09:02:18 2012 -0500

    Removed double quotes around case arguments in test scripts.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 23 09:00:11 2012 -0500

    When determining the path of the script inside mhmail, handle case
    where $0 is just the script name, without any directory.  Bourne
    shell does that if the script is found using PATH.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 18 22:18:21 2012 -0500

    Disabled echo of rm -f lines in Makefile to quiet builds and
    installs a bit.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 18 22:00:00 2012 -0500

    Replaced spost with script that exec's post -mts sendmail/pipe.

Author: David Levine <levinedl@acm.org>
Date:   Mon Sep 17 19:42:27 2012 -0500

    Removed mhmail.c because it was no longer needed and could get in
    the way of make if its timestamp was newer than that of the mhmail
    script.  Thanks to Johan Viklund for reporting this.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 16 23:12:19 2012 -0500

    For the mhstore -clobber test, cd to the Mail subdirectory so that
    the stored files will get cleaned up by the exit trap in common.sh.

Merge: b471d7a 2b7b705
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Sep 16 14:39:27 2012 -0700

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Sep 16 14:38:54 2012 -0700

    Fix a comment typo.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 16 13:54:23 2012 -0500

    With mhstore -clobber auto/suffix, when looking for a new filename,
    actually open(2) the file with O_CREAT | O_EXCL to avoid the race
    condition when figuring out the filename first and opening it later.

Author: David Levine <levinedl@acm.org>
Date:   Sun Sep 16 12:45:12 2012 -0500

    Added "-d --" to invocation of ls when figuring out what files
    to attach in whatnow.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 15 21:18:38 2012 -0500

    Fixed description of n with mhstore -clobber auto/suffix.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 15 14:07:07 2012 -0500

    Clarified description of clobber -auto/-suffix per Ralph's suggestion.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 15 13:40:50 2012 -0500

    Added -clobber switch to mhstore(1) [Bug #11160].

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 15 13:14:18 2012 -0500

    Changed ; to && in shell command, per Ralph's suggestion.  There
    were two remaining places that still used ";".  Though they
    weren't of consequence, it's the right thing to do.

Author: David Levine <levinedl@acm.org>
Date:   Sat Sep 15 08:24:37 2012 -0500

    Allow whatnow to accept "l" as an abbreviation for "list", instead of
    requiring at lest "li".

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 14 20:46:02 2012 -0500

    Filter out all Nmh-* headers in post(1).  Do that silently for empty
    ones (no header body), and warn about non-empty ones.

Author: David Levine <levinedl@acm.org>
Date:   Fri Sep 14 17:05:24 2012 -0500

    Added check in send(1) of attach (default Nmh-Attachment) headers to
    ensure that only plain files are attached.  Otherwise, it is a fatal
    error.  Note that whatnow's attach will continue to allow attachment
    of directories because it expands those out to their contents.  It
    doesn't check what the contents are, though.  That's why we needed to
    add this check.
    
    Also added a check to skip attach headers that are empty so that
    they can be put in drafts, per Norm's request.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 11 08:44:43 2012 -0500

    Updated docs/README-ATTACHMENTS, mainly to reflect that no setup is
    required with nmh 1.5 and beyond.  And the user documentation is in
    the send(1) and whatnow(1) man pages.

Author: David Levine <levinedl@acm.org>
Date:   Tue Sep 11 08:42:58 2012 -0500

    Added references to the whatnow(1) man page description of its
    attach support to the nmh(7) and send(1) man pages.

Author: Eric Schnoebelen <eric@cirr.com>
Date:   Fri Aug 31 09:49:37 2012 -0400

    Move chdir() call so -recurse option works again.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Aug 31 09:46:03 2012 -0400

    New test for folder -recurse

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Aug 23 10:08:59 2012 -0400

    Change the Bcc: code in post so it includes the From: header from the original
    message.

Author: David Levine <levinedl@acm.org>
Date:   Fri Aug 17 19:31:22 2012 -0500

    Cleaned up message_id().

Author: David Levine <levinedl@acm.org>
Date:   Fri Aug 17 19:29:49 2012 -0500

    Removed chmod of bccfil from make_bcc_file().  It was done before
    bccfil was defined so it had no useful effect.  m_mktemp2() sets
    the umask so it wasn't necessary, anyway.

Author: David Levine <levinedl@acm.org>
Date:   Fri Aug 10 05:20:25 2012 -0500

    Cleaned up test-utf8-body a bit.

Author: David Levine <levinedl@acm.org>
Date:   Fri Aug 10 03:33:38 2012 -0500

    Added mhbuild: -nocontentid to profile used for tests, to simplify
    output checking.

Author: David Levine <levinedl@acm.org>
Date:   Thu Aug 9 17:13:38 2012 -0500

    Added default_content_type argument to
    make_mime_composition_file_entry().  It's used only to force message
    bodies to always use text/plain content type, which allows mhbuild to
    do the right thing with them.  Thanks to Steve Rader for reporting
    that UTF-8 characters in message bodies had previously caused them to
    be encoded as octet-streams (with attachments managed by send), and to
    Ken for coming up with the fix.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jul 23 18:17:11 2012 -0500

    Removed nmh-from condition from rcvdistcomps.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 22 20:19:19 2012 -0500

    Fixed explanation of why the unset SHELL test is uselessif /bin/sh is bash.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 22 12:04:47 2012 -0500

    Reworked test-rcvdist so that it sees the output of post.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 22 12:03:36 2012 -0500

    Added test of whatnow with SHELL unset to test-ls, though it doesn't
    reveal anything on Linux, at least.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Sun Jul 22 12:01:00 2012 -0500

    whatnow cooks up strings for executing external commands, and then
    feeds these strings to popen or system.  These command strings rely on
    $SHELL being present - and if that is not the case, then we get weird
    error messages ("sh: -c not found" or similar).  (Because both
    system() and popen() start up fine with the std shell, but their arg
    string to parse doesn't include a cmdname/path before the -c.)
    
    As far as i understand the POSIX standard, SHELL is recommended but
    not actually mandatory, so i think it would be good to handle this a
    bit more robustly: by setting SHELL to /bin/sh if not present.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 21 20:00:14 2012 -0500

    Tidied up for loop in message_id().

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 21 19:45:48 2012 -0500

    With -messageid random, make the part after the @ more resemble a
    hostname by inserting a couple of dots, and using - and _ instead of
    + and /.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 21 16:17:41 2012 -0500

    Added -messageid switch to send(1) and post(8).  This allows selection
    of the style to use for generated Message-ID and Content-ID header
    fields.  The default localname style is pid.time@localname, where time
    is in seconds, and matches previous behavior.  The random style
    replaces the localname with some (pseudo)random bytes and uses
    microsecond-resolution time.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 21 12:42:14 2012 -0500

    Here's a better test of Resent-From: in test-rcvdist:  use the user's
    actual localmbox.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 21 12:19:18 2012 -0500

    Added check to notpost for presence of Resent-From:.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 21 12:01:41 2012 -0500

    If post or send fail, exit with their exit status.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jul 21 11:58:57 2012 -0500

    Removed #ifndef RAND/#endif that no longer had any effect.

Author: Harvey Eneman <harvey.eneman@oracle.com>
Date:   Sat Jul 21 11:57:29 2012 -0500

    Fixed the default rcvdistcomps and rcvdistcomps.outbox to to insert
    the Resent-From: header.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 15 13:35:42 2012 -0500

    Removed debugging statement and added comments to the duplicate check
    of readconfig ().

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 11 21:37:39 2012 -0500

    Added -mts switch to post, send, and whom.  Replaced test-sendmail-pipe
    with test-mts.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jul 9 22:49:59 2012 -0500

    Removed -m from sendmail invocation with sendmail/pipe.  Modern
    sendmail and postfix, at least, ignore it.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jul 9 21:25:36 2012 -0500

    Correction to previous commit, 704bdde497da69854846d51d86c440fc980c5489,
    to restore the behavior when using SMTP and with any blind addresses.
    Don't quit the SMTP session between sending the message and bcc's, but
    instead reset it.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jul 9 19:47:47 2012 -0500

    Removed use of the ONEX sendmail verb.  It is obsolete,
    according to http://smtpfilter.sourceforge.net/esmtp.html.
    And was removed over 10 years ago from sendmail (8.12),
    according to http://www.irbs.net/internet/postfix/0111/2237.html.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jul 9 19:15:13 2012 -0500

    Renamed "sendmail" mts method to "sendmail/smtp", allowing "sendmail"
    as an alias.  Renamed "pipe" to "sendmail/pipe".

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 8 23:17:04 2012 -0500

    spost(8) has been merged into post(8).  Its functionality is
    enabled by selecting the "pipe" mail transport method in
    etc/mts.conf, which in turn can be configured using
    --with-mts=pipe.  The spost -noalias, -backup/-nobackup,
    -push/-nopush, and -remove/-noremove switches are not
    supported by post.  Note that spost did not support -whom or
    Dcc, and neither does post when using mts: pipe.  spost is
    now deprecated.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 4 09:57:49 2012 -0500

    Added test-packf.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jul 4 07:27:15 2012 -0500

    test-prompter:  removed an unused input that was piped to the
    program because it sometimes caused printf to complain about a
    write error.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jul 3 20:50:23 2012 -0500

    Filtered out "From " lines when comparing mboxes because their
    timestamps sometimes differed by a second.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 1 20:20:42 2012 -0500

    Updated pending-release-notes.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 1 19:24:36 2012 -0500

    Rather than fix the reported bug, backslash in commented lines
    in alias file is interpreted, I documented that behavior in
    the mh-format man page and etc/MailAliases.  This behavior is
    unfortunate, but it is a result of the implementation of nmh's
    vfgets() function.  That function is used by other callers
    that expect the behavior.  [Bug #23553]

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 1 19:20:22 2012 -0500

    Added test-dp, test-fmtdump, test-prompter, test-rcvstore,
    test-rcvpack, and test-rcvdist.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 1 16:44:43 2012 -0500

    Applied patch #5571, Propagate Mail-Followup-To.
    
    Also clarified man page:  replgroupcomps won't be used if you
    specify another forms file on the command line or in your profile.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 1 10:21:22 2012 -0500

    Added note that mhmail does not read context file itself.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 1 10:09:06 2012 -0500

    Removed unused #ifdef NRTC and reference to its contents in the
    rcvdist man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 1 09:14:27 2012 -0500

    Updated man page descriptions of Msg-Protect:  it defaults to 0600 and
    is not supported on some filesystems, such as FAT32.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jul 1 08:32:18 2012 -0500

    Wrapped some shell variables with quotes so the tests have a chance of
    running if the current directory has a character such as a space in
    it.  Though the tests themselves need the same help for them to work.
    Also, added mention of Heirloom shell to test/README.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 28 21:59:47 2012 -0500

    Replaced utilities that operate on pbm files with those that operate
    on pnm files, per the bug report referenced below (from Dec 2005!).
    And changed the mhshow-show-image/x-pbm mime type to
    mhshow-show-image/x-pnm.  [Bug #15152]

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 28 21:19:06 2012 -0500

    Removed BUGS section at end of rcvstore(1) man page.  It
    said to not use rcvstore if you use the "Unseen-Sequence"
    profile entry because the context (sequences file, actually)
    could be corrupted if multiple nmh processes tried to update
    it simultaneously.  The locking added by commit
    82a21b6f3cddf8ab048dcb02c080ea9797c73c5a serialized that
    simultaneous update. [Bug #4361]

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 28 21:12:13 2012 -0500

    Removed the one remaining unused #ifdef ISI.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 28 21:11:07 2012 -0500

    Simplified getm() a bit, removing a goto.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 28 20:59:23 2012 -0500

    Fixed ismymbox() to look at Local-Mailbox as well as
    Alternate-Mailboxes.  The problem was that when an alternate
    mailbox was added to the list, the node for the local
    mailbox information was lost.  Added check to test-mymbox.
    Added test-repl, because this is where it was first noticed.
    Also enhanced output with MHWDEBUG set to show the entire
    list, not just each alternate mailbox as it is added to the
    list.  [Bug #36635].

Author: David Levine <levinedl@acm.org>
Date:   Mon Jun 25 08:42:14 2012 -0500

    Deprecated mhtest.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jun 25 08:21:03 2012 -0500

    Removed unused UUCPDIR and UUCPFIL #defines.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 24 22:26:27 2012 -0500

    Added test-sortm.  Also clarified some details in the sortm man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 24 19:03:05 2012 -0500

    Added status to conflict(8) man page to note that it is deprecated.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 23 09:55:01 2012 -0500

    Allow optional -to in front of To: addresses with mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 23 08:04:08 2012 -0500

    Added checks for missing mandatory arguments to mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jun 22 10:45:33 2012 -0500

    Changed -header-field to -headerfield.  And refer to its argument
    as name:value instead of name:body, to avoid the obvious confusion.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Thu Jun 21 11:11:40 2012 -0700

    Default to flock() locking on OpenBSD and Darwin.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 20 19:19:31 2012 -0500

    Refined 48959daf724bb10802ca489654035f69e701efc0 by setting up a
    LN variable in the Makefile that can be used to override the
    link command at install time.  For example, on Cygwin, LN will be
    configured to cp.  If installing on an NTFS filesystem, the user
    could install with make LN=ln to use ln instead of cp.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 20 19:16:18 2012 -0500

    Truncated -help test in test-whom because its output depends on whether
    sasl support was configured in.  It's not configured in by distcheck.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 20 09:09:24 2012 -0500

    For whatever reason, gcov got fooled by test-whom until a test of
    -help was added.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 20 08:13:46 2012 -0500

    Quoted a bunch of shell variables in build_nmh.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 19 21:30:54 2012 -0500

    Added test-ali.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 19 20:36:14 2012 -0500

    Added printout to build_nmh to report number of tests not run.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 19 20:15:18 2012 -0500

    Added a few clarifications and more DEFAULTS to mhmail(1) man page.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 19 19:54:04 2012 -0500

    Refinement to e30560d793ff5bc704dadc2eab9d31100ad4636b:  don't
    warn about profile components that are null, e.g.,
    
    : This could be a comment.
    
    or just a hash, e.g.,

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 19 10:29:47 2012 -0500

    Changed permissions from 0755 to 0644 on a few .c files.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 19 10:25:54 2012 -0500

    Forget to add test/mhmail/attachment.txt to last commit.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 19 10:13:28 2012 -0500

    Added -attach switch to mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jun 18 21:49:01 2012 -0500

    Moved test-mhmail to its own test directory.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jun 18 21:30:58 2012 -0500

    Added mention of checkbashims script to test/README.  And fixed
    false positive that it reported for test-mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jun 18 21:28:26 2012 -0500

    Added -header-field switch to mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jun 18 18:25:10 2012 -0500

    Added Jerrad Pierce's suggestion to use -editor prompter.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 17 22:56:23 2012 -0500

    Removed possible tmp file leak.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 17 22:51:51 2012 -0500

    mhmail now supports -profile -resend.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 17 20:59:16 2012 -0500

    Here's a better fix that e194fdf11df779597e19039a67454e9b42a77ef0
    for support `mhparam libdir` under "make distcheck":  explicitly
    set libdir in the profile.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 17 15:25:28 2012 -0500

    Replaced mhmail -debug switch with -nosend, and added -send.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 17 14:35:14 2012 -0500

    Added -resent support to mhmail.  It doesn't work with -profile, though.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 16 10:56:53 2012 -0500

    Fixed warning introduced by last change to man/mhmail.man.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 16 10:08:18 2012 -0500

    Removed extra [ from synopsis.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 16 09:24:29 2012 -0500

    Replaced compiled mhmail with script that was formerly named mhmail.in.
    Added test-mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 16 09:16:18 2012 -0500

    Reworked to be as compatible as possible with compiled mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jun 15 21:00:28 2012 -0500

    Added mention of mhmail as a message composition utility.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jun 15 20:53:03 2012 -0500

    Added nmh lib directory to PATH in setup_test ().  This is necessary
    with "make distcheck" for scripts to access the lib directory that it
    installs for testing.  (The distcheck target does not configure them;
    they retain their build configuration.)  If we ever add a test for
    etc/sendfiles, we'll have to deal with its configured %libdir%.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 14 23:28:05 2012 -0500

    Fixed temporary autoconf workaround by hard-coding nmhbindir.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 14 23:17:33 2012 -0500

    Add trailing newline to body, if needed.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jun 14 10:36:09 2012 -0400

    Fix test for changes to mhparam.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jun 14 10:33:21 2012 -0400

    Make the base64 encoder endian-agnostic, and remove the function
    set_endian() since it's no longer needed.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 14 09:10:23 2012 -0500

    Documented mhparam -debug option.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 14 08:54:35 2012 -0500

    If heirloom shell is in /usr/lib/heirloom/5bin/sh, use it to run tests.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 14 08:35:14 2012 -0500

    If post/send fail, save the draft in dead.letter, the same as
    compiled mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 14 08:30:30 2012 -0500

    Added etcdir and libdir.  And added mention that component name
    matching is case-insensitive.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Thu Jun 14 07:31:40 2012 -0500

    The base64-decoder doesn't work on 64-bit big-endian architectures:
    mhstore and co. write files of the correct length but which consist
    only of \0s.
    
    The culprit is uip/mhparse.c, which contains a pretty ugly base64
    decoder (in two places). that thing allocates a "long int" as a
    container for the 24 bits that you get from four base-64 chars. the
    container is then accessed both as a single entity and as a byte
    array, which naturally depends on how wide the long int is and in what
    order things end up in there.
    
    The code distinguishes between big- and little-endian systems but
    wrongly assumes that sizeof(long int) == 4, which isn't universally
    true (quel surprise...).
    
    The attached patch fixes the issue, but in the long run we should
    insist on posix and use a64l().

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 13 23:12:22 2012 -0500

    Support empty message body in mhmail.in the same way as in mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 13 22:59:05 2012 -0500

    Added support to mhmail.in to read message from stdin.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 13 22:32:46 2012 -0500

    Removed newline before generated From:.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 13 22:19:19 2012 -0500

    Added mhmail.in. start of a replacement for compiled mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 13 22:18:43 2012 -0500

    Removed unnecessary comment.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 13 22:16:46 2012 -0500

    Removed another faceproc relic.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 13 08:55:19 2012 -0500

    Added BUGS section to mh-tailor man file to note that failure to open
    mts.conf is silently ignored..  And added to its DEFAULTS section.
    Also changed to consistent use of "mail transport configuration file".

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 12 21:36:16 2012 -0500

    Generate a From: header, using localmbox, if the user doesn't provide
    a -from when sending with mhmail.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jun 12 21:16:34 2012 -0500

    Fixed the export of LC_ALL so that it work with old Bourne shell.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Tue Jun 12 21:06:44 2012 -0500

    Occasionally the post tests attempt to talk to fakesmtp before that
    has completly started up.  Inserted a check between starting up
    fakesmtp and talking to it, and delay and retry if necessary, to
    avoid that scenario.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Tue Jun 12 19:11:57 2012 -0500

    Changed remaining uses of MAXPATHLEN to PATH_MAX.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jun 11 22:02:55 2012 -0500

    Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup
    setup version 2.763, because it disables some features in the
    system system header files.  Added configure check, when using gcc,
    for -ansi (and don't use -pedantic without it).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jun 11 00:26:21 2012 -0400

    Fix typo in gpg command and handle the .sig file properly.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 10 22:50:24 2012 -0500

    Replaced run-time detection of hard-link support with compile- time
    detection.  This way, Cygwin packages can be built on NTFS or other
    filesystems but still bee installed on FAT file systems, which do not
    support hard links.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 10 09:58:52 2012 -0500

    Added section 7 to man pages.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 10 09:53:48 2012 -0500

    Updates to SPECS/build-nmh-cygwin:
    1) Configure with sysconfdir=/etc/nmh so to minimize pollution of /etc.
    2) Disabled install_docs because nmh's make install takes care of it.
       Though it installs in /usr/share/doc/nmh/ instead of
       /usr/share/doc/nmh-<version>/, that seems to be more common on Cygwin
       than using the -<version>.
    3) Added comments (also added to MACHINES) about the packages that would
       be needed to configure with --with-cyrus-sasl and --with-tls.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jun 10 09:51:03 2012 -0500

    Moved nmh and mh-chart man pages from section 1 to section 7.
    Alexander Zangerl noted that Debian already did this, and it
    seems appropriate.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Sun Jun 10 09:20:08 2012 -0500

    Corrected install-mh man page to show that it is installed in section 1, not 8.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Sun Jun 10 09:19:20 2012 -0500

    Ensure that writes to /dev/tty succeed to determine if it is writeable.

Author: Alexander Zangerl <exmh@bin.snafu.priv.at>
Date:   Sun Jun 10 09:18:22 2012 -0500

    Use cat for moreproc in testsuite in case it is run without tty.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jun 9 09:31:19 2012 -0500

    Added warning to all nmh programs for multiple profile entries for the
    same component.  Until now, all but the first were silently ignored.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jun 8 20:59:32 2012 -0500

    Added INSTALL, NEWS, and README to dist_doc_DATA so that they get installed.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 7 22:07:54 2012 -0500

    Changed repl and dist default to -noatfile.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jun 7 11:07:00 2012 -0500

    Removed docs/pending-release-notes-tmp, which was added by mistake.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 6 22:41:29 2012 -0500

    Removed faceproc support, deprecated in nmh 1.5.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 6 22:02:21 2012 -0500

    Removed the following environment variables, deprecated in nmh 1.5:
      MHPOPDEBUG (use -snoop command line switch instead)
      MM_NOASK (use -nolist and -nopause command line switches instead)
      NOMHNPROC (use -nocheckmime command line switch instead)

Author: David Levine <levinedl@acm.org>
Date:   Wed Jun 6 21:08:53 2012 -0500

    Changed exit status of each nmh command's -version and -help switches
    from 1 to 0.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jun 3 15:38:39 2012 -0400

    Fix incorrect documentation about the install process for files in 'etc'.
    Noted by Norm Shapiro.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jun 3 15:29:27 2012 -0400

    One more lowercase for the content-transfer-encoding.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jun 1 10:25:37 2012 -0400

    Fix off-by-one error, noticed by Ralph Corderoy.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Thu May 31 15:15:36 2012 -0400

    Implement the following changes:
    
    - Special #on/#off/#pop directives to control the MIME directive
      processing state
    - A flag (-directives) to control whether or not mhbuild will honor MIME
      directives by default.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu May 31 14:56:47 2012 -0400

    Convert the content-transfer-encoding to lower-case always.

Author: David Levine <levinedl@acm.org>
Date:   Tue May 29 07:57:30 2012 -0500

    Unset MM_CHARSET so it doesn't interfere with test-scan-multibyte.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat May 26 01:55:08 2012 -0400

    Support for handling multibyte encodings in cpstripped(), which
    means that multibyte character encodings should work correctly
    on all systems which support the POSIX wide character functions.

Author: David Levine <levinedl@acm.org>
Date:   Wed May 23 22:16:14 2012 -0500

    Update the current folder and current message and synchronize
    sequences before showing the messages instead of after.  This
    way, the context will be updated even if the user exists while
    viewing the messages.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 21 20:05:19 2012 -0500

    comp and dist cannot take multiple message arguments.  mhbuild does
    not set context.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 21 20:03:57 2012 -0500

    Changed wording to say that the last message selected (not necessarily
    shown) will become the current message.  That's consistent with the
    mhlist and mhstore man pages.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu May 17 08:34:29 2012 -0400

    Minor changes to replyfilter to make it compatible with older versions of Perl.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 12 11:02:21 2012 -0500

    Used this version, renamed nmh-1.5-1.sh, in application for Cygwin package.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 12 09:30:27 2012 -0500

    Allow selection of locking type.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 12 07:44:16 2012 -0500

    SIGNATURE/Local-Mailbox are not used by post, but just by front
    ends (comp, forw, repl, etc.) that read the profile.

Author: David Levine <levinedl@acm.org>
Date:   Thu May 10 21:23:09 2012 -0500

    Don't test with sendmail because it would really send the mail.  If
    configured to use sendmail, change the mts.conf used by the test suite
    to use smtp instead.

Author: David Levine <levinedl@acm.org>
Date:   Wed May 9 22:05:28 2012 -0500

    Wrap local part (username) of address with double quotes if needed.

Author: David Levine <levinedl@acm.org>
Date:   Tue May 8 22:19:29 2012 -0500

    Skip the Cygwin package (.bz2) file when searching for the input (.gz) file.

Author: David Levine <levinedl@acm.org>
Date:   Tue May 8 20:29:57 2012 -0500

    Added test script constructs to avoid.

Author: David Levine <levinedl@acm.org>
Date:   Tue May 8 10:16:46 2012 -0500

    Fixed patch section of prep().

Author: David Levine <levinedl@acm.org>
Date:   Tue May 8 10:16:17 2012 -0500

    Added MACHINES to EXTRA_DIST so that it gets put in the distribution.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 7 18:35:28 2012 -0500

    Removed locking type selection from build_nmh now that it's in configure.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 7 18:33:18 2012 -0500

    build-nmh-cygwin no longer needs to DISABLE_SETGID_MAIL now that configure
    uses fcntl on Cygwin.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 7 17:25:43 2012 -0500

    Added -ansi -pedantic with gcc.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 7 16:45:32 2012 -0500

    Added $(TESTS_SHELL) at end of TESTS_ENVIRONMENT.  This lets the
    user run the tests using a shell other than the default /bin/sh
    by using, e.g., make check TESTS_SHELL=/bin/bash.  Thanks to
    Tom Lane <tgl@sss.pgh.pa.us> for suggesting this.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 7 16:35:16 2012 -0500

    Fixed some more problems caught by gcc -ansi -pedantic.

Author: Tom Lane <tgl@sss.pgh.pa.us>
Date:   Mon May 7 16:14:37 2012 -0500

    Fixed places in the code relying the C99-ism of declarations in the
    midst of a code block.

Author: David Levine <levinedl@acm.org>
Date:   Mon May 7 08:57:38 2012 -0500

    Removed --enable-pop and SETGID_MAIL= from nmh.spec.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon May 7 09:45:38 2012 -0400

    Fix test so it will work on terminal widths other than 80.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 6 21:53:18 2012 -0500

    Default to fcntl locking for AIX, Cygwin, and Linux.  Without it
    on Cygwin, nmh is unusable on FAT32 filesystems.
    
    Default to flock on FreeBSD.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 6 21:52:22 2012 -0500

    Added note about test/inc/test-deb359167 failing because valgrind
    detects use of an uninitialized variable on older Linux distributions.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun May 6 13:41:07 2012 -0400

    Fix the case of the MacOS X dSYM directories.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 6 11:14:49 2012 -0500

    Remove any existing Local-Mailbox: profile component before adding one.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 6 10:59:42 2012 -0500

    Added check for EPERM when checking errno after a failed link(2).
    Cygwin will produce that on FAT32 filesystems.  Must do this at
    runtime rather than configure time because link() succeeds on
    NTFS filesystems.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 5 10:05:36 2012 -0500

    Check for success of hard links of bin files.  If they fail, try sym
    links.  On Cygwin, the choice of ln or ln -s must be made at install
    time, not configure time, because some filesystems (NTFS) support hard
    links but others (FAT32) don't.  Fallback to cp -p, though might not
    be needed, just in case.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 5 10:04:35 2012 -0500

    Customized generic SPECS/build-nmh-cygwin for nmh.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 5 09:54:10 2012 -0500

    Replaced mh_profile man page hard link with new man/mh_profile.man.
    The hard link isn't be supported by SPECS/build-nmh-cygwin.  And it's
    consistent with the handling of other aliased man pages.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 5 09:16:49 2012 -0500

    Added SPECS/build-nmh-cygwin.  This version isn't ready:  it's
    a renamed download of
    http://sourceware.org/cgi-bin/cvsweb.cgi/~checkout~/packaging/templates/generic-build-script?content-type=text/plain&amp;cvsroot=cygwin-apps
    It's committed in its original form so we can easily view changes
    to it.

Author: David Levine <levinedl@acm.org>
Date:   Sat May 5 09:14:48 2012 -0500

    Moved nmh.spec to new SPECS directory.

Author: David Levine <levinedl@acm.org>
Date:   Mon Apr 30 21:56:26 2012 -0500

    Removed documentation of obsolete WHATNOW configuration option and
    built-in FTP client.  Removed some completed and obsolete tasks from
    TODO.

Author: David Levine <levinedl@acm.org>
Date:   Sat Apr 28 15:56:36 2012 -0500

    Allow a user to enable setgid of inc when running distcheck with:
      make distcheck DISTCHECK_CONFIGURE_FLAGS=DISABLE_SETGID_MAIL=0
    though that's probably never going to be used.
    (cherry picked from commit b83b264039d4245810cb845a540c024032a45ac4)

Author: David Levine <levinedl@acm.org>
Date:   Sat Apr 28 07:55:16 2012 -0500

    Disable setgid of inc (SETGID_MAIL=1) when running distcheck.
    (cherry picked from commit 9ba93ac9c535b678bb602094997a797ba8b33666)

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Apr 27 18:31:36 2012 -0700

    Formatting cleanup.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 27 20:25:20 2012 -0400

    Updates OS specific notes.

Author: David Levine <levinedl@acm.org>
Date:   Thu Apr 26 20:37:59 2012 -0500

    Moved the set +e up to capture one more test in test-pick.  That
    test heirloom-sh to exit.
    (cherry picked from commit f793aa71e4f7375daeb2cc9ef25512172fcb1451)

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 25 20:32:10 2012 -0500

    Use case statement to check for proper result from "mhparam sbackup".
    Also replaced a couple of other uses of grep with case statements.
    (cherry picked from commit 2f4fc229fd6578389b0435b044dc559d9d9bc292)

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 25 20:08:55 2012 -0500

    Removed the mv of the file after running sed on it.
    (cherry picked from commit 214da7bcd1ef52c46d4e77c787517d9403c97046)

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 25 20:08:03 2012 -0500

    Unset all MH environment variables that aren't set below.
    (cherry picked from commit 16dba0d07e94832ef9a077e6524714d0e433a111)

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 25 14:21:42 2012 -0500

    1) With SETGID_MAIL enabled (only with dot locking), if the chgrp of
       inc fails during install, don't attempt to chmod it.  This will
       cause make install to fail, which is good in this case.
    2) Added SETGID_MAIL= to the install by the test suite so that it
       does not attempt the chgrp+chmod.  The test suite didn't need them.
    3) Removed the SETGID_MAIL= from the test suite invocation in build_nmh.
    (cherry picked from commit 721276218bc03d4b0d86306c9b2990fae6f07426)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 25 13:02:33 2012 -0500

    Disable utmpx support for systems that lack getutxent.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Apr 25 17:40:09 2012 +0200

    futher test suite fixes to work on Solaris

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 24 21:04:54 2012 -0500

    Fixed test suite to work with Solaris Bourne shell:
    1) Removed ! (negation) of statuses.
    2) Removed initializations from export statements.
    3) Replaced $() with ``.
    4) Replaced $(()) (and expr) with new function arith_eval ().
    (cherry picked from commit a6af3b6300e02ade9f223f8d91667f590d191dc9)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Apr 24 17:02:38 2012 -0500

    Update info for mh-profile documenting comment format and the
    restriction on blank lines.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 24 14:23:44 2012 -0500

    Fixed to work with Solaris Bourne shell.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 24 14:22:06 2012 -0500

    Added build_nmh to dist_contrib_DATA.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 22 14:47:57 2012 -0500

    The mh-users list at UCI is no longer.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 22 13:30:33 2012 -0500

    Got the hostname for the savannah upload area wrong.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 22 12:59:18 2012 -0500

    Update for post-1.5 release.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 22 09:37:36 2012 -0400

    Clean up help messages a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Apr 22 09:37:24 2012 -0400

    Clean up install documentation a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 20 14:43:16 2012 -0400

    Implment -noatfile in a different way; it turns out my previous change
    broke dist with -noatfile.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 16 10:33:13 2012 -0400

    Change the cscope target slightly so the source code from the historical
    tree isn't found.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 15 10:02:23 2012 -0500

    Added declaration of __srget() on Cygwin.  Used point solution because
    this shouldn't be needed for much longer.

Author: David Levine <levinedl@acm.org>
Date:   Sun Apr 15 10:00:22 2012 -0500

    Added -Wno-sign-compare, if supported, to compile of sbr/dtimep.c.
    It's code generated by flex and some versions produce a
    signed/unsigned mismatch.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 13 11:23:20 2012 -0400

    Sigh.  More changes for newer versions of perl.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 12 21:07:57 2012 -0400

    Support -fmtproc -nofmtproc in show.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 12 20:42:52 2012 -0400

    More updates to replyfilter

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Apr 12 11:40:42 2012 -0400

    Clean up fakesmtp and the post tests a bit to hopefully reduce race
    conditions that make the tests fail sometimes.

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 11 20:59:57 2012 -0500

    Undid wrapping of setjmp() and sigsetjmp() of
    4548981fb45fbc917cc2c26b7c96b31cf a14bc9b.  What a bad idea.

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 11 20:42:22 2012 -0500

    Tweaked build_nmh to work with Cygwin.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 10 20:47:46 2012 -0500

    Removed unused Hesiod relic.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 10 20:47:16 2012 -0500

    Added docs/contrib/build_nmh script.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 6 15:55:14 2012 -0400

    Add support for -fmtproc and -nofmtproc switches to repl.

Author: David Levine <levinedl@acm.org>
Date:   Fri Apr 6 13:27:30 2012 -0500

    Changed test-mhparam to allow # sbackup.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 6 13:57:20 2012 -0400

    Fix forw so it respects the -form switch again for non-digests.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Apr 6 13:56:03 2012 -0400

    Refere to VERSION via srcdir so this works when doing objdir builds.

Author: David Levine <levinedl@acm.org>
Date:   Fri Apr 6 12:27:22 2012 -0500

    Reworked mhparam tests of components in procs array to depend on
    values set in common.sh, notably $pagerpath.

Author: David Levine <levinedl@acm.org>
Date:   Thu Apr 5 20:15:06 2012 -0500

    Added mhparam test of each component in procs array in uip/mhparam.c.

Author: David Levine <levinedl@acm.org>
Date:   Thu Apr 5 17:14:57 2012 -0500

    Fixed install-mh -auto test by specifying HOME.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 4 23:33:40 2012 -0400

    Sigh.  More corner cases to deal with!

Author: David Levine <levinedl@acm.org>
Date:   Wed Apr 4 21:41:39 2012 -0500

    Changed rmm, send, and whatnow man pages to be consistent with the
    refile man page with mention of site-dependent prefix (usually a comma).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 4 15:55:36 2012 -0400

    Fixed some more charset/encoding stuff.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Tue Apr 3 19:07:52 2012 -0700

    This is a test commit to se if the savannah git hub will stop spewing
    source diffs in commit email messages.
    
    In this case, there should be a half-dozen lines of my bable, and
    no context diffs from the one line change I made in this commit.

Author: David Levine <levinedl@acm.org>
Date:   Tue Apr 3 20:47:17 2012 -0500

    Moved nmh.spec and docs/replyfilter to new docs/contrib/ directory.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Apr 3 15:56:41 2012 -0400

    A few more bugs I didn't catch earlier.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Apr 3 13:04:47 2012 -0400

    Fix some bugs in replyfilter.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 2 15:58:12 2012 -0400

    Whoops, fix a typo in my last commit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 2 15:39:00 2012 -0400

    Bring in replyfilter to the docs directory.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Apr 2 15:38:40 2012 -0400

    Implement fix in 59b086daa57105e8fbd8b1e6ba60be6a845faf95 here as well.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 31 11:52:10 2012 -0500

    Added const qualifier to a couple of local pointers to get rid of compile warnings with --with-tls.

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 26 21:28:54 2012 -0500

    Removed hostable relics from h/mts.h and sbr/mts.c.

Author: David Levine <levinedl@acm.org>
Date:   Mon Mar 26 20:32:03 2012 -0500

    Removed the hostable option from mts.conf because it's no longer used.
    This allowed removal of mts/smtp/hosts.c.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 25 22:42:36 2012 -0500

    Added test-install-mh.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 24 21:47:31 2012 -0500

    Note that %(myname) truncates the GECOS field at the first comma, if
    it contains one.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 24 22:32:13 2012 -0400

    Add support for %(size).

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 24 21:09:20 2012 -0500

    Removed -realsize from man page because mhshow doesn't support it.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 24 09:22:41 2012 -0500

    Fixed Cygwin notes.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 24 09:13:47 2012 -0500

    Ensure that escape_display_name() can't overrun a buffer.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 24 09:04:34 2012 -0500

    Cleaned up compile warnings.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 24 02:15:49 2012 -0400

    Add this support for setting the CT_ADDR flag.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 24 02:08:03 2012 -0400

    Sigh.  Turns out last change broke a few tests, because it trimmed the
    newline on the "body" component.  Ignore that and the text component as
    well for trimming.  Also create some tests for the repl changes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 24 01:16:42 2012 -0400

    Revert commit 255d4c646c0d7aa6b049052fef47fa083b1b1506 and solve
    the problem another way.
    
    The component parser needs to save the newlines so it can combine
    multiple headers properly.  So for us, strip out any trailing newlines
    when we call fmt_scan().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 23 23:21:35 2012 -0400

    Modify the whatnow tests to deal with different versions of readline;
    some echo the input, some do not.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 22 23:34:08 2012 -0400

    If the number of messages in a folder is zero, then don't try to
    clear out the sequence list; this can cause you to run off the
    beginning of the malloc'd buffer.  This can happen when you use
    "comp" with a draft folder, the draft folder is empty, and you have
    a previous sequence set in your .mh_profile.  As far as I can tell
    this has been a problem for nearly forever, but I only ran into it
    recently when adding the readline support.  Go figure.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 22 21:06:47 2012 -0500

    Added function escape_display_name() to double quote, if not already,
    a fullname that contains any of the special characters listed in RFC
    5322, and escape unescaped, embedded double quotes.
    
    With this change, nmh should work with no special configuration on
    Cygwin, even if the user's fullname is of the form server\name.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 22 19:40:17 2012 -0500

    Moved NMH_READLINE to after our setting of CFLAGS, because
    AC_SEARCH_LIBS messes with them.

Author: David Levine <levinedl@acm.org>
Date:   Wed Mar 21 20:01:06 2012 -0500

    If a pager isn't specified with configure --with-pager, look in order
    for more, less, and most.  Fall back to cat, to avoid catastrophic
    failure of mhshow, et al., if pagerpath is set to "no".
    
    Updated Cygwin section of MACHINES.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 21 15:27:15 2012 -0400

    Support for readline command history, editing, and completion at the
    WhatNow? prompt.  Based on work by Steve Rader.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 21 12:22:16 2012 -0400

    Revert previous change to get rid of MULTIBYTE_SUPPORT ifdef.  It turns out
    this breaks the Plan 9 build.  But include a check for the multibyte functions
    so we get MULTIBYTE_SUPPORT on systems that have it.
    
    This reverts commit bd4fca3a8a15b35a04bdc333503c901d677c12eb.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 20 23:49:17 2012 -0500

    Fixed harmless compile warnings.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 20 21:36:37 2012 -0400

    It turns out that as part of POSIXification we got rid of checks for
    wcwidth and mbtowc (because they're part of POSIX) but we didn't turn on
    MULTIBYTE_SUPPORT because configure was testing to see if those functions
    were supported ... and because the tests never ran, it always came back
    as not being supported.  Time to bite the bullet and turn MULTIBYTE_SUPPORT
    on by default.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 20 20:22:19 2012 -0400

    Document formatarg.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 20 19:52:29 2012 -0400

    Use _exit() instead of exit() so our writer process doesn't flush out
    the stdio buffers on exit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 20 19:15:18 2012 -0400

    Basic work to add arguments to formatproc calls.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 19 21:37:14 2012 -0400

    Just for sanity's sake, double check the "inc" results also with "scan".

Merge: e8ed3af 740e258
Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 18 20:59:06 2012 -0500

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: Steve Rader <rader@hep.wisc.edu>
Date:   Sun Mar 18 20:57:08 2012 -0500

    Added list of hand picked types initially genereted by...
      cat /etc/mime.types \
        | perl -ane 'if ($F[1] ne "") {print "mhshow-suffix-$F[0]:.$F[1]\n"}'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Mar 18 21:29:39 2012 -0400

    Fix a bug where a message header ending right on the stdio boundary
    would cause the body output in scan to be truncated.
    Also include a test for the aforementioned bug.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 17 23:42:26 2012 -0400

    Fix typo in man page

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 18 10:27:05 2012 -0500

    Added release note that ./@ is obsolete/deprecated.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 18 09:53:31 2012 -0500

    Added test-whom.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 18 09:17:56 2012 -0500

    Added documentation of -sever, -port, -sasl, -saslmech, -snoop, -user,
    -tls, and -notls to whom man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 18 09:15:30 2012 -0500

    Added whom, it's the fifth program referred to in mh-draft man page.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 17 14:33:43 2012 -0500

    In gcov target, added warning if configured with --enable-debug.
    While gcov will work with it, it won't reflect optimizations that
    are disabled with that option.

Merge: 7cc0e99 67c56ba
Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 16 22:11:09 2012 -0500

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh
    
    Conflicts:
    	Makefile.am

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 16 21:07:52 2012 -0500

    Automated generation of mh-chart.man.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 16 21:07:52 2012 -0500

    Automated generation of mh-chart.man.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 16 21:05:21 2012 -0500

    Commmiting last manual update of mh-chart.man before removing it.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 16 21:02:57 2012 -0500

    Removed some unused code having to do with permissions of symlinks.

Author: David Levine <levinedl@acm.org>
Date:   Fri Mar 16 21:01:30 2012 -0500

    Added mhshow-suffix-text/calendar.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 16 13:21:38 2012 -0400

    Improve the documentation for "send" a bit in terms of how it maps file
    suffixes to MIME types.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 16 13:02:43 2012 -0400

    Make -attach Nmh-Attachment & -attachformat 1 the default.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 16 11:37:31 2012 -0400

    Update for changes to post.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 16 11:32:35 2012 -0400

    Create new switches -atfile and -noatfile to control the creation of the @
    file when repl'ing or dist'ing a message.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Mar 16 00:21:35 2012 -0400

    Update post(8) regarding the New World Order.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 15 23:14:48 2012 -0400

    Whoops, forgot to put "." before some of the suffixes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 15 23:09:41 2012 -0400

    Add some more default MIME content suffixes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 15 23:00:06 2012 -0400

    Call readconfig() on mhn.defaults so we get default entries in for use
    with attach.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 15 22:23:20 2012 -0400

    A test for the group addressing functionality handled by "post".

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 15 15:54:02 2012 -0400

    Remove all masquerade support (draft_from is now the default, and the other
    two can be accomplished via the components file).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 15 13:55:15 2012 -0400

    Clean up prototypes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 15 13:04:38 2012 -0400

    Fix some warnings.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 15 11:55:34 2012 -0400

    I guess the -i option to sed works differently on Linux and MacOS
    X; deal with it.

Author: David Levine <levinedl@acm.org>
Date:   Wed Mar 14 21:05:16 2012 -0500

    Initialized local format_len.  gcc on 64-bit Linux warned about it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 14 21:15:54 2012 -0400

    New test suite for "post"; uses fakesmtp to trap the SMTP protocol.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 14 21:15:17 2012 -0400

    Make sure we don't send Envelope-From if we're using spost.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 14 15:51:22 2012 -0400

    A new test program, fakesmtp, to help us test post.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Mar 14 15:47:01 2012 -0400

    Fix the SMTP code so it doesn't end up in a hard loop during a DATA
    command.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 13 22:28:03 2012 -0500

    Disabled the optimization to stop stat'ing directory entries in
    BuildFolderListRecurse() of flist.c under conditions where st_nlink is
    set to 1.  That happens on Cygwin, for example:
      http://cygwin.com/ml/cygwin-apps/2008-08/msg00264.html

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 13 22:01:52 2012 -0500

    Changed output_md5() to output just the checksum.  If the filename
    needs to appear on the same line, the caller needs to add it.  This
    avoids differences due to a leading '*' binary file indicator, even
    for text files, on Cygwin.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 13 21:20:47 2012 -0500

    Added test/getfqnd.c, a replacement for "hostname" that always
    tries to provide the fully qualified domainname of the host, even
    on Cygwin.  It uses the code that LocalName in sbr/mts.c uses.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 13 19:58:33 2012 -0500

    On some platforms, need to be out of $SPDIR in order to remove it.
    So do that in test/whatnow/test-ls.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 13 19:56:06 2012 -0500

    Promote uid_t value to long and print with %ld to prevent compile
    warning on platforms, such as Cygwin, where it is a long.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 13 15:25:41 2012 -0400

    Modify getfullname so it performs the same processing that
    mts.c:getuserinfo() does.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 13 15:15:42 2012 -0400

    Create proper prototypes for formataddr() and concataddr().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 12 22:52:21 2012 -0400

    New changes: Sender: cannot be blank, Sender: always overrides From:
    for SMTP envelope, and Envelope-From: will cause a Sender: header to be
    output if multiple From: addresses are used.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Mar 11 21:47:04 2012 -0400

    Require From: header in all outgoing messages.
    Allow Sender: header (require if multiple addresses are in From:).
    Support new Envelope-From: header for overriding post's choice of
    SMTP envelope-from address.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Mar 11 18:08:03 2012 -0400

    Add support for a -notls switch, for consistency's sake.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Mar 10 22:55:16 2012 -0500

    Clean up a bunch of unused code and options.  Specifically:
    
    - Remove support for SMTP SEND, SAML, and SOML commands
    - Remove -deliver, -fill-in and -fill-up switch for post (and related code)
    - Document -server and -port switches better in post man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Mar 6 09:25:00 2012 -0500

    SMTPMTS has been the default for over a decade, so it's time to get rid of
    the #ifdefs to clean up the code a bit.

Author: David Levine <levinedl@acm.org>
Date:   Sun Mar 11 19:52:38 2012 -0500

    Fixed mhstore to honor nmh-storage profile entry even with -auto [Bug #35303].

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 10 20:33:24 2012 -0600

    There were two fd leaks in mhparse.c:
    1) In openQuoted(), the decoded contents file was opened twice in
       succession. The second open was added by a patch in March 2000.
    2) openBase64(), openQuoted(), and open7Bit() could open the contents
       file, but it never would be closed. Added code to each to close the
       file if the function opened it.
    [Bug #24004: (debbug 344182)]

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 10 10:45:01 2012 -0600

    Replaced UTC-8 with UTF-8.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 10 10:44:30 2012 -0600

    Removed bash-ism from test-pick.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 8 21:29:28 2012 -0600

    Enabled all groff warnings, with -ww, in manpages test.  Fixed a bunch
    of minor problems that it revealed.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 8 21:09:59 2012 -0600

    Fixed mhlist -verbose to work with all content types [Bug #35219].

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 8 20:19:53 2012 -0600

    1) Removed -noverbose from defaults of mhshow man page.  While it
       accepts -verbose/-noverbose, it ignores them.
    2) Added -verbose/-noverbose to mhlist synopsis.

Author: David Levine <levinedl@acm.org>
Date:   Wed Mar 7 22:08:03 2012 -0600

    Added test-refile.

Author: David Levine <levinedl@acm.org>
Date:   Wed Mar 7 20:20:13 2012 -0600

    Replaced us-ascii with iso-8859-1 in examples, just because.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 6 21:57:16 2012 -0600

    Added test-mhparam and test-mhstore.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 6 19:57:22 2012 -0600

    Removed all traces of rmfproc.  It had been used by bbl but was
    no longer used.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 6 19:08:21 2012 -0600

    Some of the man pages had mentioned that arguments should be
    double-quoted to protect them from the shell.  Removed "double-"
    because single quoting is fine, too.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 6 18:52:41 2012 -0600

    Escape spaces in DEFAULTS sections of man pages so they no longer are lost.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 6 18:51:12 2012 -0600

    Removed ignored -verbose (and -noverbose) options to mhstore, just in the man pages.  The code remains unchanged.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 6 18:49:27 2012 -0600

    Fixed example to show that mhparam preserves case of component name.

Author: David Levine <levinedl@acm.org>
Date:   Tue Mar 6 18:48:21 2012 -0600

    Initialized local wasdlm to prevent uninitialized use.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 5 13:55:04 2012 -0500

    Finally got a reasonable burst test working.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 5 13:24:41 2012 -0500

    Update with recent fix.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 5 13:21:04 2012 -0500

    Change this to use "uint32_t" for a 32-bit type, otherwise we can get
    wrong MD5 checksums on 64-bit systems.  Score another one for the
    test suite!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Mar 5 12:23:15 2012 -0500

    Fix burst so it actually complies with RFC 934.  This means discarding
    any extra stuff leftover at the end of an encapsulated message.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 1 15:17:43 2012 -0500

    A test for burst; still needs work.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 3 12:23:58 2012 -0600

    Added test-mhlist.

Author: David Levine <levinedl@acm.org>
Date:   Sat Mar 3 12:21:00 2012 -0600

    mhbuild -check would always fail because it tried to build the
    digest for the decoded contents file (cefile), which can be null.
    If it is, use the contents file itself.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 1 18:01:52 2012 -0600

    Brought mh-chart man page up to date.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 1 12:33:19 2012 -0600

    Added documentation of -snoop.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 1 12:32:23 2012 -0600

    Removed RCS sparc object file.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 1 12:29:33 2012 -0600

    Under docs/historical/mh-6.8.5, mh.rf and mh.me were renamed to
    mh-intro.rf and mh-intro.me, respectively, to avoid name clashes with
    other files on case-insensitive file systems.

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 1 12:13:14 2012 -0600

    Removed entire docs/historical/mh-6.8.5/local/ tree.  It had a pair of
    files, Distfile and distfile, with clashing case-insensitive names.
    The rest of it was specific to UCI and LBL.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 1 12:33:42 2012 -0500

    %G isn't actually part of POSIX, so change to %Y.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Mar 1 12:02:29 2012 -0500

    Fixed a problem that caused the test to fail if you ran it on the first
    nine days of the month.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 29 20:33:24 2012 -0600

    Initialized local msgnum to 0.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 29 18:41:14 2012 -0600

    Added all of the MH sources, including RCS files, in
    docs/historical/mh-6.8.5.  Sources for the papers are below papers/.
    Sources for the MH User's Manual are in conf/doc/.

Merge: c7f326f 7565efe
Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 29 16:36:59 2012 -0600

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh
    
    Conflicts:
    	docs/historical/README

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 29 13:49:28 2012 -0600

    Removed the sources to the historical documents just added, they're
    in the mh-6.8.5 tarball.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 29 13:49:28 2012 -0600

    Added sources to historical documents downloaded from
    http://stuff.mit.edu/afs/sipb/project/sipb-athena/src/mh/papers/

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 29 08:52:26 2012 -0500

    Fix a segfault that happens when using the -file option.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 29 08:51:27 2012 -0500

    Argh, I didn't mean to commit the distcomps I was using for testing!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 28 15:38:56 2012 -0500

    dist(1) now processes drafts using mh-format!  The last of the programs
    to do so!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 28 15:38:37 2012 -0500

    Fix this man page for the New World Order.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 28 15:29:56 2012 -0500

    Improve these man pages a bit.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 28 14:45:03 2012 -0500

    Add support for %(msg) function working when not using -digest.  I can't
    imagine what someone would use it for but it's cheap to do, so why not?

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 28 10:32:41 2012 -0500

    Part of the patch from bug #4301; clean up our prototypes, a lot.  Still
    plenty of work to do!

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 28 22:05:55 2012 -0600

    Added docs/historical/.  See README for where they were found.

Merge: 56f140c e22a2c8
Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 27 21:12:22 2012 -0600

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 27 21:10:47 2012 -0600

    Removed blank line after "End of Forwarded Message" lines.  It's
    always bothered me.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 27 22:11:34 2012 -0500

    Add the note about the burst(1) change to pending-release-notes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 27 22:05:41 2012 -0500

    Fix bug #1466.  It turns out that RFC 934 specifies that any line starting
    with a "-" but NOT followed by a space is a valid message delimiter.  We
    only supported one type of message delimiter.  Adapt the code so any
    valid delimiter is supported.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 27 20:56:58 2012 -0600

    Added cast in conditional to prevent signed/unsigned comparison, and wrapped argument to prevent warning about unused argument when built without SASL support.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 27 20:50:29 2012 -0600

    Changed domains in man page and test examples to use example.com

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 27 20:42:19 2012 -0600

    Fixed to report failure if getfulname hadn't been built yet.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 27 20:40:15 2012 -0600

    They test with output to a tty didn't work under make distcheck.  Tried to work around it by writing directly to /dev/tty, if that's available.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 27 20:50:49 2012 -0500

    Add support for -nosasl and -saslmaxssf switches.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 27 14:13:02 2012 -0500

    Document changes to forw(1).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 27 14:12:34 2012 -0500

    Clean up some typos in here.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 27 13:45:37 2012 -0500

    Got the forw -digest test working.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 27 13:37:09 2012 -0500

    Update digestcomps and forwcomps with comments and better formatting.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 27 12:56:00 2012 -0500

    Make -volume switch actually work (it always got overridden).  As far
    as I can tell, this never worked.  Found by the test suite!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 26 21:29:44 2012 -0500

    Remove the forw-digest test until we have it working.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 26 21:29:01 2012 -0500

    A test for forw -digest.  It doesn't quite work yet.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 26 21:14:04 2012 -0500

    Fix up some of the pick tests:
    
    - Change sed invocation around to get rid of GNU sed extensions
    - Put explicit times in the pick tests (if you don't, it uses the current
      hour/minutes as the timestamp, which means it could work or not work
      depending on what time of day you run the tests).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 26 13:02:41 2012 -0500

    Update the pending release notes with new features.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 26 12:45:48 2012 -0500

    Add a new README documenting the changes to the components files.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 26 12:12:28 2012 -0500

    Beginnings of a test suite for the mh-format support in forw.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 26 10:55:46 2012 -0600

    Added test-pick.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 26 10:32:29 2012 -0600

    Suppress echoing of man page build lines.  One of them says "warning", and it's handy to check that build output doesn't say that.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 26 10:10:35 2012 -0600

    Changed type of a local to unsigned and removed local ncomps to suppress compile warnings.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 26 10:09:35 2012 -0600

    Added gcov and gcov-clean targets.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 26 00:09:52 2012 -0500

    Finally, some support for mh-format when using forw(1).  Still needs some
    tests.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 23 12:03:09 2012 -0500

    Create a test for the new mh-format processing available in comp(1).

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 22 22:23:05 2012 -0600

    Added test-flist and test-mark sequences tests.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 22 22:21:56 2012 -0600

    Don't list _sysconfdir/ directory in RPM spec.  We don't list any other directories, so now it will be created with the same permissions as all of the others.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 21 19:35:05 2012 -0600

    Removed reference to mhost.com.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 21 19:34:33 2012 -0600

    Updated to reflect that all of the lists are on nongnu.org.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 21 19:31:08 2012 -0600

    With "make rpm", configure all modified files in sysconfdir (etc) to be saved when erasing or upgrading the package.  Also, leave the doc directory whereever "make install" puts it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 21 15:56:06 2012 -0500

    Add support for a -subject switch to comp.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 21 12:58:50 2012 -0500

    Switch from (me) to (localmbox) to make -cc me work correctly.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 20 22:02:26 2012 -0600

    Migrated a couple more tests to use run_test() in common.sh.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 20 00:31:14 2012 -0500

    Put default From: headers in these component files, and document the
    components file now that we can have comments.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 20 00:31:01 2012 -0500

    Clean up documentation formatting

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 19 22:29:14 2012 -0600

    Removed unused local ncomps because gcc complained about it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 19 19:59:06 2012 -0500

    Add support for "to", "cc", "from", and "fcc" components via command-line
    switches.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 19 18:03:26 2012 -0500

    Fix a bug leftover from the Automake conversion; the AC_SUBST'd variable
    names are really editorpath and pagerpath, use those instead.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 18 22:36:50 2012 -0600

    Ken noted that "make check" can be run before installation because the only program in lib that the tests currently use is mhlproc, and we have an mhlproc entry in the test .mh_profile for that.  Added showproc and postproc entries in case they're ever needed.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 18 17:32:15 2012 -0600

    Moved "make check" to after "make install".

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 18 17:31:37 2012 -0600

    gcc was warning about unused arguments to main, so added use of them in a usage check.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 18 17:30:47 2012 -0600

    Consolidated runtest and check_string test functions.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 18 11:21:28 2012 -0600

    Have each test clean up after itself if it completes successfully.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 18 09:42:04 2012 -0600

    Added mhpath test.  Updated mhpath man page to reflect actual behavior for a message number greater than that of the highest existing message in a folder.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 18 08:03:21 2012 -0600

    The test check() function now removes the expected and actual output files if they're the same, by default.  Added check-string() function.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 17 19:10:08 2012 -0600

    Initialized local "in" to suppress gcc warning about possible uninitialized use.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 17 19:08:42 2012 -0600

    Enclosed program name and directory in double quotes so that they can contain whitespace.

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 17 18:44:35 2012 -0600

    Here's the proper fix instead of the hack of d28ce569fe233141f86fe516878361da01c9f9cb.  Use ${srcdir} in to refer to extra files in tests, as before.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 17 15:56:08 2012 -0500

    Beginning support for mh-format support in comp(1).  Includes changes to
    default component file.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 17 15:10:06 2012 -0500

    Sigh.  Looks like we need a function after all; create a new function
    called %(localmbox).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 17 14:02:44 2012 -0500

    Switch to including h/mts.h for getusername() prototype.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 16 22:56:02 2012 -0600

    Added a couple of NMH_UNUSED's to suppress warnings when building without Cyrus SASL.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 16 22:49:03 2012 -0600

    Hacked to work with make distcheck.  Maybe not the best way but it works for now.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 16 22:02:21 2012 -0600

    Moved check() function from individual tests to common.sh.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 16 21:30:43 2012 -0600

    Rearranged test suite environment variables so that individual tests
    can now be run standalone (outside of make).  But see WARNING in
    test/README about how it's better to use "make check" because that
    ensures that the current code in your workspace is tested.  Also, the
    clean script no longer needs to call setup_test.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 16 11:46:16 2012 -0500

    Report an error when the width used by putaddr is less than the label width.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 16 00:17:49 2012 -0500

    Hopefully made the format documentation a little bit clearer.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 15 21:45:13 2012 -0500

    Fix typo in repl man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 15 15:54:47 2012 -0500

    Create test cases for the new format functions for local address writing.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 15 15:53:26 2012 -0500

    Make it so we do NOT check our address against the "local" userid and
    hostname if Local-Mailbox is set.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 15 15:46:28 2012 -0500

    Sigh.  Turns out the first entry in the list isn't actually checked, so
    we need to make sure that our Local-Mailbox entry starts second.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 15 14:55:25 2012 -0500

    Hm, it turns out we need to make sure we call getname() until we get
    a NULL, otherwise the next set of calls to it will be working from the
    "old" search string.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 15 11:36:36 2012 -0500

    Beginning of support for the Local-Mailbox profile entry.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Feb 15 10:48:52 2012 -0500

    Support getting the "fullname" out of the Signature profile setting.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 14 20:47:06 2012 -0600

    Updated documentation of environment variables in mh-profile man page.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Feb 14 20:24:43 2012 -0500

    Add two new format functions: %(myhost) and %(myname).

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 13 19:55:53 2012 -0600

    Changed "make test" to "make check".

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 13 19:54:41 2012 -0600

    Fixed progress indicator.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 11 23:28:10 2012 -0500

    Another problem discovered by the test suite.
    
    With multiple sequence arguments on the command line you might end
    up with garbage in the sequence[] array (it needs the last argument
    to be a NULL.  So do two things: make the first two arguments NULL, and
    as we add arguments to sequence[] make sure the list has a NULL on the
    end.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sat Feb 11 13:06:47 2012 -0500

    correct the maximum number of sequences in the mark(1) man page
    
    also add a note explaining the somewhat low limit.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sat Feb 11 12:41:30 2012 -0500

    mhshow: suppress pause actions if stdout isn't a tty
    
    previously, "mhshow | cat" would both print a "Press return" prompt
    to, and attempt to read from, its piped output fd.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 10 23:38:40 2012 -0500

    Fix this so it works when valgrind is installed.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 10 23:27:36 2012 -0500

    Switch over to using the template files out of our inst directory.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 10 23:22:12 2012 -0500

    Switch to using the "inst" version of mhl for tests.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 10 23:09:03 2012 -0500

    Re-work the test suite so it now works with Automake (via "make check").

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 10 20:59:21 2012 -0500

    Fix typo in alternate mts.conf location support.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 10 15:11:05 2012 -0500

    Make the test suite work on systems other than Linux.  Still needs work.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 10 09:50:48 2012 -0500

    With the fixing of the bug that caused CPPFLAGS to get tromped on, remove
    support for OURDEFS and direct people to use CPPFLAGS instead.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 9 23:43:30 2012 -0500

    Fix typo in variable test.

Author: David Levine <levinedl@acm.org>
Date:   Thu Feb 9 20:38:22 2012 -0600

    Show assignment of configure variables using VAR=VALUE instead of in the shell environment.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 8 22:29:59 2012 -0600

    Updated INSTALL and MACHINES documentation a bit.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 8 21:42:46 2012 -0600

    Added mhshow subpart test.

Author: David Levine <levinedl@acm.org>
Date:   Wed Feb 8 21:41:48 2012 -0600

    Always run setup-test from make test/runalltests, just in case the test build directory (test/testbuild) isn't up to date.  It might be nice to replace all the copies in the test build directory with symlinks, then make could keep the test build up to date.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 7 21:43:26 2012 -0600

    Added OURDEFS to DEFS in Makefile.am, to restore it in the Makefile.  Updated documentation in INSTALL.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 7 21:23:37 2012 -0600

    Removed use of tzset()/tzname in dtimezone().  They caused the returned timezone string to be for the user's current timezone, but the function is supposed to return the string representation of the timezone of its argument.  That will be numeric, e.g., +0100, now because we no longer have timezone name support.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 7 21:17:00 2012 -0600

    Reverted TZ hack to tests, 9ea2daf5e74e3ff03043cfa6fb68033aea0da52a.  A code fix is on its way

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 6 22:35:21 2012 -0600

    Another one caught by the test suite:  an indented line was too long in the slocal man page.  Center it instead.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 6 22:25:25 2012 -0600

    Some tests failed because they displayed the user's local
    time zone but expected GMT.  So, set TZ in runtest to fool
    them.
    
    Though I wonder if we're failing to correct for local time zone.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 6 21:47:52 2012 -0600

    Caught by the test suite:  sequences[0] needs to be initialized to NULL at the beginning of the program.  That explains why it seg faulted when invoked with a sequence argument.

Author: David Levine <levinedl@acm.org>
Date:   Mon Feb 6 21:19:57 2012 -0600

    Reworked test suite to copy the configuration used in the main
    nmh directory.  Added test target to Makefile.  Not all the tests
    pass at this point.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 6 14:12:00 2012 -0500

    Still more autoconf cleanup (quoting & more use of M4sh).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 6 11:31:18 2012 -0500

    Patch from Harvey Eneman: fixes problem on some systems where a free()
    would be called on non-malloc'd memory (only would happen if you had more
    than one entry in the server: line in mts.conf).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 6 10:27:43 2012 -0500

    Update the developer documentation with the changes to the release
    process.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 6 09:08:19 2012 -0500

    More configure cleanup to modern constructs.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Feb 5 17:17:41 2012 -0500

    Autoconf cleanup to suggested practice (AS_IF & AC_MSG_FAILURE).  More to do.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 5 15:26:16 2012 -0600

    Added error message if the file is source directly, rather than through bash-completion.

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 5 14:13:07 2012 -0600

    Exit with error message if no library could be found with tgetent.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Feb 4 00:11:27 2012 -0500

    Whoops, used "buffer" when I meant "buf".

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 3 23:43:53 2012 -0500

    Change LocalName() to take an argument (about whether or not to use
    local hostname versus entry in mts.conf).

Merge: 24ccfac 196f981
Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 3 17:10:49 2012 -0600

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: David Levine <levinedl@acm.org>
Date:   Fri Feb 3 17:10:44 2012 -0600

    Use more up-to-date web page links of Jerry Peek's book sections at rand-mh.sourceforge.net instead of oreilly.com.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 3 15:38:49 2012 -0500

    Convert from the poorly-named and confusing adrsprintf() to getlocaladdr().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 3 15:03:00 2012 -0500

    Make the upload target phony.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 3 15:01:50 2012 -0500

    Beginnings of an upload Makefile target.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 3 13:50:19 2012 -0500

    Update with new features.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Feb 3 13:49:46 2012 -0500

    Document the formatproc entry.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Feb 2 22:13:57 2012 -0500

    Move the eval statements inside of AC_CONFIG_COMMANDS_POST macro, otherwise
    the stuff we output might not be correct.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 31 23:17:33 2012 -0600

    Added #includes to pick up declaration of waitpid()

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 31 13:20:40 2012 -0500

    Whoops, I need to make sure the buffer I pass to putcomp() is NULL-terminated.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 31 12:58:04 2012 -0500

    Add support for calling an external format program inside of mhl.

Merge: abf5b4f c8206d4
Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 28 14:12:05 2012 -0600

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 28 13:52:59 2012 -0600

    Made ChangeLog target phony so it will always get regenerated.  But don't try to regenerate if git repository is not present.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 28 13:52:59 2012 -0600

    Made ChangeLog phony so it will always get regenerated.  But don't try to regenerated if git repository is not present.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 28 12:45:15 2012 -0600

    The www.ics.uci.edu/~mh/ links are dead, so replaced them with corresponding oreilly.com links.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 28 12:33:27 2012 -0600

    Replaced static ChangeLog with one generated by git log.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sat Jan 28 00:29:13 2012 -0500

    Create "nowrap" flag to turn off all line wrapping.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 27 20:30:58 2012 -0600

    Organized .gitignore to show which objects are deleted by the various Makefile clean targets.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 27 19:56:50 2012 -0600

    Added superclean Makefile target.  Added a.out.DSYM's to clean target.  Added .PHONY indication of rpm target.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 27 19:40:48 2012 -0600

    Removed config.guess and config.sub because they're generated by autoreconf -i.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 27 19:39:47 2012 -0600

    Updated to latest config.guess and config.sub before removing them from the repo, just in case someone needs them and can't generate them.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 27 19:36:14 2012 -0600

    Changed a variable to unsigned and noted an argument as unused to silence compile warnings in uip/popsbr.c

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 27 13:47:14 2012 -0500

    Fix long-standing problem with getans(); handle the case if we get
    an interrupted by a signal during a character read and return an
    EINTR.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 27 13:34:17 2012 -0500

    Convert to the use of siglongjmp()

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 27 12:30:52 2012 -0500

    Make POP support always be turned on.

Merge: da6bfd3 d5c47f7
Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Jan 27 08:16:57 2012 -0800

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/nmh

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Fri Jan 27 08:16:36 2012 -0800

    Typo fix.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 26 22:36:17 2012 -0600

    Added clean-local target to remove RPM directory.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 26 20:05:30 2012 -0600

    Added uip/*.exe, for Cygwin.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 26 20:04:33 2012 -0600

    Removed slash in front of $(man5dir) of install-data-hook rule so that it now works on Cygwin.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 25 22:22:02 2012 -0600

    Fixed rpm target now that nmhdist is gone.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 25 20:48:55 2012 -0600

    Updated config test to add -Wextra to be consistent with others.  So, it's back!

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 25 19:44:30 2012 -0600

    If using gcc, use -Wno-unused-macros when compiling sbr/dtime.o.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 25 19:38:49 2012 -0600

    Removed unused local bp.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 25 19:33:17 2012 -0600

    Undid most of 3ef341abe440ece07f8deed59fb026ab020e805 because FreeBSD needs the HAVE_STRUCT_TM_TM_GMTOFF test.  It has a timezone() function, not a timezone global variable (that's visible with our default configuration.

Author: lyndon <lyndon@treebeard.orthanc.ca>
Date:   Wed Jan 25 20:10:52 2012 -0800

    Remove hardlink target before attempting new link.

Author: lyndon <lyndon@treebeard.orthanc.ca>
Date:   Wed Jan 25 18:15:47 2012 -0800

    uip/termsbr.c: remove references to PC and ospeed().
    
    These are no longer referenced by the code base now that vmh has been
    removed.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 24 12:56:45 2012 -0500

    Create a "cscope" target that creates the necessary files to use cscope.

Author: lyndon <lyndon@treebeard.orthanc.ca>
Date:   Mon Jan 23 22:48:24 2012 -0800

    cscope.files was missing mts/smtp/*.

Author: lyndon <lyndon@treebeard.orthanc.ca>
Date:   Sun Jan 22 23:21:03 2012 -0800

    Ignore cscope.out.

Author: lyndon <lyndon@treebeard.orthanc.ca>
Date:   Sun Jan 22 23:08:02 2012 -0800

    Add a default configuration file for cscope(1).
    
    I generated the file list by hand.  While it might be possible to generate it
    from the Makefile, it was much simpler to just
    
      ls */*.[cl]|grep -v sbr/dtimep.c
    
    If source files are added or removed down the road, cscope.files will
    need a hand edit to keep it in sync.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 22 01:15:40 2012 -0500

    Make sigmsg.h NOT depend on the Makefile.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 22 01:14:34 2012 -0500

    Clean up DESTDIR usage.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Jan 22 01:12:18 2012 -0500

    Add the rule to install inc setgid if requested.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 20 23:39:14 2012 -0500

    Fix some problems that the Automake migration caused.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 20 14:05:26 2012 -0500

    Convert the build system over to the use of Automake.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 17 17:33:29 2012 -0600

    Well the wrap of vfork() calls didn't work:  its semantics don't allow that.  So removed the wrapper and added -Wno-clobbered to gcc -Wextra.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 17 14:27:06 2012 -0500

    Convert from our use of aclocal.m4 to a subdirectory with autoconf macros
    in it.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 17 14:15:32 2012 -0500

    Change the name of AC_CHECK_NETLIBS, since it's not a macro distributed
    by Autoconf.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 17 10:58:40 2012 -0500

    Update .gitignore with .DS_Store (seen occasionally on MacOS X systems).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 17 10:57:54 2012 -0500

    Convert from utmp functions to utmpx functions (which are in POSIX).

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 16 20:58:15 2012 -0600

    Wrapped setjmp(), sigsetjmp(), and vfork() calls to silence gcc -Wclobbered for good.  Undid ca34fbd0a5204d47ad019f64ef03d21ebd3397fd, which added volatile qualifiers but was not general.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 16 18:35:21 2012 -0600

    Removed HAVE_STRUCT_TM_TM_GMTOFF support because it didn't work on Cygwin and isn't needed:  timezone, tzname, and tzset() are all POSIX.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 16 18:33:57 2012 -0600

    Pass int instead of char to iscntrl() and isspace() because that's what they require, and gcc on Cygwin warns about it.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 16 18:30:40 2012 -0600

    Added EXEEXT support, for Cygwin.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 16 09:50:10 2012 -0600

    Fixed build on Cygwin by adding configure check for ncurses/termcap.h.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 15:33:39 2012 -0600

    Argument to alrmser is unused.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 15:28:25 2012 -0600

    Fixed warnings from gcc -Wclobbered by adding volatile qualifiers.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 15:04:54 2012 -0600

    Cleaned up gcc warnings when CYRUS_SASL is not enabled.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 14:56:16 2012 -0600

    Added -Wextra with gcc, if supported.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 14:49:57 2012 -0600

    Changed types and added casts so that build is clean with gcc -Wsign-compare.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 09:21:32 2012 -0600

    gcc -Wmissing-field-initializers noticed several struct initializations
    that didn't explicitly list all fields.  Most were of no consequence because
    they were for static data, so they were all initialized properly.  However,
    the two in mhlsbr.c were missing an initialization of other than their last
    field, and they contained some subsequent values other than zero.  So, those
    later fields were initialized incorrectly.  Also, changed the initialization
    of global.c_ovtxt from "" to NULL because free_queue () freed it if non-NULL,
    though I think the "" was always overwritten.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 09:19:49 2012 -0600

    configure.ac and aclocal.m4 instead of configure.in and acconfig.h.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 14 09:16:16 2012 -0600

    Documented support of OURDEFS to pass compile flags to configure.

Merge: c3ed95b 3a84d81
Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 13 12:05:13 2012 -0500

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 13 12:04:13 2012 -0500

    Add some comments to the format compiler and engine.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 13 09:30:03 2012 -0500

    Update README.developers with the correct version of autoconf we need.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 12 22:19:24 2012 -0600

    Added NMH_UNUSED macro for suppressing warnings about unused parameters
    with gcc -Wunused-parameter

Merge: b70215d 162f2a7
Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 12 22:17:54 2012 -0600

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 12 22:14:59 2012 -0600

    Added -Wunused-macros with gcc, if supported.  Added -Wno-unused-macros,
    if supported, to compile of sbr/dtimep.o with gcc because it uses
    generated code that would be too much trouble to clean up.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 12 21:07:33 2012 -0500

    Create two new mh-format functions: %(putlit) and %(concataddr).
    
    %(putlit) outputs a string without any space compression or control character
    conversion
    
    %(concataddr) is just like %(formataddr), except that inside of repl there
    will not be any duplicate address supression.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 22:38:35 2012 -0600

    Enabled support for tls switch.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 22:36:20 2012 -0600

    Removed unsupported format and check switches, and commented out unused macro HMNG.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 22:33:45 2012 -0600

    Removed, or added use of, unused macros to prevent warnings from gcc -Wunused-macros.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 17:06:44 2012 -0600

    Removed or protected some unused macros.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 16:52:17 2012 -0600

    Removed unused global zones and local z form dtimezone ().

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 11 16:45:53 2012 -0600

    Added #include <grp.h>.  It's needed on Linux, should be harmless on others.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 11 15:04:39 2012 -0500

    Completely remove the use of TIME_WITH_SYS_TIME (I removed the autoconf
    test but never removed the code, and this caused some problems on systems
    that needed some prototypes in <time.h>).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 11 14:52:23 2012 -0500

    Ignore a.out.DSYM (this file sometims shows up when using the debugger)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 11 14:48:45 2012 -0500

    Fix two errors in the conversion to m_mktemp2():
    
    - There was an off-by-one error that prevented the temporary file
      from being created in the same directory as the message it was being
      linked to.
    - When using "dist", the assumption was that the temporary file would not
      exist when m_scratch was called (it wanted to link() to the name).  This
      was solved by simply unlink()ing the temporary file after it was created.

Merge: c2191f6 a2469f5
Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 9 15:52:34 2012 -0500

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 9 15:51:57 2012 -0500

    Remove OS-specific defines.  As part of it, remove scary longjmp() inside
    signal handlers that was part of the code under #ifdef BSD42.

Author: David Levine <levinedl@acm.org>
Date:   Mon Jan 9 14:08:38 2012 -0600

    Removed a remaining RETSIGTYPE.  Also change a few locals from int to unsigned to prevent signed-unsigned comparison mismatch.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 9 14:43:35 2012 -0500

    Clean up time handling; always assume we have tzset() and that the right
    prototypes are in time.h (both are valid in POSIX).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 9 14:07:37 2012 -0500

    Garbage collect autoconf support for checking for the header file for initgroups
    and snprintf() prototypes.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 9 13:56:30 2012 -0500

    We are making POSIX signal support a requirement; remove all support for
    other signal interfaces.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 9 13:38:02 2012 -0500

    Finally able to get rid of acconfig.h!  Since we're doing slightly better
    in the autoconf universe, rename configure.in to configure.ac, the "more
    correct" name for the configure script template.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jan 9 13:26:59 2012 -0500

    Switch from using RETSIGTYPE via autoconf to void, since POSIX says that's
    type to use for a signal handler.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 8 17:58:11 2012 -0600

    Removed unused bcmp, bcopy, bcpy, and bzero #defines.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 8 13:46:47 2012 -0600

    gcc -Wempty-body warned that the check of the result from the call to parse_mime() was ignored.  It has been that way since the beginning of history and was probably of no consequence, but fixed anyway.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 8 10:51:05 2012 -0600

    Removed traces of bboards and bbc from mh-profile and msh man pages.  Added see also of msh to packf man page.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 8 10:34:31 2012 -0600

    Wrapped #include of config.h with #ifdef HAVE_CONFIG_H, just in case someone ever wants to build without using configure.

Author: David Levine <levinedl@acm.org>
Date:   Sun Jan 8 10:27:15 2012 -0600

    Removed hard-coded -I.. and -I../.. from INCLUDES, it was redundant given -I$(top_srcdir).

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 10:03:35 2012 -0600

    Added Content-Description header with the filename of the attachment, with attachformats 1 and 2. This seems to be common practice now and gives mhlist something useful to display.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 09:53:36 2012 -0600

    Added note about fileproc and mhlproc mh-profile entries.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 09:19:59 2012 -0600

    Added removal of autom4te.cache directory to mostlyclean-local.

Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 09:17:34 2012 -0600

    Quoted argument to AC_LINK_IFELSE to silence authoheader warnings.

Merge: d2e40bd 0d56141
Author: David Levine <levinedl@acm.org>
Date:   Sat Jan 7 08:22:24 2012 -0600

    Merge branch 'fileproc_mhlproc_to_post'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 14:40:31 2012 -0500

    Move definition of LINK to mh header file, and garbage collect ATTVIBUG code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 14:18:46 2012 -0500

    Hardcode the defaults for Msg-Protect and Folder-Protect.  Also fix the
    documentation (had the wrong value for the default for Msg-Protect).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 14:12:13 2012 -0500

    Huh, apparantly I got rid of any support for POPSERVICE over a year
    ago!  Good riddance, I say.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 10:48:03 2012 -0500

    Garbage collect all of the builtin ftp client support.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 10:37:38 2012 -0500

    Garbage-collect MHRC (and make it the default).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 10:36:21 2012 -0500

    Garbage-collect SLOCAL_MBOX (and make it the default).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 10:35:16 2012 -0500

    Garbage-collect RPATHS support.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 10:29:35 2012 -0500

    Huh, turns out this define hasn't worked in forever ... the original
    changes were made to the lexer output, and silently vanished a decade
    ago when code was reorganized from zotnet to sbr!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 10:22:44 2012 -0500

    Remove last vestiges of #ifdef BANG

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 6 10:21:17 2012 -0500

    Remove DBMPWD, make it the default.

Author: David Levine <levinedl@acm.org>
Date:   Fri Jan 6 08:55:39 2012 -0600

    Added datarootdir definitions to silence warnings from configure.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 5 21:36:51 2012 -0600

    Fixed trivial compile warnings.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 5 22:13:08 2012 -0500

    Not sure why we're checking for st_blksize; it's required by POSIX and
    we're not even using the define!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 5 22:08:23 2012 -0500

    Switch the use of LOCKDIR in acconfig.h to --enable-lockdir.

Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 5 21:00:58 2012 -0600

    Merge branch 'master', remote-tracking branch 'origin'

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 5 13:39:47 2012 -0500

    Garbage collect all of the old UCI #ifdef'd code.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 5 12:26:48 2012 -0500

    Update this with mh-e changes.

Merge: 220dcd2 edc8d46
Author: David Levine <levinedl@acm.org>
Date:   Thu Jan 5 11:14:56 2012 -0600

    Feed fileproc and mhlproc from rcvdist, send, and whatnow to post.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 4 21:05:45 2012 -0600

    Feed fileproc and mhlproc from rcvdist, send, and whatnow to post.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Jan 5 12:05:43 2012 -0500

    Bring in all of the mh-e support that is actually used to be compiled by
    default, and garbage collect the stuff that is not used.

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 4 21:05:45 2012 -0600

    Feed fileproc and mhlproc from rcvdist, send, whatnow, and whom to post.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 22:28:44 2012 -0500

    Whoops, for right now we do need those signal function checks.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 22:21:07 2012 -0500

    Switch to standard autoconf macro for checking d_type field in struct dirent.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Mon Dec 26 09:19:35 2011 -0800

    Remove #ifdef around use of sigsetjmp().

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 25 19:17:58 2011 -0800

    Remove overrides for 'broken' stat macros.
    Remove redundant SEEK_* macro definitions.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 25 17:20:26 2011 -0800

    Include <stdio.h> for snprintf() prototype.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 25 12:23:41 2011 -0800

    Nuke directory processing conditionals; use dirent.h.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 25 12:16:08 2011 -0800

    Add back missing include of <sys/wait.h>

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 25 12:09:21 2011 -0800

    Clean up process wait to use POSIX waitpid() interface.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 22:01:07 2012 -0500

    No longer check for the mkstemp() function in the mkstemp library.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 25 11:58:38 2011 -0800

    Make use of mkstemp() unconditional (vs. mktemp().
    
    This patch also removes the m_scratch() and m_tmpfil() functions.
    They have been deprecated for a while, and are no longer used in any of
    the code base.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sun Dec 25 11:28:07 2011 -0800

    Remove compatibility functions that are always provided by the
    POSIX host environment.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 21:54:07 2012 -0500

    Get rid of checking for vfork(), since we no longer use.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Dec 24 18:18:22 2011 -0800

    Replace <arpa/ftp.h> with "h/arpa_ftp.h".

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Dec 24 18:17:10 2011 -0800

    Import non-Posix <arpa/ftp.h> for uip/ftpsbr.c.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Dec 24 18:15:06 2011 -0800

    Remove HAVE_ARPA_FTP_H and arpa/ftp.h references.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 21:38:07 2012 -0500

    Remove autoconf ospeed checks

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Dec 24 16:38:47 2011 -0800

    Ignore OSPEED/ospeed in termcap. Nothing current should need this.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 21:12:11 2012 -0500

    No longer check for termio.h or termios.h

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Dec 24 16:15:22 2011 -0800

    Collapse termio/termios/sgtty terminal interface code down to
    the Posix termios interface.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 21:06:45 2012 -0500

    Update configure file for removal of POSIX-mandated header files.

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Dec 24 15:40:48 2011 -0800

    Eliminate '#ifdef HAVE_FOO' for Posix-mandated FOOs.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 20:27:45 2012 -0500

    No longer need to check for the existance of sys/utsname.h

Author: Lyndon Nerenberg <lyndon@orthanc.ca>
Date:   Sat Dec 24 15:30:53 2011 -0800

    Deprecate uname() in favour of (Posix) gethostname().

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 20:20:26 2012 -0500

    Sigh.  I put the documentation about the -tls switch in the long description,
    but not in the command summary.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 16:30:50 2012 -0500

    Updated pending-release-notes

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 3 15:16:29 2012 -0600

    Added note about cpio failing to unpack an nmh tarball.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 15:17:54 2012 -0500

    Switch to using buffered I/O when doing TLS (but only for output).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jan 3 10:36:14 2012 -0500

    Updated these files since we've finally got 1.4 out the door.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 27 22:41:24 2011 -0600

    Moved #endif so that lockit () is only declared with DOT_LOCKING, to avoid compile warning without it.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 27 22:38:52 2011 -0600

    Reworked nmh.spec to support rpmbuild from source RPM.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 25 15:00:49 2011 -0600

    Removed unused vmh.c and wmh.c.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 24 20:28:50 2011 -0600

    Changed second argument of calls to part_ok() and type_ok() from
    0 to 1, to match what store_multi() in mhstoresbr.c does.
    
    A test case is below.  Without this fix, the following command:
    
      mhshow -part 1.1 -form mhl.null
    
    produced no output.  mhlist showed a part 1.1:
    
     msg part  type/subtype              size description
    1231       multipart/mixed            276
         1     multipart/related          107
         1.1   text/plain                  29
    
    and "mhstore -part 1.1" properly stored it.  With this
    fix, mhshow behaves properly and shows the part.
    
    Analogous behavior happened with -type text/plain.
    
    test case:
    
    MIME-Version: 1.0
    Content-Type: multipart/mixed; boundary="NextPart_001"
    Content-class: urn:content-classes:message
    Date: Thu, 19 May 2011 00:00:00 -0000
    From: sender@example.com
    To: recipient@example.com
    
    This is a multi-part message in MIME format.
    
    --NextPart_001
    Content-Type: multipart/related;
    	type="multipart/alternative";
    	boundary="NextPart_002"
    
    --NextPart_002
    Content-Type: text/plain;
    	charset="utf-8"
    
    This is the text/plain part.
    
    --NextPart_002--
    
    --NextPart_001--

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 24 19:36:32 2011 -0600

    Replaced cvs with git references.  I'm not sure about the cgit
    URL at the very end.  Also removed mention of source directories
    that were deprecated and removed long ago.

Author: David Levine <levinedl@acm.org>
Date:   Sat Dec 24 09:59:45 2011 -0600

    Added --with-rpmdir configure option so that user can set location of RPM build root.

Author: David Levine <levinedl@acm.org>
Date:   Tue Dec 13 18:33:07 2011 -0600

    Added comments about source of description, etc.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 12 22:50:06 2011 -0600

    Replaced use of GNU make shell function with backticks.  These were
    for the rpm target, which would most likely only be build on Linux.
    So they probably would have been OK, but just in case.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 12 22:25:52 2011 -0600

    The docs/Makefile install target didn't do anything before.  Added
    the files that go into doc to it, and removed them from nmh.spec.
    nmh.spec should now require zero maintenance.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 12 21:45:17 2011 -0600

    Added RPM/ so that git status doesn't mention that it's an untracked file.

Merge: d7f7173 bc20acd
Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 12 21:37:47 2011 -0600

    Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 12 21:35:52 2011 -0600

    Moved version number from nmh.spec to Makefile.in, to minimize
    maintenance for nmh.spec.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Dec 12 12:59:42 2011 -0500

    Make sure to not reset hghnum (in the Maildir code) if we are incorporating
    mail from a POP mailbox.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 11 17:03:56 2011 -0600

    Added first cut at nmh.spec, along with rpm: target in Makefile.in.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 11 13:44:50 2011 -0600

    Removed netdb.h because we no longer distribute it.

Author: David Levine <levinedl@acm.org>
Date:   Sun Dec 11 10:24:20 2011 -0600

    Removed unused local variables to eliminate warnings from gcc 4.6.2.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 7 12:00:26 2011 -0500

    Make sure to ignore the nmh dist file.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Dec 7 11:36:53 2011 -0500

    Since we're now moving past 1.4, bump this.

Author: David Malone <dwmalone@maths.tcd.ie>
Date:   Wed Dec 7 10:19:40 2011 -0500

    Add support to inc for incorporting email from Maildir dropboxes.
    
    Add missing #include for <sys/socket.h> to bring in definitions of PF_UNSPEC.
    
    Signed-off-by: Ken Hornstein <kenh@pobox.com>

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Apr 13 10:50:49 2011 -0400

    Whoops, user & port were in the wrong order so msgchk didn't work for POP
    connections.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Feb 21 20:44:30 2011 -0500

    Updated the developer README with a few notes about the git conversion.
    
    Signed-off-by: Ken Hornstein <kenh@pobox.com>

Author: Paul Vixie <vixie@vix.com>
Date:   Mon Feb 7 14:13:54 2011 -0500

    Signed-off-by: Ken Hornstein <kenh@pobox.com>
    
    More documentation about the hooks support.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Dec 21 16:50:24 2010 +0000

    Clean up code in inc.c
    
    Clean up the confusing use of a variable 'i' in inc.c.
    The case where it was being used as 'an error occurred
    which means we should not truncate the mailspool' is now
    called 'incerr' and merged with the equivalent 'p' variable
    used in the POP-specific code. Cases where it was being
    used as a random temporary are still called 'i' but now
    declared with a much more restricted scope.
    This fixes a compilation warning for some compilers.
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Dec 20 21:13:32 2010 +0000

    Suppress tsort diagnostic waffle
    
    tsort produces waffle to standard error if it detects loops in its input.
    For our purposes in ordering object files this is harmless, so just send
    it all to /dev/null.
    
    Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Dec 20 21:13:32 2010 +0000

    Fix unused-function warnings in lex output
    
    Fix the unused-function warnings in the output of lex. In particular, we
    silence a warning about yyunput being static but unused by exposing it as
    a global function. This costs us a few hundred bytes in the binary but
    the other available solutions are flex-specific or more complicated.
    YY_NO_UNPUT used to silence this but no longer works in recent flex.
    On the other hand YY_NO_INPUT does work to silence warnings about input().
    
    Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Dec 20 21:13:32 2010 +0000

    Fix used-uninitialised warning in fmt_rfc2047.c
    
    Fix a used-uninitialised warning in fmt_rfc2047.c.
    I don't think it can actually be used uninitialised, but the
    code is too complicated for the compiler to realise this.
    
    Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Dec 20 21:13:32 2010 +0000

    Fix used-uninitialised warning in new.c
    
    Fix a used-uninitialised warning in new.c by having the check_folders()
    routine return first=last=NULL for empty folder lists. This is a more
    sensible API anyway. (It would not actually have been possible for
    the code to try to use last while it was uninitialised, as it happens.)
    
    Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Dec 20 21:13:32 2010 +0000

    Fix crash if fnext/fprev are given an empty folder list
    
    Add a check for a NULL pointer, which stops fnext/fprev
    from segfaulting if given an empty folder list (for example
    via 'fnext -folders emptyfile').
    
    Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Dec 20 19:54:43 2010 +0000

    Fix warning in sbr/folder_addmsg.c by code cleanup
    
    Clean up some rather oddly written code in folder_addmsg()
    so it is easier to understand for both humans and for the
    compiler (and the compiler thus stops complaining about an
    uninitialised variable).
    
    Signed-off-by: Peter Maydell <pmaydell@chiark.greenend.org.uk>

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 16 13:20:31 2010 -0500

    Fix so this compiles without SASL support.
    
    Damn you, Oliver Kiddle, for finding all of the bugs I add to nmh!

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 16 13:11:17 2010 -0500

    All of the arguments to AC_ARG_ENABLE need to be quoted, otherwise the
    last action doesn't make it into the configure script.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 16 13:02:32 2010 -0500

    Make sure we ignore config.h.in~

Author: Markus Schnalke <meillo@marmaro.de>
Date:   Thu Dec 16 01:36:43 2010 +0100

    fix typo and clarify two sentences in mhpath man page

Author: Markus Schnalke <meillo@marmaro.de>
Date:   Thu Dec 16 01:25:11 2010 +0100

    improve mhparam man page

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Thu Dec 16 01:23:16 2010 +0100

    fix badly formatted code found by Markus Schnalke

Author: Scott Snyder <snyder@bnl.gov>
Date:   Wed Dec 15 22:17:52 2010 +0100

    propagate and check return status of close() in slocal

Author: Markus Schnalke <meillo@marmaro.de>
Date:   Wed Dec 15 22:02:30 2010 +0100

    document msg parameter to folder

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Dec 14 18:04:01 2010 +0100

    switches need to be renumbered following removal of some switches so,
    e.g. inc -version was not working

Author: Ken Hornstein <kenh@pobox.com>
Date:   Thu Dec 9 15:29:29 2010 -0500

    Massive garbage collection.  Remove functionality for APOP, RPOP,
    all NNTP support (including bboards) and MPOP.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 8 14:36:36 2010 -0600

    	* uip/whatnowsbr.c: enforce requirement of at least one file
    	  argument to attach command.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 8 10:47:03 2010 -0600

    man/send.man: added name= portion to Content-Type
    headers to reflect 2006-10-24 change to uip/sendsbr.c.
    That change allowed mhstore to use the (file)name when
    extracting attachments.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Dec 3 15:23:11 2010 -0500

    Remove RCS keywords, since they no longer work after git migration.

Author: Ken Hornstein <kenh@cmf.nrl.navy.mil>
Date:   Thu Dec 2 21:04:30 2010 -0500

    Whoops, forgot to bracket the calls for TLS shutdown with a #ifdef TLS_SUPPORT

Author: Ken Hornstein <kenh@cmf.nrl.navy.mil>
Date:   Thu Dec 2 20:37:54 2010 -0500

    Update for git conversions (and cleanup of autogen.sh to use autoreconf)

Author: Ken Hornstein <kenh@cmf.nrl.navy.mil>
Date:   Thu Dec 2 18:03:22 2010 -0500

    Change configure.in to emit a warning when an argument is given to
    --with-cyrus-sasl.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Sun Nov 21 22:19:51 2010 +0000

    Fix the test for sasl.h to look in the correct place.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Nov 19 20:13:39 2010 +0000

    (Minor) cleanup of some of the autoconf code with respect to the handling
    of compiler flags for SASL, and also rototill (and simplify) the autoconf
    handling for the same.
    
    Add TLS support for the SMTP MTA.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Fri Nov 12 23:28:26 2010 +0000

    man/slocal.man: fix formatting error that meant a subsection heading
    wasn't displayed as such. Followon cleanup: since the new heading is too
    wide to fit in the margin, tidy the margin to 4 characters wide so we
    are consistent with how all the headings are displayed.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Wed Nov 10 22:26:07 2010 +0000

    configure.in: add a level of expansion for mandir when printing the
    end-of-configure install path summary.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Nov 9 21:33:22 2010 +0000

    man/rmm.man: fix error in synopsis: the option is [no]unlink, not [no]link.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Fri Nov 5 22:06:10 2010 +0000

    Silence a (harmless) uninitialized variable warning.

Author: David Levine <levinedl@acm.org>
Date:   Tue Aug 31 15:00:53 2010 +0000

    	* uip/.cvsignore:  added "new".

Author: Earl Hood <earl@earlhood.com>
Date:   Sat Feb 6 07:47:38 2010 +0000

    #ifdef AI_ADDRCONFIG since older IPv4-only systems may not define this flag,
    causing files that use to not compile.

Author: Earl Hood <earl@earlhood.com>
Date:   Sat Feb 6 07:45:47 2010 +0000

    Fixed variable declaration so older compilers will not complain.
    I.e. Older compilers may not support C99, so variables must be
    declared at the beginning of a block.

Author: Earl Hood <earl@earlhood.com>
Date:   Thu Feb 4 01:39:21 2010 +0000

    * Bug #15213, #18635: The use of the insecure m_scratch() and
      m_tmpfil() functions have been replaced by m_mktemp()
      or m_mktemp2() functions (defined in sbr/m_mktemp.c).
      The new functions use mkstemp() to securely create
      temporary files to avoid the numerous race conditions
      that exist with the old functions.  This does assume
      that mkstemp() is available.  Unsure if we need to
      create an alternative implementation if mkstemp() is
      not available.  More information about new temp file
      functions in m_mktemp.c, including the support for
      MHTMPDIR, TMPDIR, and TMP envvars.
    
    NOTE: The files sbr/m_scratch.c and sbr/m_tmpfil.c should be removed.
    Until more testing verifies changes to support new functions have not
    broken functionality, the files are be left in the tree, but comments
    have been added stating the functions in them should not be called.

Author: Earl Hood <earl@earlhood.com>
Date:   Wed Feb 3 05:56:56 2010 +0000

    * mts/smtp/smtp.c: added SASL support if mts configuration
      setting is set to "sendmail".  This is useful if sendmail
      conf option is to a custom script that creates a proxy
      connection to an smtp server.
    
    * sbr/mts.c: added support for MHMTSCONF and MHMTSUSERCONF
      envvars.  The former specifies an alternative system
      mts.conf to use.  The later specifies a user-specific
      mts.conf to use.  This one will be read after the system
      conf, so the user's conf only needs to set options they
      want to override.  The MHMTSUSERCONF allows a user to set
      personal alternative mail submission methods w/o affecting
      other users on the system.
    
    * uip/whom.c: added SASL-based options so address checking
      can work against a server that requires SASL.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 30 01:42:45 2009 +0000

    	* uip/mhlistsbr.c, uip/mhlsbr.c, uip/picksbr.c: cast
    	pointers to unsigned long before casting to unsigned int
    	to avoid warnings on 64-bit about casting from pointer
    	to int of different size.

Author: David Levine <levinedl@acm.org>
Date:   Wed Dec 30 01:41:47 2009 +0000

    	* uip/new.c: cast folder_len to int to avoid warning on
    	64-bit about passing a size_t to an int conversion specifier.

Author: David Levine <levinedl@acm.org>
Date:   Fri Dec 25 14:47:39 2009 +0000

    	* uip/inc.c: gcc 4.4.1 noticed that maildir could have been
    	used before initialization.  In fact, if that code was ever
    	reached, maildir would never have been initialized.  It's in
    	an adios call, so replaced with NULL.

Author: David Levine <levinedl@acm.org>
Date:   Mon Dec 21 17:18:04 2009 +0000

    * mts/smtp/smtp.c: In sm_auth_sasl (), removed zeroing of
    sasl_inbuffer because it could be used in sm_fget ().  Also,
    removed allocation of sasl_inbuffer because that was done in
    either smtp_init () or sendmail_init ().

Author: Josh Bressers <josh@bress.net>
Date:   Mon Jan 26 13:38:13 2009 +0000

    Remove duplicate sm_fgetc() declaration

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jan 21 19:38:36 2009 +0000

    Fix warning in getaddrinfo() call.
    Add missing support for -port in whatnow.
    Make sure the SASL input buffer is allocated when using the sendmail mts.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sun Jan 18 04:48:42 2009 +0000

    	* etc/mhn.defaults.sh: Never try to make mhshow start xterm.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sat Jan 17 16:53:07 2009 +0000

    Note 'new' commands.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Sat Jan 17 16:47:29 2009 +0000

    	* test/runtest, test/tests/inc/test-deb359167,
    	test/tests/inc/test-eom-align, test/tests/manpages/test-manpages:
    	Load common.sh via absolute path, otherwise some /bin/sh
    	(e.g. dash) can't load it.
    
    	* uip/Makefile.in, uip/new.c, test/tests/new/test-basic: Add new
    	program, and fn/fp/unseen symlinks.
    
    	* test/{runtest,setup-test}: Move MH profile under Mail directory
    	so each test script will have its own to muck with, if needed.
    
    	* h/Makefile.in, h/crawl_folders.h, sbr/Makefile.in,
    	sbr/crawl_folders.c, uip/folder.c: Extract the folder crawling
    	code from folder.c into new crawl_folders function, using a
    	callback to assemble the folder info in folder.c.  Drop compare
    	function and use strcmp instead.  Rename addfold and addir to
    	add_folder and add_children (add dir vs. add folder?
    	confusing names).

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 16 15:48:09 2009 +0000

    Move freeaddrinfo() to inside of our loop; this prevents a memory leak
    and also prevents it from being called with a NULL pointer.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Jan 16 02:28:54 2009 +0000

    Massive overhaul of networking code.  Changes:
    
    - All networking interfaces now converted to new APIs (getaddrinfo() and
      the like).  All networking now supports IPv6 (with the exception of
      the built-in FTP client).
    - SASL security layers are now supported for SMTP.
    - Command-line and profile-based selection of the SMTP server and port.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Fri Dec 26 21:54:19 2008 +0000

    * sbr/m_getfld.c: fix two bugs which could cause us to walk off
    the beginning of the stdio or prefix-string buffer when checking
    for presence of the end-of-message delimiter in some situations.
    This might cause inc to dump core if you were unlucky. (This was
    Debian bug 359167.)
    * test/tests/inc/{md5sums,msgheader.txt,test-deb359167,
    test-eom-align,fromline.txt,filler.txt,deb359167.mbox}: new tests
    both for the specific problem and to try to check various alignments
    of the eom string with the stdio buffer ending.
    * test/common.sh: Added some functions for doing progress indicators.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Fri Dec 26 16:32:07 2008 +0000

    test/common.sh: new file for common utility functions for the test scripts.
    Moved findprog out of manpage test script into this new file.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Thu Dec 25 23:30:33 2008 +0000

    test/runtest: automatically run setup-test if it hasn't already
    been done. Improve error handling in test script with 'set -e'.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 23 18:38:22 2008 +0000

    	* h/mh.h: raised NAMESZ from 128 to 999.  RFC 2822 limits line
    	lengths to 998 characters, so a header name can be at most that long.
    	m_getfld limits header names to 2 less than NAMESZ, which is fine,
    	because header names must be followed by a colon.  Add one for
    	terminating NULL.

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 23 18:14:52 2008 +0000

    	* sbr/m_getfld.c: in warning message, use NAMESZ-2 instead of
    	NAMESZ-1 bytes because the message says "exceeds", not
    	"is greater than or equal to".

Author: David Levine <levinedl@acm.org>
Date:   Thu Oct 23 16:45:36 2008 +0000

    	* docs/MAIL.FILTERING: added note on removing procmail -f or
    	-r options to try to suppress generation of a "From " line on
    	incoming messages.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Tue Aug 19 04:36:42 2008 +0000

    +mhn.defaults.sh.cfg

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Thu Aug 14 19:47:29 2008 +0000

    	* test/setup-test: Don't run autogen.sh unless needed.  Build in a
    	blddir under the temporary directory so as not to interfere with
    	whatever the developer may be doing in the source directory.
    	If the temporary directory already exists, rebuild and install it.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Thu Aug 14 06:19:08 2008 +0000

    This is what happens with last-minute "safe" improvements: actually point
    chset to something in the new merged InitText!

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Thu Aug 14 01:50:45 2008 +0000

    	* sbr/ambigsw.c: Send print_sw output to stderr.  This avoids
    	strange problems with scan `pick -bogus`, not to mention being
    	nicer anyway.
    
    	* sbr/getans.c, sbr/print_help.c, uip/msh.c: Send print_sw output
    	to stdout.
    
    	* h/prototypes.h, sbr/print_sw.c (print_sw): Add FILE * argument
    	and send output there rather than to stdout.
    
    	* test/tests/pick/test-stderr: Add test that error messages don't
    	end up going to stdout.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Thu Aug 14 01:31:11 2008 +0000

    	* uip/pick.c: Ensure valid sequence name as soon as we parse it from
    	command, instead of searching the messages first.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Thu Aug 14 01:28:56 2008 +0000

    	* uip/pick.c: Print matching messages immediately, instead of
    	waiting until the very end to print anything.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Thu Aug 14 01:11:12 2008 +0000

    	* uip/Makefile.in, uip/popi.c: Remove popi.c, which has been dead
    	since PatchSet 257 (2000/06/12 11:07:34 UTC).

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Thu Aug 14 00:56:38 2008 +0000

    	* h/mhparse.h: Move interfaces also used by mhbuildsbr.c here
    	from mhparse.c.
    
    	* uip/Makefile.in (mhbuild): Build with mhparse.o.
    
    	* uip/mhbuildsbr.c: Drop the duplication of mhparse.c.
    
    	* uip/mhbuild.c, uip/mhlist.c, uip/mhn.c, uip/mhshow.c,
    	uip/mhstore.c, uip/mhtest.c: Drop check swdeclaration, which is
    	now in mhparse.h.
    
    	* uip/mhparse.c: Move some declarations to mhparse.h, and remove
    	'static' from the definitions here.
    	(get_ctinfo): Take magic mhbuild support from mhbuildsbr.c's copy,
    	and adapt callers.
    	(incl_name_value, extract_name_value): Move from mhbuildsbr.c to
    	support get_ctinfo change).
    	(get_content, open7Bit): Add Content-Disposition support, added to
    	mhbuildsbr.c's copy in mhbuildsbr.c r1.12 (PatchSet 549).
    	(InitText): Default to CHARSET_UNSPECIFIED instead of "US-ASCII",
    	as mhbuildsbr.c's copy did.  Explain termproc.
    	(openBase64, openQuoted, open7Bit): Fix comment from r1.5:
    	suffixes, not prefixes.
    	(openMail): Explain showproc.
    
    	* test/tests/mhshow/test-cte-binary: Add test for
    	Content-Transfer-Encoding: binary (Debian #136976).
    
    	* test/tests/mhbuild/test-forw: Add an mhbuild test, testing forw
    	with and without RFC-934 mode.  More mhbuild tests would be nice.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Wed Aug 13 23:59:56 2008 +0000

    Oops, meant to use $failed (number of failed checks) as the exit code.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Wed Aug 13 23:32:03 2008 +0000

    Add descriptive headers, as other tests have.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Wed Aug 13 18:27:36 2008 +0000

    	* test/tests/bad-input/test-header: Add test for it.
    
    	* sbr/m_getfld.c: If we reach the end of the line without finding
    	a ':' when parsing a header field, treat that line as the
    	beginning of the body rather than blowing up.  These messages are
    	usually spam, but it's nice to be able to at least scan them.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Wed Aug 13 01:01:12 2008 +0000

    	* test/tests/mhshow/test-qp: Test various valid and invalid
    	escape sequences.
    
    	* uip/mhparse.c (openQuoted): Simplify the decode-or-show for loop by
    	peeking ahead to the next byte(s) when encountering '=', and just let
    	invalid escape sequences through as literals (fixes bug #15245).

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Wed Aug 13 01:00:20 2008 +0000

    Ignore test-temp-dir.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Tue Aug 12 21:01:30 2008 +0000

    add one more hint for developers, to explicitly point at docs/README.developers

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Aug 12 18:04:29 2008 +0000

    autogen.sh (new file): add script for running the GNU autotools in the
    right order. Mention and use new script in the appropriate places.

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Fri Aug 8 23:45:24 2008 +0000

    	* sbr/discard.c, sbr/m_getfld.c, uip/scansbr.c: Add support for
    	DragonFlyBSD stdio (from NetBSD pkgsrc).

Author: Eric Gillespie <epg@pretzelnet.org>
Date:   Fri Aug 8 04:45:05 2008 +0000

    s/ls/cd/ in comment (probably pasted from test-ls)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Aug 5 21:06:00 2008 +0000

    uip/folder.c: chdir(nmhdir) in main rather than in dodir, which
    is called many times.  Drop the chdir in get_folder_info, which
    served no purpose at all.  If struct stat has d_type (BSD), use
    that to skip processing (strcmp, stat, and so on) of message
    files, mostly undoing the slow-down from the last change.
    Plus autoconf machinery to detect d_type field. Patch from Eric Gillespie.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Aug 5 19:09:03 2008 +0000

    Dump hacky overoptimisation in addir -- it doesn't actually get the case
    of symlinks to directories right. Patch from Eric Gillespie.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Aug 5 19:05:23 2008 +0000

    Simplify dodir/addir/addfold (patch from Eric Gillespie)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Aug 3 18:47:56 2008 +0000

    bug #23319: rework the way we handle the working directory when invoking
    the user's shell, so that we don't have	issues when the cwd contains a
    space or shell special character.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Aug 3 18:45:34 2008 +0000

    test/setup-test: use 'set -e' so we stop on compile failure.
    Configure --enable-debug for convenience in debugging.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Aug 3 15:19:53 2008 +0000

    Add protective 'do { ... } while (0)' wrappers to multistatement macros

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Aug 3 15:14:23 2008 +0000

    Bug #23436: fix some minor manpage syntax errors and add a test which runs
    groff over them and checks that no warnings are emitted.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Aug 3 15:13:34 2008 +0000

    Allow tests to indicate that they have been skipped by printing their
    own message and returning with exit status 120.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Aug 3 13:59:19 2008 +0000

    Ignore editor backup files

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Aug 3 13:54:37 2008 +0000

    etc/replcomps, etc/replgroupcomps: Trim trailing whitespace from
    Subject field (patch from Eric Gillespie)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Aug 3 13:32:17 2008 +0000

    When doing an if-test on the result of a function which returns a string
    result, check whether the string is non-empty (as the documentation says we
    do). Previously we were always testing the integer 'value'.

Author: Josh Bressers <josh@bress.net>
Date:   Fri Jul 25 01:07:39 2008 +0000

    * test/setup-test: Run 'make clean' before building

Author: Josh Bressers <josh@bress.net>
Date:   Fri Jul 25 00:11:53 2008 +0000

    * test/runtest: cat test-temp-dir only once.  Destroy and create
    test Mail hierarchy here, so each test has its own independent
    test data.
    
    * test/setup-test: Drop needless pushd/popd, which don't exist in
    sh anyway.  Don't use aclocal, which is part of automake.
    Don't create Mail hierarchy here (see test/runtest).
    
    * test/tests/folder/test-create, tests/folder/test-total: Drop
    unused BINDIR.
    
    * tests/pick/test-pick: Remove failing no-op test.
    
    * test/tests/scan/test-scan: Write expected and actual output to
    files and diff them.  This way, if the output differs, diff
    provides the FAILing exit code and shows the differences.

Author: Josh Bressers <josh@bress.net>
Date:   Fri Jun 13 00:11:49 2008 +0000

    * man/repl.man, etc/mhl.reply:
    Add an attribution line when replying to messages.

Author: Josh Bressers <josh@bress.net>
Date:   Thu Jun 12 23:29:16 2008 +0000

    Remove an accidentally committed file

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Jun 2 22:37:01 2008 +0000

    When building on gcc, use noreturn attribute on adios and the various done
    functions.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Jun 2 22:05:11 2008 +0000

    Back out previous, completely broken, change (due to a foulup I was
    compiling a different tree to the one I was committing to CVS).

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Jun 2 21:49:07 2008 +0000

    If we're compiling with gcc, mark adios() as never returning (better code
    and fewer spurious 'uninitialized variable) warnings)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Jun 1 16:50:22 2008 +0000

    Update bit of docs about release announcements.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Thu May 22 10:37:55 2008 +0000

    Don't use MB_CUR_MAX if we aren't compiled with multibyte support.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Thu May 22 10:21:48 2008 +0000

    Factor out common code for writing ls shell command. Rework its length
    checking so it doesn't rely on the return value of sprintf(), for the
    benefit of SunOS 4.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Wed May 21 18:05:49 2008 +0000

    Don't rely on realloc() to follow POSIX in handling a NULL pointer

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Wed May 21 17:16:44 2008 +0000

    Add some table size declarations for the benefit of elderly lexes with
    small defaults (eg SunOS 4)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue May 20 19:04:57 2008 +0000

    Update comment now we don't use lex -o.

Author: David Levine <levinedl@acm.org>
Date:   Sun May 18 13:56:58 2008 +0000

    * sbr/addrsbr.c: removed "err" from conditional, because gcc
    correctly warned that it would always evaluate as true.  It's
    the address of a static array.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Fri May 16 15:31:26 2008 +0000

    don't use $< in target rules in makefiles, as POSIX says it's only defined
    in inference rules

Author: David Levine <levinedl@acm.org>
Date:   Tue May 13 02:39:04 2008 +0000

    * configure.in, INSTALL: if --enable-masquerade is not
    specified to configure, enable all supported masquerade forms.
    This allows users to masquerade with the default
    configuration.	That seems to be more worthwhile now than
    trying to prevent users from using it, especially with
    single-user installations or those where a user can edit
    etc/mts.conf.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun May 4 20:58:35 2008 +0000

    bug #23167: sbr/ruserpass.c (ruserpass): make bad permissions on .netrc be
    an instantly fatal error. Previously we returned an error value; however, no
    caller was checking it. So now ruserpass() has a void return type.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun May 4 16:09:08 2008 +0000

    * bug #23163: various minor fixes for the benefit of older Unixes
    (specifically SunOS 4): reintroduce strerror() substitute implementation;
    provide memmove() substitute implementation
    * bug #23163: fix broken 'build outside source directory' feature
    * bug #23162: sbr/dtime.c: fix stray HAVE_TM_GMTOFF that wasn't updated
    to the new macro name.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Wed Apr 30 18:47:02 2008 +0000

    Provide SASL_CB_AUTHNAME callback (avoids problem with wrong username
    being sent in some situations)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Apr 29 21:05:30 2008 +0000

    Correct various places in smtp.c where the reply string might not have been
    correctly NUL-terminated. Includes a fix for a particularly nasty and long
    standing screwup where the buffer length counting in smhear() was totally
    broken for continued lines from the server.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Apr 29 20:59:04 2008 +0000

    Fix SASL issue properly, by making sm_rrecord() and thus sm_hear() set
    the length of the reply string correctly (the SASL libraries now care
    if you pass in the wrong length).

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Apr 29 20:53:33 2008 +0000

    Revert previous SASL fix (wrong approach)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Tue Apr 29 17:04:38 2008 +0000

    Cope with sasl_decode64() returning SASL_CONTINUE as well as SASL_OK.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Apr 28 21:13:53 2008 +0000

    Add remark about how to update the homepage.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 27 20:58:50 2008 +0000

    Update some of the 'how to do a release' documentation

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 27 20:55:28 2008 +0000

    Up version string to 1.3-dev for the CVS trunk.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 27 19:54:37 2008 +0000

    Use hyphen, not plus (corresponding to previous RCx naming convention)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 27 19:44:58 2008 +0000

    Bump version number, date for release of 1.3 RC1

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Fri Apr 11 14:12:54 2008 +0000

    move most remaining macros out of acconfig.h which is an obsolete feature of
    autoconf

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sat Apr 5 19:04:41 2008 +0000

    * bug #18655: fix use of admonish() for a fatal error (should
    be adios(); only actual effect would be wrong exit code).
    Thanks to Craig Leres for spotting this.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sat Apr 5 18:41:37 2008 +0000

    Bug #20028 (Debian bug 399271): fix code assuming that pointer
    differences were 32 bits -- thanks to Dean Gaudet for the patch.

Author: Josh Bressers <josh@bress.net>
Date:   Fri Jan 25 21:00:42 2008 +0000

    * uip/mhshowsbr.c (show_all_messages): Be more generous when parsing
        multipart messages.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Thu Nov 8 02:28:38 2007 +0000

    Insert types for args of some function pointers to improve type checking.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Sun Nov 4 11:54:32 2007 +0000

    Return type of (*done)() changed to void. default_done() replaced by
    exit(). All dead code "return 1" lines removed from *_done()s and replaced
    by explicit "return 1" following done() calls in main()s (they should
    never be reached). This should make cleaning up program termination
    structures easier.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Sun Nov 4 08:52:17 2007 +0000

    Refactor cts pointer and free()ing on abnormal exit of associated list
    into mhfree.c, eliminating duplication.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Sun Nov 4 04:47:17 2007 +0000

    Change link-time overriding of done() to run-time reassigning of equivalent
    (*done)(). This should make changing the return type of done and the
    rationalisation of exit code easier.

Author: Bill Wohler <wohler@newt.com>
Date:   Mon Sep 24 07:02:03 2007 +0000

      The MH web site is now http://rand-mh.sourceforge.net/ and the MH
      book is now at http://rand-mh.sourceforge.net/book/.
    
    			  Changed Questions
    
    1.02 ...current version?	mailutils 1.2
    1.03 Where can I get MH?	Debian 4.0 nmh 1.1-RC4, update links, mu 1.2
    1.04 ...references for MH?	Refer to SourceForge
    1.06 How...print a MH manual?	Refer to SourceForge
    2.17 How...build MH on a Mac?	Use fink
    4.05 ...tools to archive MH?	Mention swish++, mairix, and namazu

Author: Josh Bressers <josh@bress.net>
Date:   Tue Aug 21 21:19:39 2007 +0000

    * Red Hat Bug #253342: inc.c, utils.c, utils.h: When inc is run with the
    -silent flag, don't exit(1) for no apparent reason.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 29 22:57:36 2007 +0000

    Rename functions to avoid clash with C library exp2().

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 29 22:34:04 2007 +0000

    Suppress 'uninitialised variable' warning.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 29 22:05:02 2007 +0000

    On Linux, define _GNU_SOURCE so that GNU libc exposes the wcwidth()
    prototype in wchar.h.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 29 22:01:04 2007 +0000

    Change name of internal function to avoid potential conflicts with GNU
    libc's getline() function.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 29 20:49:32 2007 +0000

    Minor rearrangement so variables/functions used only if !HAVE_LIBLOCKFILE
    are also declared only in that case.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Apr 29 19:36:14 2007 +0000

    For gcc, make the default CFLAGS include -Wno-pointer-sign if the compiler
    recognises it. gcc 4 now by default produces a large volume of these
    warnings, which I believe are probably spurious and definitely a lot of
    work to go through and fix. So we suppress them for now so that the other
    warnings are more easily visible.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Tue Apr 17 04:53:54 2007 +0000

    buffer is compared with cp, and so needs to be changed to unsigned too.

Author: Josh Bressers <josh@bress.net>
Date:   Tue Apr 17 01:02:08 2007 +0000

    Initial checkin of a testsuite

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Fri Apr 13 11:53:08 2007 +0000

    Change all chars being passed to the ctype macros (isalph(), etc.) to
    be unsigned chars, following through to change any other types as
    necessary (e.g. comparison between two pointers). Not all chars have
    been changed to unsigned chars; just those that were in danger of being
    sign extended when passed to the int-taking ctype macros.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Tue Apr 10 22:12:26 2007 +0000

    We're not using the .Bu macro anymore.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Tue Apr 10 06:13:27 2007 +0000

    Fix for bug #11139: mhl -form mhl.reply omits '> ' on some lines.
    
    putcomp() was assuming only the first call on the body had the buffer
    beginning at the start of a line.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Tue Apr 10 03:32:48 2007 +0000

    Application of patch #5218: patch for bug #9742. Fixes a typo in the
    size arg of snprintf(). mhlist output which used to have incorrect lines
    such as
         1.2   multipart/mixed            772
         1.21  text/plain                   9
         1.22  multipart/mixed            162
    now have the correct
         1.2   multipart/mixed            772
         1.2.1 text/plain                   9
         1.2.2 multipart/mixed            162

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Wed Mar 21 00:21:10 2007 +0000

    bug #18630, #18631, #18632, #18634: various patches from Craig Leres
    fixing error message argument problems.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Wed Mar 21 00:18:19 2007 +0000

    bug #15212: remove configure test for broken AT&T vi. This test was broken
    and unfixable. Support for manually defining ATTVIBUG remains.

Author: Josh Bressers <josh@bress.net>
Date:   Tue Jan 16 02:08:10 2007 +0000

    Add a missing header file

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Sun Nov 5 13:20:46 2006 +0000

    Changed bold "-all" to unbolded "all". It's a reserved msgs word, not a flag.

Author: David Levine <levinedl@acm.org>
Date:   Tue Oct 24 14:31:40 2006 +0000

    * uip/sendsbr.c: with attachformat values of 1 or 2, add
    name= portion to Content-Type header.  This makes them
    consistent with attachformat value 0.  And it allows mhstore
    to use that (file)name when extracting attachments.

Author: Josh Bressers <josh@bress.net>
Date:   Sun Aug 27 01:19:39 2006 +0000

    * configure.in: If we're not using dotlocking, there is no need to set inc
    sgid.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Sun Jun 4 08:37:24 2006 +0000

    Fixed bug introduced when changing from check_folder() to new
    create_folder() function. The folder name needed to be expanded to an
    absolute path first. Similar things may have happened with other
    conversions.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Thu Apr 27 12:00:28 2006 +0000

    Created pluspath function to check for '+' prefix and change flag for
    path() appropriately. This eliminates some duplicate prefix processing,
    but not all. The path functions need to be restructed; this is the first
    step.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Mon Apr 24 07:10:03 2006 +0000

    ssequal() does not check for a substring, but for a prefix, so added a
    comment to this effect. If this is sufficient, the function body should
    remain unchanged but the name and comments should be modified. If not,
    then the function needs to be corrected.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Sat Apr 22 16:33:48 2006 +0000

    fixes case where a very long character-class range (128 or
    more characters) causes negative indexing into pattern string.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Sun Apr 16 06:47:59 2006 +0000

    Fixed a typo.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Fri Apr 14 14:10:15 2006 +0000

    Created function open_form() to open form file or fallback to default
    components file, with error handling. Replaced duplicated code with call
    to this function.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Fri Apr 14 08:42:04 2006 +0000

    Fixed a couple of typos.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Fri Apr 14 08:21:35 2006 +0000

    Sanitised some dodgy homedir finding code, but it still might not make
    sense.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Fri Apr 14 07:54:26 2006 +0000

    Get rid of some trivial warnings; unused variables, ambiguous if-else,
    missing headers.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Thu Apr 13 14:24:41 2006 +0000

    Make print_aka() and print_usr() static. They're not used outside ali.c.

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Tue Apr 11 14:09:11 2006 +0000

    Created app_msgarg() (append message arg) and a simple resizable array
    struct to go with it that do almost exactly what the code they've replaced
    was doing.
    Replaced this (duplicated) code in many files with a call to app_msgarg().

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Tue Apr 11 05:48:43 2006 +0000

    Completing the .cvsignore list(s).

Author: Joel Reicher <jjr@panacea.null.org>
Date:   Sun Apr 9 14:06:31 2006 +0000

    Fixed a small typo.

Author: Paul Fox <pgf@foxharp.boston.ma.us>
Date:   Fri Mar 31 15:14:49 2006 +0000

    this commit:
        - adds range support to character classes
        - fixes out-of-bounds references to the case-folding array
            when doing case comparisons for 8-bit message text
        - makes character classes as case tolerant as the rest
            of the pick regexp machine.  (where lowercase chars in
            patterns should match uppercase in the text.)
        - fixes an uninitialized pointer warning, which might actually have
            been a real bug

Author: David Levine <levinedl@acm.org>
Date:   Thu Mar 30 22:19:50 2006 +0000

    * uip/sendsbr.c: with attachformat values of 1 or 2, only
    generate Content-Disposition headers for MIME attachments, not
    for the message contents themselves.  Microsoft Outlook Build
    10.0.6626, at least, doesn't show the message contents if they
    have Content-Disposition.

Author: Bill Wohler <wohler@newt.com>
Date:   Fri Mar 10 09:00:20 2006 +0000

    			  Changed Questions
    
    1.03 Where can I get MH?	nmh 1.2

Author: Bill Wohler <wohler@newt.com>
Date:   Fri Mar 10 06:58:28 2006 +0000

    Since faqs.org appears to be moribund, I'm now using my site as the
    official location of the MH FAQ. I added some missing quotes in
    various places, so now Emacs highlighting works better.
    
    			    New Questions
    
    5.26 How do I fix a bogus In-Reply-To or missing References field?
    
    			  Changed Questions
    
    1.02 current version?		nmh 1.2
    1.04 references for MH?		New FAQ official site. MH-E manual URL
    5.15 make sense of replcomps?	Use 1.1 version

Author: Josh Bressers <josh@bress.net>
Date:   Thu Mar 9 19:51:13 2006 +0000

    * sbr/fmt_rfc2047.c (decode_rfc2047): Don't close the iconv descriptor if
      it isn't valid.

Author: Josh Bressers <josh@bress.net>
Date:   Wed Mar 8 12:14:15 2006 +0000

    * (mh_strcasecmp): Rename the private strcasecmp function to mh_strcasecmp.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Sun Mar 5 14:48:05 2006 +0000

    and close iconv handle if encoded block empty

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Sun Mar 5 14:38:23 2006 +0000

    don't try to malloc 0 bytes if an RFC2047 encoded block is empty

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sat Mar 4 22:14:18 2006 +0000

    Install scripts with INSTALL_SCRIPT so INSTALL_PROGRAM can be set to
    'install -s' without it causing the installation of the scripts to fail.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 25 14:14:06 2006 +0000

    * uip/sendsbr.c: replaced st_mtim with st_mtime, that's what
      it should have been.  Added #include of h/tws.h to pick up
      dtime() prototype.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 21 04:13:06 2006 +0000

    Replaced second line of Content-Tyhpe of -attachformat 0 example.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 21 03:58:31 2006 +0000

    * h/mh.h, h/prototypes.h, uip/mhbuildsbr.c, uip/send.c,
      uip/sendsbr.c, uip/viamail.c, uip/whatnowsbr.c, man/send.man:
      added -attachformat switch to send, to support alternate MIME
      header contents when using -attach.  See send man page for
      description.

Author: David Levine <levinedl@acm.org>
Date:   Tue Feb 21 03:51:53 2006 +0000

    * man/mhbuild.man: wrapped one appearance of "Content-Disposition"
      with quotes, to be consistent with others.

Author: Josh Bressers <josh@bress.net>
Date:   Tue Feb 21 01:11:51 2006 +0000

    * h/utils.h, sbr/utils.c, uip/flist.c, uip/folder.c: Move duplicate
      function num_digits into utils.c

Author: Josh Bressers <josh@bress.net>
Date:   Tue Feb 21 01:05:24 2006 +0000

    Add missing create_folder prototype.

Author: Josh Bressers <josh@bress.net>
Date:   Mon Feb 20 03:09:07 2006 +0000

    * sbr/m_draft.c, sbr/utils.c, uip/folder.c, uip/inc.c, uip/mhstoresbr.c,
    uip/popi.c, uip/refile.c: Add create_folder() function, replacing duplicate
    code during folder creation.

Author: David Levine <levinedl@acm.org>
Date:   Sat Feb 18 16:26:37 2006 +0000

    Added support for optional Content_Disposition header in mhbuild directive.s

Author: David Levine <levinedl@acm.org>
Date:   Sun Feb 12 18:06:44 2006 +0000

    Added RFC2183 to reference of RFC1806 for Content-Disposition header.

Author: David Levine <levinedl@acm.org>
Date:   Tue Jan 31 02:50:57 2006 +0000

    Added -nocontentid (and -contentid, for symmetry) switch to mhbuild.  This allows users to disable generation of the Content-ID: header in MIME messages, in order to placate broken version(s) of Outlook.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Sun Jan 29 19:34:42 2006 +0000

    remove trailing newlines from components to fix bug with spaces at the end of
    Subject/References in replies

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Jan 18 18:08:16 2006 +0000

    use AS_HELP_STRING for formatting help messages

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Jan 18 17:07:28 2006 +0000

    add autoconf magic to support old systems that don't support multibyte charsets

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Jan 18 16:43:27 2006 +0000

    fix bug with insertion of newline being wrong if the num function was used at
    the end of the format buffer

Author: David Levine <levinedl@acm.org>
Date:   Wed Jan 18 00:09:00 2006 +0000

    Fixed make_bcc_file () to use contents of From: in draft, if draft_from masquerade flag is enabled.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Jan 17 18:06:58 2006 +0000

    more robust multi-byte/column support for field widths
    restore right justification feature

Author: Josh Bressers <josh@bress.net>
Date:   Mon Jan 16 17:07:14 2006 +0000

    * uip/post.c, uip/spost.c: Move the uptolow macro from spost.c to post.c
      where it is needed.

Author: Josh Bressers <josh@bress.net>
Date:   Mon Jan 16 12:42:11 2006 +0000

    * sbr/fmt_scan.c: Add the missing wchar.h include

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Mon Jan 16 10:40:32 2006 +0000

    *** empty log message ***

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Mon Jan 16 10:00:46 2006 +0000

    remove remnants of code for MMDF

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Mon Jan 16 09:55:24 2006 +0000

    multiply buffer size by MB_CUR_MAX so multi-byte chars fit

Author: Josh Bressers <josh@bress.net>
Date:   Sun Jan 15 02:52:12 2006 +0000

    * sbr/fmt_scan.c:PUTSF() Fix an off by one formatting issue.

Author: Josh Bressers <josh@bress.net>
Date:   Sun Jan 15 02:29:38 2006 +0000

    * sbr/fmt_scan.c: Turn the PUTSF macro into a function capable of handling
    multi column characters.

Author: Josh Bressers <josh@bress.net>
Date:   Sat Jan 7 15:22:19 2006 +0000

    * Remove sbr/strerror.c -- strerror(3) is defined in C89.

Author: Josh Bressers <josh@bress.net>
Date:   Fri Jan 6 21:51:43 2006 +0000

    * patch #3968: Move the add() function from its own file (add.c) and
      into utils.c. There was also a duplicate add() function in mf.c which
      has been removed.

Author: Josh Bressers <josh@bress.net>
Date:   Wed Jan 4 02:10:25 2006 +0000

    * mh_xmalloc(), mh_xrealloc(), pwd(): Add comments describing the purpose
      of the function.

Author: Josh Bressers <josh@bress.net>
Date:   Tue Jan 3 01:08:33 2006 +0000

    Remove sbr/pwd.c file, moving the pwd() function into sbr/utils.c.

Author: Josh Bressers <josh@bress.net>
Date:   Mon Jan 2 03:25:18 2006 +0000

    * patch #3967: Create a mh_xrealloc function to prevent mistakes when
    calling realloc.

Author: Josh Bressers <josh@bress.net>
Date:   Mon Jan 2 03:17:41 2006 +0000

    * patch #3966: Create a mh_xmalloc function to prevent mistakes when
    calling malloc.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sat Dec 24 17:53:26 2005 +0000

    Avoid non-portable use of $< outside an inference rule.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sat Dec 24 17:17:38 2005 +0000

    Rework detection and handling of ndbm: we now check for a working
    (library,header) combination, and configure defines variables for each
    which the makefile and C file just use, rather than a bunch of HAVE_foo
    switches. As a bonus, we no longer unnecessarily link every binary with
    the ndbm library even though only slocal uses it. Also you can now tell
    configure where to get the header/library so even if we guess wrong you
    can overrule us.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Thu Dec 22 10:38:32 2005 +0000

    Fix stupid accidental dependence on a bash quirk in previous
    configure script change.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Dec 20 04:39:51 2005 +0000

    Rolled release.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Thu Dec 15 00:45:36 2005 +0000

    Improve the checks for where to find ndbm (dbm_open etc); should now
    work on systems with new gdbm and libdb4.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Thu Dec 15 00:12:52 2005 +0000

    Change some non-standard formatting in a previous log entry so it matches
    the conventions used in other entries.

Author: Josh Bressers <josh@bress.net>
Date:   Wed Dec 14 01:48:24 2005 +0000

    * Fedora Bug #163760: sbr/context_read.c (context_read): Ensure that the
    context is only read once.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Mon Dec 12 22:30:44 2005 +0000

    Fixed annotate call for new delete argument values.

Author: Josh Bressers <josh@bress.net>
Date:   Mon Dec 12 20:26:53 2005 +0000

    * uip/sendsbr.c (annoaux): Fix the call to annotate()

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Thu Dec 8 15:57:34 2005 +0000

    *** empty log message ***

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Wed Dec 7 21:25:46 2005 +0000

    Fixed a bug where anno -append put the headers in the wrong place
    if applied to a message that didn't contain any headers.
    
    Added a special value of "all" to the -number option that causes
    anno -delete to delete all matching components instead of just
    the first one.
    
    Added new -preserve and -nopreserve options.  Using -preserve
    retains the original last accessed and last modified times on
    annotated messages.

Author: Josh Bressers <josh@bress.net>
Date:   Mon Dec 5 13:38:41 2005 +0000

    Fix the AC_PATH_PROG default when vi isn't found during build.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Sat Dec 3 23:41:39 2005 +0000

    Rolled version.  Should have done it last time!

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sat Nov 19 16:32:34 2005 +0000

    Make it clearer that lower-case envariables aren't supposed to be set
    by the user.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sat Nov 19 16:04:25 2005 +0000

    Special-case an MHCONTEXT of "/dev/null" and don't try to lock it -- some
    user scripts may use this to suppress modification of context.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Mon Nov 14 00:18:24 2005 +0000

    [bug #9813] Don't crash after removing the folder if the context file
    has no Current-Folder entry.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 13 23:57:49 2005 +0000

    Pass some globals into sm_init() so that it uses SASL if necessary.
    [NB that as I do not have a SASL setup I am relying on (a) the patch
    being obviously correct and (b) the original submitter having tested!]

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 13 23:56:30 2005 +0000

    Forgot to quote the bug number in the changelog comment.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 13 23:51:18 2005 +0000

    Use context/ctxpath==NULL to indicate that no context file should be read,
    to avoid inadvertently trying to lock /dev/null (takes 30secs+ with some
    locking methods).

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 13 22:36:07 2005 +0000

    Fix buffer overrun in address parsing code (would only show up if
    scan was run with -width 16536 or similar)

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Sun Nov 13 19:38:32 2005 +0000

    remove link to install-mh that caused problems on some systems

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Sun Nov 13 19:27:37 2005 +0000

    bug #739: install target now depends on all to avoid problem on
    case-insensitive file systems with the INSTALL file

Author: Josh Bressers <josh@bress.net>
Date:   Thu Nov 10 21:37:10 2005 +0000

    Fix the AC_PATH_PROG default when sendmail isn't found during build.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Wed Nov 9 22:56:35 2005 +0000

    Fix a non-ANSI prototype.

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Nov 8 20:22:33 2005 +0000

    Simon Burge: fix to handle getutent() on NetBSD

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Nov 8 17:18:09 2005 +0000

    update most references to the web page and mailing list locations

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Nov 8 16:58:08 2005 +0000

    prepend DESTDIR to install locations

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue Nov 8 16:51:34 2005 +0000

    replace obsolete autoconf macros

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 6 21:54:40 2005 +0000

    Fix various buffer overruns in fmt_scan.c; the bulk of this is passing
    buffer length through to decode_rfc2047() and having that function do
    sufficient bookkeeping to avoid running off the end of the buffer.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 6 00:34:56 2005 +0000

    Fix a compile error if building nmh with --enable-apop.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 6 00:32:20 2005 +0000

    Don't fclose() the file twice in error-exit paths from get_content()
    (was causing crashes on multipart mails with invalid Content-Type headers)

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 6 00:28:12 2005 +0000

    Remove space between -o and output filename so it works on older versions
    of flex as well as newer ones.

Author: Peter Maydell <pmaydell@chiark.greenend.org.uk>
Date:   Sun Nov 6 00:23:48 2005 +0000

    Add an AC_PREREQ so we don't just fail with an obscure error message if
    using old 2.13 era autoconf (or an autoconf-version-guessing wrapper).

Author: Josh Bressers <josh@bress.net>
Date:   Fri Nov 4 22:07:48 2005 +0000

    Update the instructions for subscribing to the nmh-workers list

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Nov 2 17:43:21 2005 +0000

    fail when kpop connection attempted without KPOP support compiled in

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Nov 2 17:29:50 2005 +0000

    fix for newer version of flex and remove autogenerated file from cvs

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Nov 2 17:22:27 2005 +0000

    speed up flist by skipping stat on files with numbers as names

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Nov 2 17:16:39 2005 +0000

    include new files in distribution

Author: Bill Wohler <wohler@newt.com>
Date:   Tue Oct 11 01:52:45 2005 +0000

      A couple of questions from nmh's original FAQ were folded into
      the MH FAQ which is now a part of nmh.
    
    			    New Questions
    
    1.09 What is the copyright status of nmh?
    3.23 Why do folder and flist overlook some of my sub-folders?
    
    			  Changed Questions
    
    1.02 current version?		nmh history update, nmh 1.1-RC4, mailutils 0.6

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Oct 5 10:05:24 2005 +0000

    Harald Geyer: back out fork/vfork workaround and handle the issue directly

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed May 18 13:45:03 2005 +0000

    use fork instead of vfork on Linux

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed May 18 13:27:44 2005 +0000

    test/report error writing to stdout

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed May 18 13:24:14 2005 +0000

    correct SASL include file locations

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed May 18 13:16:21 2005 +0000

    add bash completion definitions from Debian

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed May 18 12:57:40 2005 +0000

    fix a bug affecting AFS where nmh was setting the READONLY flag for a
    folder even when you do have write access to the folder

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed May 18 12:50:45 2005 +0000

    Carl Mummert: add unquote() function for removing quotes from RFC-2822 headers

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Tue May 17 16:30:15 2005 +0000

    fill in a few of the missing ChangeLog entries

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Feb 23 16:20:47 2005 +0000

    use iconv to convert RFC-2047 encoded headers to the character set used
    by the current locale

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Feb 23 14:07:52 2005 +0000

    fix Debian bug #202667: crash when a message's filename overflows an int
    when converted

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Wed Feb 23 11:55:25 2005 +0000

    Updated config.guess and config.sub to the most recent versions
    (from automake 1.9.5)

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Mon Feb 21 16:31:58 2005 +0000

    fix bug where inc crashed on failing to reopen the terminal

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Thu Jan 27 16:43:03 2005 +0000

    acknowledge that my change was based on an older patch from Michael Richardson

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Thu Jan 27 16:39:56 2005 +0000

    Added -proxy option to inc and msgchk

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Thu Jan 27 16:34:20 2005 +0000

    Added -proxy option to inc and msgchk

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Thu Jan 27 16:26:24 2005 +0000

    On systems where it is available, use nl_langinfo to get the character
    set if MM_CHARSET is unset

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Fri Jan 21 19:25:44 2005 +0000

    US-ASCII is a subset of UTF-8 so can be handled directly when UTF-8 is
    being used

Author: Oliver Kiddle <okiddle@yahoo.co.uk>
Date:   Fri Dec 17 15:16:04 2004 +0000

    Fix -part option to mhshow/mhlist/mhstore to find sub-parts of the specified
    part

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Fri Nov 19 05:06:16 2004 +0000

    Added mail directory argument to folder_addmsg in order to make it possible
    to provide a path to the ext_hook call that is mailpath-based.  A problem
    existed when a folder was a symbolic link and the pwd call would return
    the path relative to the filesystem, not to mailpath.  A new argument was
    needed because there was otherwise no reasonable way to get that path.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Nov 16 18:14:34 2004 +0000

    Fixed problem where the refile hook was being called after a message was
    renamed so that it wasn't around for the hook.  The hook is now called
    before the message file is renamed.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Nov 16 18:08:07 2004 +0000

    Fixed typo in comment.
    Fixed problem with refile hook when refiling across filesystems.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Nov 16 17:37:41 2004 +0000

    Removed unnecessary code.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Nov 16 17:28:33 2004 +0000

    Fixed wrong directory for hook when refiling with -src option.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Fri Oct 15 17:10:58 2004 +0000

    Fixed calling of external hooks.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Oct 12 21:14:02 2004 +0000

    Fixed another weird bug caused by the static mailpath being overwritten.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Oct 12 20:41:34 2004 +0000

    Fixed bug that caused anno to mangle headers.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Oct 12 20:40:25 2004 +0000

    Fixed strange bug that prevented a lock from ever being obtained if getting
    it failed the first time.  The problem was that the string of XXXXXX that
    is required by mkstemp() was overwritten the first time through, and so
    all subsequent times failed because mkstemp() failed.  The fix
    reinitializes the tmp file string.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Oct 12 20:38:10 2004 +0000

    Fixed bug in which the static maildir was overwritted if a format string
    was read from the profile.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Oct 12 20:31:14 2004 +0000

    Fixed bug that was producing an incorrect path for the external hook.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Oct 6 20:11:39 2003 +0000

    db configuration fix for Debian; yet another location for ndbm.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 30 19:55:12 2003 +0000

    restored use of PUTDF() macro; was broken in versions 1.10-1.12;
    replacement implementation filled on right instead of on left.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 30 16:57:26 2003 +0000

    [bug #4302] errno is not always an extern int
    The errno declaration is best left to errno.h; several systems use
    #define errno (*(___errno()))
    or similar

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 30 16:22:54 2003 +0000

    corrected termination condition for fill character introduced in last version

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 30 16:19:12 2003 +0000

    [bug #4296] PUTD() macro can't hack 10 digit values
    Once the number exceeded 1000000000, the conversion would fail.  An execution of
     dp -format "%(clock{text})" "Tue, 01 Jul 2003 21:38:05 +0700" would erroneously print
    749660476, instead of 1057070285.
    
    The macros PUTD() and PUTDF() have been replaced by snprintf() calls;  These macros
    should never have been written in the first place, when system functions exist to do the
    work.
    
    (prev version 1.10 was erroneously comitted).

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 30 16:07:49 2003 +0000

    [bug #4296] PUTD() macro can't hack 10 digit values
    Once the number exceeded 1000000000, the conversion would fail.  An execution of
     dp -format "%(clock{text})" "Tue, 01 Jul 2003 21:38:05 +0700" would erroneously print
    749660476, instead of 1057070285.
    
    The macros PUTD() and PUTDF() have been replaced by snprintf() calls;  These macros
    should never have been written in the first place, when system functions exist to do the
    work.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 30 14:36:04 2003 +0000

    [bug #4297] The strlen mh-format function can crash if 'str' is null.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 30 14:30:36 2003 +0000

    note recent changes

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 30 14:19:20 2003 +0000

    fix handling of "-list" and "-seq" options, so behavior is orthoganal.
    Previously, "pick -list -seq seqname" meant "pick -nolist -seq seqname".
    Now "pick -list -seq seqname" and "pick -seq seqname -list" do the same thing.
    Thanks to Robert Elz.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sun Sep 28 14:27:34 2003 +0000

    update 'mp->lowmsg' from 0 to 1 during regular 'inc' from mail spool;
    avoids failure of 'folder_realloc()' for case of no messages in
    folder, and more than 100 messages to incorporate.  Initially,
    'folder_read()' will initialize 'mp->lowmsg' to 0, and 'mp->lowoff'
    to 1.  So the call would be folder_realloc(mp, 1, 200), and the
    comparison 'if (mp->nummsg > 0 && lo > mp->lowmsg)' will fail.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Sep 22 16:03:22 2003 +0000

    Removed space between command name and man section number (e.g.,
    "show (1)" --> "show(1)", so xemacs can recognize them as links to other
    man pages.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Sep 22 01:04:04 2003 +0000

    make 'spost' handling of "masquerade:" line of mts.conf containing
    'draft_from' same as for 'post'.  Debian bug report 144098, filed by
    Terran Melconian.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Sep 22 00:43:09 2003 +0000

    status of action wasn't saved for use by 'N' result, so when 'N' was
    used slocal could perform the action even if the previous
    action failed.  Debian bug report #149745, filed by Daniel Mller.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sun Sep 21 18:08:35 2003 +0000

    Increase timeouts to comply with RFC 1123; Debian bug report #152728 by Ian Jackson

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sun Sep 21 17:34:31 2003 +0000

    added cross references

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sun Sep 21 17:09:31 2003 +0000

    fixed typo:  example for scan.default didn't include proper terminating
    %> for "%<{date} %|*%>"; reported as Debian bug #143427 by Peter Maydell

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sun Sep 21 15:43:00 2003 +0000

    Apply bug fix reported to Debian (#136976) by Peter Maydell; allows
    messages with "Content-Transfer-Encoding: binary" to be
    displayed, per RFC 2045 section 6.2 paragraph 4

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sun Sep 21 02:39:58 2003 +0000

    corrected typo for nroff directive

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Tue Sep 16 14:27:55 2003 +0000

    add command to remove $(libdir)/install-mh prior to creating the link

Author: Jeffrey C Honig <jch@honig.net>
Date:   Sun Sep 14 13:25:55 2003 +0000

    The first ``inc'' into an empty folder would not update the unseen
    sequence.  This is because seq_list() will return NULL if mp->nummsg
    is zero.  Insure that mp->nummsg is incremented.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Sep 8 18:41:10 2003 +0000

    Man page fix from Igor Sobrado

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sat Sep 6 17:27:55 2003 +0000

    Added documentation of "Dcc", per recent discussion on mailing list
    (main contributors Jerry Peek and Robert Elz)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 5 21:07:49 2003 +0000

    Merge in changes from the 1.1 branch.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 5 19:10:21 2003 +0000

    Fix from branch.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 5 18:37:47 2003 +0000

    Quiet lock warning.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Fri Sep 5 18:36:36 2003 +0000

    Merge in locking fixes into the main line.

Author: Jeffrey C Honig <jch@honig.net>
Date:   Mon Aug 11 01:20:52 2003 +0000

    When compiling format strings, nmh attempts to avoid multiple parsing
    of address and date fields by only inserting calls to the parse
    functions (FT_PARSEADDR and FT_PARSEDATE) for a given component once.
    The problem with this method is that the initial invocation may
    actually be on a code path that is conditionally executed.  This can
    result cached copies of data from the fields in previous messages to
    be used.
    
    My solution is to move this optimization from compile time to run time.
    Address and Date parsing calls (FT_PARSEADDR and FT_PARSEDATE) will
    always be included.  Run time flags are used to prevent these functions
    from being run more than once per component per message.
    
    The c_flags field has being converted from a boolean to a bit-field to
    facilitate maintenance of the new CT_PARSED value.  The result value
    that used to be in this field is now the bit CF_TRUE and the
    overloaded use of this field by scan() is now the CT_DATEFAB bit.
    
    Some unneeded flags (CT_ADDRPARSE, CT_MYMBOX) have also been removed.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Fri Jul 4 16:15:02 2003 +0000

    more detail for bugs fixed, so reader doesn't need to go to Bugzilla

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Fri Jul 4 15:55:55 2003 +0000

    update

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Wed Jul 2 02:24:19 2003 +0000

    restored use of %manext5% for man section, which was lost
    in version 1.4

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Wed Jul 2 02:03:19 2003 +0000

    Updated description of default template to reflect current
    change to In-Reply-To, and Fcc:

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Wed Jul 2 02:01:50 2003 +0000

    Default templates for 'comp', 'forw', 'dist', 'repl' now include
    Fcc: +outbox

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Jun 30 19:43:26 2003 +0000

    use symbols for date and version so values are
    automatically updated during build.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Jun 30 19:40:05 2003 +0000

    bump date so everything gets a new timestamp for 1.1

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Jun 30 18:58:07 2003 +0000

    fix bug #1393, "sortm core dumps", using patch provided by
    Robert Elz, kre@munnari.oz.au.  The core dump occurred
    when "Subject:" was immediately followed by an
    alphanumeric, and "-textfield subject" were used
    as arguments.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Jun 30 16:48:50 2003 +0000

    Re-write for clarity, using major contributions from
    Bart Massey, and Jerry Peek.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Jun 30 16:40:09 2003 +0000

    made RFC 2822 compliant, using an "In-reply-to:" format
    supplied by Jerry Peek.

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Fri Jun 27 17:02:13 2003 +0000

    prevent double free of 'ce->cd_file' or later use of invalid data

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Thu Jun 26 01:30:36 2003 +0000

    fix for bug #578 repl leaks umask; there are several other
    places in the code where the umask value is not restored,
    so there might be other similar bugs

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Mon Jun 23 00:44:28 2003 +0000

    Changed use of GNU "simply expanded variables" for MAN1, MAN5, MAN8, so
    one makefile will work with SysV make (e.g., Solaris) and GNU make

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sun Jun 22 23:59:16 2003 +0000

    allow gdbm/ndbm.h in addition to db1/ndbm.h; needs corresponding change in
    configure.in

Author: Glenn Burkhardt <glenn@aoi.ultranet.com>
Date:   Sun Jun 22 23:58:07 2003 +0000

    Allowed gdbm as substitute for Berkeley db1/ndbm.h libdb1 (check for
    gdbm/ndbm.h, libgdbm now); send only stdout to /dev/null when checking for
    'broken vi', this allows 'vim' on Solaris to work, since 'vim' closes stdin
    and uses stderr for input when running a script.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Thu Jan 2 04:07:49 2003 +0000

    Fix detection of non-mime messages when the charset is not enclosed
    in double quotes.  (Not perfect yet, but 97% effective.)

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Thu Nov 21 21:22:24 2002 +0000

    Fixed a typo in the SRCS definition; had a .o where it should have been a .c

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Wed Nov 20 19:57:19 2002 +0000

    Fixed a bug in the waitpid version where it would return incorrectly if a
    child process was interrupted.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Nov 19 20:39:21 2002 +0000

    Removed the reference to the library directory since this now goes in bin.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Tue Nov 19 20:37:50 2002 +0000

    Changed to move install-mh to the bin directory instead of the lib
    directory.  A link is made from the lib to the bin just in case.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Mon Nov 18 18:25:00 2002 +0000

    The file README-ATTACHMENTS was removed - it has been moved to the docs
    subdirectory.  I thought that this had already been done but I guess not.
    It's unrelated to the rest of these changes.
    
    The remainder of these changes affect the way that nmh is installed.  Nmh
    has historically prompted the user for installation when any nmh command
    is invoked if it doesn't think that it's installed.  This is a problem for
    programs that want to, for example, interact with nmh programs via pipes.
    
    These changes alter this behavior.  Now, when an nmh program thinks that
    nmh isn't installed, it tells the user to run install-mh to install it.
    A -check option has been added to install-mh that allows the existence of
    an installation to be silently checked and indicated via the exit status.
    
    The bulk of this change is in sbr/read_context.c.  In the process of making
    these changes, I noticed a fair amount of useless code that I removed.  In
    particular:
    
    1.	The program started with a test for whether or not defpath had already
    	been set.  This could only happen if context_read() was called more
    	than once, which it isn't.  This check also existed and was removed
    	from the following places:
    		sbr/context_del.c
    		sbr/context_find.c
    		sbr/context_replace.c
    		sbr/seq_read.c
    		sbr/seq_save.c
    		uip/flist.c
    		uip/folder.c
    		uip/rmf.c
    
    2.	A similar test for mypath was removed.  No need to test it since it
    	doesn't happen.  I'm just not a believer that
    
    		a = 1;
    
    		if (a != 1)
    			error();
    
    	is a good way to write code!
    
    3.	I removed the code makes a copy of the $HOME environment variable as
    	returned by getenv().  It's never changed, so it doesn't need copying.
    
    4.	I removed code that copied the pw_dir member of the passwd structure
    	returned by getpwuid() if $HOME isn't set.  Yes, the returned structure
    	is static, but since the function is never called again the returned
    	values stay valid and don't need copying.
    
    5.	I removed the test for a NULL pw_dir member in the passwd structure
    	returned by getpwuid() since that never happens.
    
    6.	I removed code that removed a trailing / from mypath if mypath is more
    	than one character long.  Unnecessary as // is interpreted as / anyway.
    	mypath never shows up in an error message, so nobody will ever see it.
    	Besides, this code didn't handle the case of multiple trailing slashes.
    
    7.	I removed code that replaced the MH environment variable contents with
    	an absolute path if it was a relative one.  I'm a bit nervous about this
    	one, only testing will tell.  Any nmh program that's invoked will use
    	the same context_read() code to convert a relative path to an absolute
    	one anyway.  And there's no guarantee (or discussion) of this feature
    	in any of the documentation.
    
    8.	Althout context_read() tested the MH environment variable, install-mh
    	didn't.  This means that the behavior was not consistent between
    	install-mh and all other nmh programs.  I changed install-mh to be
    	consistent with context_read().
    
    9.	install-mh has been installed in the lib directory, not bin.  So a
    	user would be unlikely to find it when prompted to run it.  The
    	installation has been changed to add a link from bin to lib.

Author: Anders Eriksson <aeriksson@fastmail.fm>
Date:   Mon Oct 21 19:32:26 2002 +0000

    Changed scan to always pass the folder argument. This is in line
    with the man page.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Mon Sep 9 14:30:16 2002 +0000

    New routine that provides interface to external programs.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Fri Aug 23 20:37:01 2002 +0000

    Added external program hooks.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Thu Aug 22 22:06:18 2002 +0000

    Moved this file here from the root directory.

Author: Jon Steinhart <jon@fourwinds.com>
Date:   Mon Aug 19 20:50:41 2002 +0000

    Added an improved user interface for sending messages with attachments.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Mon Jul 8 19:29:24 2002 +0000

    Remove this file on the head as well.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jul 3 14:49:24 2002 +0000

    Bring these changes over from the branch.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Wed Jul 3 14:08:11 2002 +0000

    Remove these undefines (why were they in there?)

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jul 2 22:10:55 2002 +0000

    Update for new version.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jul 2 22:09:12 2002 +0000

    Add/update copyright notice in all source code files.

Author: Ken Hornstein <kenh@pobox.com>
Date:   Tue Jul 2 21:46:37 2002 +0000

    Remove autoconf-generated files (and note such files in .cvsignore)

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Mar 17 11:28:27 2001 +0000

    Ken Hornstein's configure.in Cyrus SASL checks were doing
    `x"$with_cyrus_sasl" != "no"' instead of `... != x"no"'.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Mar 7 05:26:50 2001 +0000

    Found some historical information about MH in RFC 808.  Supplemented it with
    info from Jerry Peek's MH book and added it to docs/README.about.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Feb 6 20:47:54 2001 +0000

    dtimp timezone fixes

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Feb 6 20:35:40 2001 +0000

    Be more picky about symbolic time zones, and accept either a symbolic
    or numeric time zone, but never both, since a DST offset might be subtracted
    twice. Also, be uniform about assuming that pre-1970 dates are Y2K problems.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Feb 6 04:28:04 2001 +0000

    Say in README.developers to use `\date' in case anyone is like me and
    has `date' aliased in their shell to use a nonstandard (but
    subjectively more readable) format.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Feb 6 04:22:09 2001 +0000

    Regenerated stamp-h.in using my tcsh alias `date', which uses a
    nonstandard format.  Replacing it with the standard format.  I'll
    update README.developers to say to use `\date'.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Feb 6 03:46:27 2001 +0000

    * -L isn't sufficient for specifying the path of the Cyrus SASL
      shared library.  That'll allow us to link successfully, but on
      many/most OSes that won't allow us to find libsasl at runtime.  On
      Solaris, we need to specify the library path with -R as well (or
      else the user will have to use the $LD_LIBRARY_PATH kludge, which
      is considered harmful).  This fix should be extended to other OSes
      as well.
    
    * Print whether we have SASL support in the "nmh configuration"
      summary configure prints out.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Jan 25 21:28:30 2001 +0000

    man/mh-chart

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Jan 25 21:15:52 2001 +0000

    use %etcdir% for spacing instead of hardcoding

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Jan 25 21:14:32 2001 +0000

    compiled mh-chart with synopses of commands

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 23 20:27:57 2001 +0000

    digest

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 23 20:26:15 2001 +0000

    Don't try to force year into a 19xx format

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 23 04:14:08 2001 +0000

    SYNOPSIS formating to prevent filling

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Jan 19 21:32:13 2001 +0000

    manpages finished

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Jan 19 21:22:08 2001 +0000

    don't build vmh.1 since vmh isn't distributed, and we no longer need tmac.h

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Jan 19 21:10:09 2001 +0000

    show-whom

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Jan 18 20:27:34 2001 +0000

    prompter-sendfiles

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 9 06:55:21 2001 +0000

    delete old files, manpage progress

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 9 06:45:26 2001 +0000

    removed deprecated files. sendmail functionality exists in mts/smtp/

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 9 06:41:44 2001 +0000

    Add an entry for README.manpages

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 9 06:40:12 2001 +0000

    Added popi.c to SRCS, even though it's not being built currently

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 9 06:13:55 2001 +0000

    removing mts/generic

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 9 06:10:03 2001 +0000

    deleting zotnet/ dir -- parts moved to sbr/

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 9 06:01:19 2001 +0000

    mh_profile-prev

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sat Jan 6 23:38:12 2001 +0000

    mh_tailor-mhbuild

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Jan 4 07:07:41 2001 +0000

    Updating mh_sequence

Author: Shantonu Sen <ssen@mit.edu>
Date:   Wed Jan 3 06:29:06 2001 +0000

    mh_mail-mh_profile

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 2 08:10:46 2001 +0000

    mh-format

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 2 07:12:46 2001 +0000

    Modularizing the Makefile caused some variable expansion problems on non-GNU makes

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue Jan 2 06:43:07 2001 +0000

    mh_chart-mh_draft

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Jan 1 10:19:00 2001 +0000

    Updating ali-mh_alias

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 20:58:29 2000 +0000

    add about pointers to shared pages

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 20:55:48 2000 +0000

    Add date to files i missed last time

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 20:55:06 2000 +0000

    docs/README.manpages

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 20:48:50 2000 +0000

    Add manpage style guide

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 09:25:09 2000 +0000

    Updating inc

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 08:19:20 2000 +0000

    Updating comp-forw

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 06:31:42 2000 +0000

    add flists and folders as pointer pages to flist,folder. Modularize Makefile to allow easier addition of manpages

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 02:44:18 2000 +0000

    replace %components% and %distcomps% in man pages with corresponding files

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 31 02:43:34 2000 +0000

    updated ali-flist, with batch edit of others

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sat Dec 30 23:18:28 2000 +0000

    update ali,anno,ap.burst

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sat Dec 30 10:01:29 2000 +0000

    Updated man pages to remove dependence on tmac.h and have a more modern look

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sat Dec 30 10:00:42 2000 +0000

    DATE an manpage updating

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sat Dec 30 09:51:55 2000 +0000

    Use the DATE file

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sat Dec 30 09:50:13 2000 +0000

    Created DATE that contains a datestamp used in the man pages. It should be updated each release.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 24 10:13:45 2000 +0000

    hesiod and krb5 test changes. add --with-locking to INSTALL

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 24 10:06:30 2000 +0000

    Add documentation for --with-locking option

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 24 10:06:00 2000 +0000

    hesiod and krb5 test fixes

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 24 10:04:58 2000 +0000

    Fixed up the hesiod library test so that the location of res_send
    actually helps to determine whether -lresolv needs to be passed
    as a hesiod lib. Also, fixed the krb5 test to look for
    -lk5crypto if it exists, since that's the new name for -lcrypto.
    The old -lcrypto remains in case the new version isn't found.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Dec 23 06:11:03 2000 +0000

    -apop and -noapop were not documented in msgchk.man.  -snoop was documented but
    didn't appear in the usage SYNOPSIS.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Dec 22 23:49:08 2000 +0000

    add --with-locking option

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Dec 22 23:42:16 2000 +0000

    Autoconfing the file locking options

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Dec 22 19:30:41 2000 +0000

    put both linux entries on one line

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Dec 22 19:29:40 2000 +0000

    dtimep, MACHINES

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Dec 22 19:21:29 2000 +0000

    Update to include Mac OS X and Linux 2.4

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Dec 22 19:18:09 2000 +0000

    When building on Mac OS X, don't set LDFLAGS=-s, since the linker doesn't like the flag

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Dec 22 19:15:02 2000 +0000

    Take out memory hints, since we are assuming flex over lex, so this shouldn't be a problem

Author: Shantonu Sen <ssen@mit.edu>
Date:   Wed Dec 20 16:03:36 2000 +0000

    doc/README.developers update, and fixed typo in last ChangeLog entry

Author: Shantonu Sen <ssen@mit.edu>
Date:   Wed Dec 20 16:00:46 2000 +0000

    Marked deprecated directories in layout description, and added an entry for docs

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Dec 20 03:30:14 2000 +0000

    Just changed a "can" to a "could" since I don't know if most POP3 servers are
    like qpopper in not allowing people with APOP activated to log in via normal
    POP3.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Dec 20 03:18:33 2000 +0000

    -apop and -noapop were not documented in inc.man.  -snoop was documented but
    didn't appear in the usage SYNOPSIS.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Dec 17 19:52:04 2000 +0000

    Fixed a type from 'his' to 'this'

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Dec 14 14:55:17 2000 +0000

    config.guess/sub update

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Dec 14 14:35:40 2000 +0000

    config update procedure (probably unneccessary)

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Dec 14 14:32:09 2000 +0000

    Updated config.guess and config.sub from most recent version
    from ftp.gnu.org/pub/gnu/config, with timestamp='2000-12-07'.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Dec 14 03:14:08 2000 +0000

    Shantonu did his commit in the wrong order earlier today, making configure get
    re-built due to a "newer" configure.in.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Dec 14 01:38:41 2000 +0000

    Move mts/generic to sbr/

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Dec 14 01:30:43 2000 +0000

    Resolve the circular dependency of libmh on libmts on libmh. The
    files mts/generic/client.c and mts.c are moved to sbr/, and mts/generic/mts.h
    is moved to h/mts.h. Thus, libmh is self-contained. All header includes
    have been appropriately updated, and the Makefiles and configure script
    no longer build mts/generic.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Dec 12 06:19:25 2000 +0000

    When Shantonu made the new libmts.a, he swapped $(MTSLIB) and libmh.a in
    sbr/Makefile.in so that libmh.a comes first, but this causes the build to fail
    on Solaris, because libmts.a has to get ruserpass() out of libmh.a.  Swapping
    them back to the way Ken Hornstein's patch (which I applied on Jul 20) put them,
    with libmh.a correctly coming second.  If there are times when libmts.a needs to
    come second, then it would appear there's a circular dependency and someone
    (Shantonu?) did an mts merge incorrectly.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Sep 8 23:19:37 2000 +0000

    Just fixed a formatting error.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 01:39:10 2000 +0000

    Took out bad zones in dtimep

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 01:36:23 2000 +0000

    Took out incorrect time zones like JST and BST.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 00:49:32 2000 +0000

    Included code reorg of zotnet/mts

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 00:37:54 2000 +0000

    Don't make Makefiles in zotnet or mts/mmdf or mts/sendmail

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 00:36:48 2000 +0000

    Don't generate Makefiles for zotnet, or mts/mmdf and mts/sendmail,
    since they are no longer being compiled.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 00:34:41 2000 +0000

    Included h/nmh.h, since the MD5 algorithms were missing declarations
    for memcpy and memset (I think), which are indirectly included from
    strings.h

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 00:34:08 2000 +0000

    Updated #include's to point to new location of mts.h on mts/generic

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 00:32:47 2000 +0000

    No longer descend into zotnet/

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri Sep 8 00:30:58 2000 +0000

    Moved code from zotnet/mts to mts/generic. Also, unified generic
    mts code and smtp/sendmail into libmts.a as an intermediate, instead
    of having two static libs.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Wed Sep 6 22:48:43 2000 +0000

    Included changes to dtimep.lex to remove military zone parsing.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Wed Sep 6 22:40:03 2000 +0000

    Took out parsing of military time, which was causing issues when it
    encountered something like (MET), which it doesn't recognize as a timezone,
    and which was then read as military characters.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Aug 11 20:43:07 2000 +0000

    Further clarified Kimmo's etc/Makefile.in comments at his suggestion.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Aug 10 21:32:33 2000 +0000

    Changed my mind again on scan.MMDDYY and scan.YYYYMMDD.  Put the replied /
    encrypted column back in, because it's useful to "always" (at least when you
    aren't using replied / encrypted) have a space in between the message number and
    date, so you can use awk (with the default field separators) to grab message
    numbers from scan output.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Aug 10 20:33:25 2000 +0000

    Decided that limiting the message number columns to 3 on my scan.MMDDYY and
    scan.YYYYMMDD (to try to regain space taken by extra date info) was
    ill-conceived.  It's not that tough to get past 999 messages, though I imagine
    it's rather rare to exceed 9999.  Changed these to 4.  I had already removed the
    "replied / encrypted" column in YYYYMMDD, but this time I removed it on MMDDYY
    as well (I've never seen it used...).

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Mon Aug 7 18:42:20 2000 +0000

    Modify umask set by mhshow to enable user execute bit, so that viewers that
    create temporary directories (e.g., lynx) will be able to access them.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Aug 5 16:00:49 2000 +0000

    Kimmo's etc/Makefile.in change note implied that install was previously
    completely broken.  Not the case.  I asked Kimmo about it and he clarified that
    it failed when building outside the source tree.  Fixed the entry to reflect.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Aug 4 00:15:52 2000 +0000

    TODO: Allow multiple simultaneous differing contexts, probably each tied to a
    parent (terminal) process.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Tue Aug 1 14:55:53 2000 +0000

    Make "make install" work in etc/Makefile.in

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Jul 24 23:24:22 2000 +0000

    Renamed DSTXXX as ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST and added an
    explanatory comment by its #definition.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Jul 24 23:06:42 2000 +0000

    Updated README.developers with the fact that zotnet/tws is going away.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Jul 24 23:03:38 2000 +0000

    When Shantonu wrote the new, more portable dtimep.lex, he left out the #ifdef
    DSTXXX stuff for some reason.  Not a good idea, as that code is required for
    proper printing of numeric-offset timezones that have daylight saving time.
    Without that code, -0700 during DST gets printed as MST instead of PDT.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 21 03:31:39 2000 +0000

    Fixed warnings from diff on first-time install of nmh.  Also added 'echo's
    clarifying the etc file installation activities.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 21 02:35:43 2000 +0000

    Applied Kurt J. Lidl <lidl@eng.us.uu.net>'s $MAILHOST patch:
    
        I have a small patch that would be nice to be included -- basically, it
        allows the usage of the "MAILHOST" environment variable, without having to
        have HESIOD turned on.  I need this functionality for my environment, where
        we have identical /usr/local on all my machines (so I cannot just hardcode
        into the mts.conf file), and I have multiple POP mail servers for my users.
    
    Modified inc.man to reflect that along with "pophost:" and -host, $MAILHOST can
    now activate POP mail inclusion as well.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 21 02:25:59 2000 +0000

    Last pass at README.developers -- Kimmo's 5-step commit was overkill.  You only
    need 3 steps, since configure.in is the only autoconf file with the RCS $Id
    keyword.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 21 02:11:59 2000 +0000

    Meaningless modification to test autoconf file commit order stuff.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 21 02:04:37 2000 +0000

    Meaningless change to test autoconf file commit order stuff.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 21 02:03:23 2000 +0000

    Meaningless change for testing autoconf file commit order stuff.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 21 01:56:17 2000 +0000

    Meaningless change to test autoconf commit order stuff.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 21 01:43:58 2000 +0000

    People did not preserve my alphabetization of the --with options when they added
    new ones.  Re-alphabetized.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jul 20 20:49:00 2000 +0000

    Ken Hornstein's SASL patch was not integrated properly with Ruud's new merged
    mts/sendmail code.  Kimmo has since fixed nmh so it compiles, but according to
    Ken, the SASL stuff still does not work.  Integrating a patch from him for this.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jul 20 20:32:31 2000 +0000

    One more pass at README.developers now that it's clear that my
    previously-suggested one-line autoconf-file commit can cause unnecessary local
    makes and an out-of-sync stamp-h.in file, but would not cause problems for other
    people using the CVS files.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jul 20 20:14:39 2000 +0000

    Moved Kimmo's new "--with-hash-backup" to be output with the rest of the --with
    options in the configure --help output, rather than being in between two random
    --enable options.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Tue Jul 18 23:39:45 2000 +0000

    Added answer.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jul 18 02:15:03 2000 +0000

    Clarified and made some corrections to Kimmo's README.developers changes (BTW,
    if anyone can explain why the RCS Ids are able to cause problems with the
    dependencies, please fill in the explanation -- I never encountered a problem
    with the old single-commit method).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jul 18 02:07:51 2000 +0000

    I don't understand why Kim's split-up of the autoconf-file cvs commits should be
    necessary, so I left a little note hoping for someone to explain technically why
    that should be the case.  I certainly never ran into any problems with my old
    single-commit version (which I added back in along with an explanation of why it
    supposedly won't always work).
    
    Also Kim's text implied that the _only_ reason for the given order is the RCS
    Ids -- not true -- the timestamps are the main reason a particular order is
    necessary.  Made a couple of other clarifications as well.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 06:18:03 2000 +0000

    Iterating the commit a bit, I think this is how it works without extra
    runs of autoconf, autoheader and make.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 06:05:26 2000 +0000

    Regen.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 06:01:28 2000 +0000

    If $LIBTOOL is empty we should not try to run it.
    This gets rid of the "--version: not found" error.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 05:50:33 2000 +0000

    Got rid of one mktemp.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 05:11:46 2000 +0000

    Complete HAVE_MKSTEMP.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 04:23:50 2000 +0000

    We ignore the fact that the user requested SASL, since the pipe to the
    mailer is secure.  This allows for easier sharing of the MH profile
    across hosts.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 04:03:27 2000 +0000

    Note replacement of GNU-makeism in sbr/Makefile.in with a common statement.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 03:58:57 2000 +0000

    So I don't think you can commit these all in a single commit.
    README.developers recommends that (with precise ordering) but
    things still get regenerated when I run "make".

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 03:57:47 2000 +0000

    Keep this working with other makes than GNU.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 03:56:45 2000 +0000

    Still missed one SASL stuff thing.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 03:36:42 2000 +0000

    Changed "--with-backup-prefix" to "--with-hash-backup" because # is too
    difficult for config.status to get right.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 03:15:17 2000 +0000

    Note "--with-backup-prefix".

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 03:13:25 2000 +0000

    Add "--with-backup-prefix" so it can be set easily.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 02:08:18 2000 +0000

    SASL stuff.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 01:48:37 2000 +0000

    SASL stuff.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sun Jul 16 01:46:50 2000 +0000

    SASL mods.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jul 13 21:49:45 2000 +0000

    Deleted the timezone on Kim's SASL patch entry.  Ruud has taken to adding the
    timezone even though all previous entries are missing it, and I don't really
    agree with that.  True, on occasion someone in a different timezone will
    commit something later in the day than someone else, and even though the second
    change happens later, the time may be earlier, but that doesn't happen too often
    and isn't really a big deal, IMHO.
    
    Putting textual timezones like "EDT" isn't really the right solution, IMHO,
    since some of those tags are ambiguous.  Either an offset-style timezone should
    be used or all times should be given as UTC.
    
    I'd just as soon stick with local times, though.
    
    Oh, one thing I forgot to mention in my last CVS entry was that I removed "IMAP"
    from the list of protocols supported by Ken's SASL patches -- nmh doesn't have
    any IMAP support!

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jul 13 21:42:52 2000 +0000

    Modified Kimmo's entry for the application of Ken Hornstein's SASL patches to
    clarify that it wasn't Ken applying them himself, and clarified what SASL
    support actually means.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jul 13 21:41:42 2000 +0000

    Kimmo neglected to commit the regenerated versions of these after changing
    configure.in, forcing people using the CVS source to have to have the autoconf
    tools installed.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jul 11 21:20:04 2000 +0000

    Clarified post.man and send.man for those not completely up on SASL terminology.
    "SASL encryption layers are not supported for SMTP" means that encryption is
    supported for the authentication but not for the subsequent data stream.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Sat Jul 8 05:36:58 2000 +0000

    Note SASL commit.

Author: Kimmo Suominen <kimmo@suominen.com>
Date:   Fri Jul 7 03:48:02 2000 +0000

    SASL support from Ken Hornstein <kenh@cmf.nrl.navy.mil>.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Mon Jun 12 18:07:34 2000 +0000

    * Merged mts/sendmail functionality into mts/smtp; switching between
    smtp and sendmail delivery method is now controlled by mts.conf.
    * If tsort cannot deal with loops, in addition to defining tsort as
    cat, also define lorder as echo.
    * Removed uip/popi.c from list of sources.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jun 9 02:45:17 2000 +0000

    New dtimep.lex didn't parse day names properly.  Fixed.  Also clarified
    ambiguous comments preceding day_map[] array (from old dtimep.lex) that probably
    led to the erroneous cp++ being added.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Wed Jun 7 19:06:52 2000 +0000

    * Added one more mkstemp invocation to uip/spost.c (which was in a
    #if 0 block).
    * Applied patch from Peter Maydell to clean up permissions handling
    and error handling in uip/inc.c.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Mon Jun 5 20:13:54 2000 +0000

    Use cat instead of tsort if tsort cannot deal with loops in its
    input (which is the case for tsort from GNU textutils).

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Mon Jun 5 19:20:38 2000 +0000

    If liblockfile is present, and its dotlockfile program is setgid,
    inc does not need to be setgid.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Sun Jun 4 20:24:39 2000 +0000

    * Added autoconf test for Miquel van Smoorenburg's liblockfile
    library, as found on Debian systems.
    * Added liblockfile support to sbr/lock_file.c.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu Jun 1 06:57:57 2000 +0000

    make clean now removes generated bin files.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Wed May 31 07:22:43 2000 +0000

    Made dtimep.lex more lex-friendly.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Wed May 31 07:19:30 2000 +0000

    Added back memory options for AIX to increase available memory.
    Took out %option noyywrap, which wasn't understood by AT&T lex, as
    well as the -i case-insensitivity flag.

Author: Doug Morris <doug@mhost.com>
Date:   Wed May 31 05:48:06 2000 +0000

    added lint targets for Makefiles and a configure test to find whether lclint or lint is installed on the system.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed May 31 02:27:40 2000 +0000

    Applied Alec Wolman <wolman@cs.washington.edu>'s dropsbr.c patch:
    
      In the map_write routine, a call is made to map_open and this call is supposed
      to set the "clear" variable to 0 or 1, depending on whether the map file is
      empty or not.  In mh6.8.3, this worked because map_open would set "clear" by
      calling the mbx_Xopen routine.  In nmh, the code for mbx_Xopen was merged into
      mbx_open, but the interface for mbx_open doesn't support the clear variable,
      so that functionality was lost.  The map_open interface still contains "int
      *clear" in the prototype, but never sets it.
    
      My patch eliminates "clear" from the map_open interface (I checked to make
      sure that map_write is the only client of map_open).  Furthermore, my patch
      also sets the "clear" variable properly at the beginning of map_write by
      calling fstat().  This eliminates the bug in that the value of "clear" being
      used later in the routine was just stack garbage.
    
      Having a bad value of clear causes this next bug to be triggered: The fp file
      pointer was being opened with fdopen, but in two of the three switch cases it
      wasn't being closed.  In certain cases, this was causing packf to run out of
      file descriptors if you attempted to pack a large folder.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed May 31 02:13:57 2000 +0000

    A couple more tweaks to etc/Makefile.in:
    
        Generated sendfiles script was not a dependency of the `all' target, and was
        incorrectly included in the distribution.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed May 31 00:53:20 2000 +0000

    INSTALL never documented the etc/*.old thing.  Documented the new etc/*.prev
    thing (including a note to watch for diff output).

Author: Dan Harkless <dan@harkless.org>
Date:   Wed May 31 00:28:14 2000 +0000

    Reworded my last entry a bit.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed May 31 00:22:05 2000 +0000

    etc/Makefile.in was incorrectly installing mts.conf.in and sendfiles.in --
    fixed.  Changed the suffix for the backed-up previous versions of the etc files
    from the ambiguous .old to .prev.  Use diff and only keep the .prev file around
    if different.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 30 22:52:43 2000 +0000

    ChangeLog:  I think we should use a uniform style in this file.  Reformatted
                Ruud's recent entries.
    
    configure:  Weird.  There's some timestamp screwup somewhere, perhaps in the way
                Makefile.in is written, that caused autoconf to get run after I did
                a `cvs update'.  It regenerated configure, and apparently I'm using
                a different version of autoconf, with a different order of awk
                alternatives.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon May 29 08:00:33 2000 +0000

    Added entry for new lexing function and moving from zotnet/tws to sbr

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon May 29 07:48:14 2000 +0000

    Updating root-level files so that zotnet/tws/Makefile is not generated.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon May 29 07:44:51 2000 +0000

    Synchronizing Makefiles that had gotten out of sync with directory
    contents.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon May 29 07:43:29 2000 +0000

    Updated sbr functions to include <h/tws.h> instead of <zotnet/tws/tws.h>.
    Also, update Makefile to include new functions dtime.c and dtimep.c

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon May 29 07:35:32 2000 +0000

    Updating user programs to use <h/tws> instead of <zotnet/tws/tws.h>

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon May 29 07:29:08 2000 +0000

    Moved date/time functions from zotnet/tws to sbr. More importantly,
    wrote a new lexing function dparsetime (dtimep.lex) which
    plays nicely with flex, needs no "sed hackery". It might work with
    lex, but I haven't tried.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Sun May 28 16:17:49 2000 +0000

    * Added autoconf check for getutent().
    * Changed uip/rcvtty.c and uip/slocal.c to use getutent() and
      friends.  Since I can only check on Linux, please check if
      this works on other systems.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Sun May 28 16:15:58 2000 +0000

    Added autoconf check for getutent().

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Sun May 28 14:42:01 2000 +0000

    * Applied patch from Peter Maydell to uip/scansbr.c for more
      checks for write failures.
    * Unlink temporary file properly in uip/rcvtty.c.
    * Moved viamail from bindir to libdir.
    * Changed sendfiles into sendfiles.in, so that path to viamail
      is patched in.
    * Added gzip support to sendfiles.
    * Added References header to replcomps and replgroupcomps.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Sun May 28 12:45:53 2000 +0000

    Fixed m_getfld bug which caused segmentation faults when
    incorporating messages which ended in multiple linefeeds crossing
    a buffer boundary.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri May 26 20:35:30 2000 +0000

    msh has been unable to show MIME messages ever since 1.0.  Alec Wolman
    <wolman@cs.washington.edu> tracked down the problem to the -show flag being
    passed to mhshow.  mhshow is equivalent to the old mhn -show, so we don't need
    the -show anymore.  Removed it.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri May 12 05:19:14 2000 +0000

    Moved zotnet/mf to sbr.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri May 12 04:16:46 2000 +0000

    zotnet/bboards no longer built by default.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri May 12 02:55:36 2000 +0000

    zotnet/bboards is no longer built by default.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Fri May 12 02:51:21 2000 +0000

    Removed zotnet/bboards from default build.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu May 11 02:55:11 2000 +0000

    Change to MACHINES to include what platforms nmh *does* compile on.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu May 11 02:53:07 2000 +0000

    Added on whish platforms nmh is known to compile, as polled from
    recent mailings to nmh-workers. Please add liberally.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu May 11 02:24:59 2000 +0000

    Entered minor change to sbr/Makefile.in

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu May 11 02:21:34 2000 +0000

    Removed explicit definition of both SRCS *and* OBJS, and made OBJS simple
    a pattern substitution of SRCS, with suffix .c -> .o

Author: Shantonu Sen <ssen@mit.edu>
Date:   Thu May 11 02:14:21 2000 +0000

    Added my getpass() addition to ChangeLog (after the fact, but at least
    it's in now).

Author: Dan Harkless <dan@harkless.org>
Date:   Wed May 10 03:39:46 2000 +0000

    Added mts.conf.5 page per Neil W Rickert <rickert+nmh@cs.niu.edu>'s report:
    
        This happens on solaris:
    
    	     % man mts.conf
    	     windex entry incorrect:  mts.conf(5) not found.
    	     No manual entry for mts.conf.
    
        It is fixed by
    
    	     % echo ".so man5/mh-tailor.5" > mts.conf.5
    
        done in the man5 directory.  We need to add 'mts.conf.5' as a reference
        sourcing mh-tailor.5.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed May 10 00:02:53 2000 +0000

    Prepended "Portions of this code are" to the copyright message in ruserpass.c
    also.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 21:44:15 2000 +0000

    * Changed configure.in to use gcc -Wall even without --enable-debug, to prevent
      developers compiling optimized from introducing warnings, and to give
      end-users a warm, fuzzy feeling as they (hopefully) see no warnings come out
      (except perhaps on the lex output file) even with -Wall.
    
    * Renamed getpass() to nmh_getpass() since the prototype for getpass() varies
      from OS to OS, and we want to _always_ use our version of the function.  Fixed
      all the callers to use nmh_getpass() and added it to prototypes.h.
      Semi-arbitrarily upped MAX_PASSWORD_LEN from 128 to 256.  buf was being
      calloc()'d and the memory leaked -- should have just been declared as static
      char array.  Prepended "Portions of this code are" to the copyright message,
      as this version has been changed significantly from the BSD version.
    
    * Added "nmh-local functions to use in preference to OS versions" section to
      README.developers (currently just says to use nmh_getpass() instead of system
      getpass()).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 19:56:57 2000 +0000

    Oops.  Forgot to commit this when I made configure changes yesterday.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 08:16:18 2000 +0000

    Added steps to README.developers saying to change the version number to
    X.Y.Z+dev.  Did a little rearranging and changed the FTP dir from /home/ftp to
    /var/ftp to reflect Doug's new machine.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 07:55:58 2000 +0000

    Got rid of four warnings in Shantonu's new getpass.c.  Needed to #include
    <stdlib.h> for calloc(), <unistd.h> for ttyname(), and "h/mh.h" for adios().
    Also changed ch from char to int to get rid of "comparison is always 1 due to
    limited range of data type" on EOF.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 07:13:59 2000 +0000

    Alphabetized Shantonu's $pop_kinds output on configure's "pop is enabled" line.
    If POP3 is the only kind of POP enabled, say so, rather than just saying "yes"
    (which is ambiguous).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 06:53:21 2000 +0000

    Shantonu updated the DIFFERENCES file to no longer say that APOP isn't
    supported, but in so doing, he removed the note that RPOP isn't supported.  Put
    it back.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 06:47:50 2000 +0000

    * I had alphabetized the --configure options in the --help output
    awhile back, but Shantonu added --enable-apop just under --enable-pop.  Put it
    in alphabetical order and clarified what --enable-apop does vs. --enable-pop and
    --with-krb4.  Also changed --with-mts help line from "mail transport agent" to
    "mail transport agent/service" so the 's' in "mts" doesn't seem to come out of
    nowhere.
    
    * Added two steps to "releasing nmh" in README.developers.  After
    making the tarball, it's a good idea to diff the tree vs. the CVS tree to make
    sure no files got left out, and then to chown the files so that they're owned by
    root, preventing a Trojaning attack by a malicious remote user with a UID
    matching yours.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue May 9 06:27:38 2000 +0000

    Updated POP capability to include APOP.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue May 9 06:16:52 2000 +0000

    Removed unnecessary comments, such as "*This warning no longer applies*"

Author: Shantonu Sen <ssen@mit.edu>
Date:   Tue May 9 06:09:05 2000 +0000

    Fix some compile-time warnings.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 04:52:55 2000 +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
    `diff'.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 04:08:55 2000 +0000

    Okay, now that the old revisions have been recreated, deleting the file.  The
    new version is in the 'docs' subdirectory.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 04:07:15 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 04:05:46 2000 +0000

    This is the nmh-1.0.3 version from 2000-01-18 (1.0.2 had no changes).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 04:03:55 2000 +0000

    This is the nmh-1.0.1 version from 1999-05-17.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 03:58:04 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 03:29:37 2000 +0000

    After nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 03:27:53 2000 +0000

    Okay.  Removing it now.  New location is in 'docs' subdirectory.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 03:25:24 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 03:18:50 2000 +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.  ;^>

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 03:12:59 2000 +0000

    Just a silly note 'cause I'm vain --

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 02:43:54 2000 +0000

    After nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue May 9 02:36:42 2000 +0000

    After nmh 1.0.4, moved from top-level 'nmh' directory to 'nmh/docs'.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun May 7 06:59:15 2000 +0000

    Updated pop instructions and indicated use of standard "./configure"
    instead of "sh configure"

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun May 7 06:16:43 2000 +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).

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun May 7 06:14:31 2000 +0000

    Added getpass to SRCS and OBJS.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat May 6 15:53:40 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat May 6 15:29:19 2000 +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}/Makefile.in to reflect that and to add missing
    entry for "INSTALL" file.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat May 6 15:05:02 2000 +0000

    Fixed DIST targets to reflect that INSTALL and MACHINES are back at the top
    level.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat May 6 14:54:25 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Sat May 6 14:19:23 2000 +0000

    Deleting the versions Doug moved in with `cvs add', erasing the version history,
    in preparation for moving the original versions in the cvsroot.

Author: Doug Morris <doug@mhost.com>
Date:   Sat May 6 11:34:02 2000 +0000

    reorganized documentation to make it bit neater again

Author: uid1005 <uid1005>
Date:   Fri Apr 21 17:36:37 2000 +0000

    Corrected status printout when kpop is enabled

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Apr 18 00:17:50 2000 +0000

    One final tweak to the configure --help output for --enable-masquerade.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Apr 17 22:49:39 2000 +0000

    APOP supprt: Added info to ChangLog.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Apr 17 22:09:00 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Apr 17 22:04:33 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Apr 17 21:25:23 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Apr 17 19:02:11 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Apr 17 18:48:03 2000 +0000

    Put a note saying that the paths this file refers to (stuff in docs/) are
    currently wrong.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Apr 17 18:36:59 2000 +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/.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Apr 17 18:34:40 2000 +0000

    Undeleting everything at the top level for now.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Apr 17 16:56:57 2000 +0000

    Added note that user questions are acceptable on nmh-workers.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Apr 17 05:29:49 2000 +0000

    Added that you should check in aclocal.m4 after acconfig.h, if you change it.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Apr 17 05:25:18 2000 +0000

    APOP support: Making the apop option appear after pop in ./configure --help
       and committing in the right order to avoid unnecessary autoconfing.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Apr 17 05:12:14 2000 +0000

    Don't try to figure out ruserpass - just use version from sbr/

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Apr 17 05:09:46 2000 +0000

    APOP support: Use the ruserpass function in this directory for
        all password prompts, instead of using system functions.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Apr 17 05:08:32 2000 +0000

    APOP support: If APOP is enabled, build it into inc and msgchk
        using $(APOPLIB).

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Apr 17 05:07:03 2000 +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.

Author: Shantonu Sen <ssen@mit.edu>
Date:   Mon Apr 17 05:04:05 2000 +0000

    Adding APOP #defines

Author: Shantonu Sen <ssen@mit.edu>
Date:   Sun Apr 16 13:28:12 2000 +0000

    Changed some string terminations from NULL to \0.

Author: Doug Morris <doug@mhost.com>
Date:   Sat Apr 15 04:28:27 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Apr 15 02:00:43 2000 +0000

    Added a "releasing nmh" section to README.developers, while the process was
    fresh in my mind.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Apr 14 21:38:37 2000 +0000

    Okay, got that tag stuff straightened out.  Now upping the version to 1.0.4+dev.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Apr 14 21:26:56 2000 +0000

    Oops.  Had a duplicate entry.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Apr 14 21:05:34 2000 +0000

    Oops.  Didn't do a `cvs rtag` before changing the version to 1.0.4+dev.  Putting
    it back.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Apr 14 20:47:32 2000 +0000

    Upped the version number to 1.0.4+dev.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Apr 14 20:40:31 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Apr 12 00:54:54 2000 +0000

    Just reworded the bit about '%s' being safe not to quote (it's only safe not to
    quote on the -charset- line).

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Apr 12 00:25:23 2000 +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.

Author: Doug Morris <doug@mhost.com>
Date:   Sun Apr 9 07:04:24 2000 +0000

    bug fix - prevents core-dumping on scan -format '1'

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Apr 7 00:42:55 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Apr 6 19:56:35 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Apr 6 00:22:06 2000 +0000

    * Add some way to configure whether you prefer to see text/plain or text/html
      parts of multipart/alternative messages.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Apr 6 00:11:50 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Mar 31 04:25:26 2000 +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.  ;^>

Author: Doug Morris <doug@mhost.com>
Date:   Tue Mar 28 14:42:36 2000 +0000

    added Todd Miller's packf patch

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Mar 17 20:19:43 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Mar 17 20:11:03 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Mar 16 02:40:42 2000 +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".

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Mar 15 23:37:30 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Mar 15 22:25:16 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 21:21:28 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 21:15:55 2000 +0000

    Added missing dependency in zotnet/tws/Makefile.in for dtimep.c: dtimep.c-lexed.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 21:07:56 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 20:50:19 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 20:40:47 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 09:20:27 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 05:24:57 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 05:05:49 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 02:39:13 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Mar 14 02:29:26 2000 +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".

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Mar 6 20:19:04 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Mar 4 00:02:46 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Mar 3 07:30:31 2000 +0000

    Oops.  I was using an older email address for Neil -- now he uses the $USERPLUS
    feature that I'm crediting him for.  ;^>

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Mar 3 07:24:41 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Mar 2 08:20:00 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Mar 2 07:56:00 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Mar 2 07:52:47 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Feb 29 06:17:58 2000 +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...

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Feb 29 05:59:16 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Feb 29 05:16:35 2000 +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.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Mon Feb 28 17:09:02 2000 +0000

    	* Fix security hole in mhshowsbr.c which allowed untrusted shell
    	  code to be executed.
    	* Released nmh 1.0.3.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Feb 10 18:50:23 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Feb 4 20:36:43 2000 +0000

    Removed an item that Richard did without removing its TODO, and removed an item
    that was duplicated in two different priority sections.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Feb 4 20:34:07 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Feb 4 20:28:23 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Feb 4 01:46:29 2000 +0000

    Modified INSTALL and config.h.in to reflect the new -kpop feature.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Feb 4 01:32:12 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Jan 29 01:34:20 2000 +0000

    Added check for lynx to write mhshow-show-text/html line in mhn.defaults.sh.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jan 28 23:29:06 2000 +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

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jan 28 22:00:33 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jan 27 20:20:01 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jan 27 20:14:58 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Jan 27 20:12:38 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 21:35:43 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 10:16:32 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 10:14:14 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 09:27:59 2000 +0000

    Just added a comment explaining that akvalue() does mh alias substitution.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 09:26:23 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 09:24:15 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 06:51:50 2000 +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:".

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 06:39:49 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 05:40:30 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 05:28:33 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 05:03:07 2000 +0000

    Documented the minchars field of struct swit to the best of my understanding.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 05:01:06 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 04:57:57 2000 +0000

    Whoever changed all the references to nmh-workers@math.gatech.edu to
    nmh-workers@mhost.com missed this file.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Jan 26 04:54:30 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 21:06:09 2000 +0000

    Just clarified a couple of points in my last change description.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 07:45:10 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 07:10:25 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:56:25 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:46:13 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:21:38 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:19:51 2000 +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).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:18:54 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:13:38 2000 +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.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:06:18 2000 +0000

    Added include of signals.h for SIGNAL() prototype.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:04:29 2000 +0000

    Added include of mh.h for snprintf() prototype.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 06:00:22 2000 +0000

    Added include of mh.h to get snprintf() prototype and changed all references to
    getcpy() to our_getcpy() to prevent conflict with the external one.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 05:58:26 2000 +0000

    Put in a prototype for stdio internal function _filbuf() to get rid of the
    "default prototype" warning (only do this when we didn't #define it to something
    specific due to another #define telling us to do so).

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 05:55:20 2000 +0000

    Put in a prototype for client() to get rid of the "default prototype" warning.
    The prototype should really go in a new client.h file or somewhere, but I don't
    have time right now for that.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 05:53:40 2000 +0000

    Typecast to get rid of warnings that index into cc[] is a char.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 05:52:31 2000 +0000

    Put in prototype for initgroups() to get rid of "default prototype" warning.  On
    AIX 4.1, at least, the function exists in libc.a but doesn't exist in any .h.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Jan 25 05:50:12 2000 +0000

    Typecast to get rid of warnings that array index into types[] is a char.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Thu Jan 6 21:30:07 2000 +0000

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

Author: Dan Harkless <dan@harkless.org>
Date:   Thu Nov 11 01:01:07 1999 +0000

    * Add command to reverse the action of rmm [-nounlink] -- "urmm"?  "umm"?  "um"?
    * Allow user customization of which kinds of text parts in multipart/alternative
      messages are preferred.  It would be nice if one selectable behavior would be
      to be prompted at runtime for which version to show.
    * Add a new %-escape that makes temp files more permanent than %f, so that you
      can use gnuclient -q or netscape -remote on message parts.  Put netscape
      -remote in mhn.defaults for text/html once this is done.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Nov 2 21:49:47 1999 +0000

    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.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Oct 29 20:42:13 1999 +0000

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

Author: Doug Morris <doug@mhost.com>
Date:   Fri Oct 29 05:10:18 1999 +0000

    updated INSTALL directions

Author: Doug Morris <doug@mhost.com>
Date:   Fri Oct 29 04:49:01 1999 +0000

    release nmh-1.0.2

Author: Doug Morris <doug@mhost.com>
Date:   Fri Oct 29 04:32:50 1999 +0000

    updated the TODO list and bumped the revision to 1.0.2.

Author: Doug Morris <doug@mhost.com>
Date:   Wed Oct 27 05:21:12 1999 +0000

    fixed test in Makefiles for LIBTOOL for the case where it doesn't exist

Author: Doug Morris <doug@mhost.com>
Date:   Tue Oct 26 21:12:36 1999 +0000

    fixed libtool check, sort of...

Author: Doug Morris <doug@mhost.com>
Date:   Thu Oct 21 18:59:35 1999 +0000

    changes to allow building under Mac OS X/Rhapsody

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Sun Oct 17 17:39:22 1999 +0000

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

Author: Doug Morris <doug@mhost.com>
Date:   Sat Oct 16 00:56:05 1999 +0000

    sunos/solaris modifications

Author: Doug Morris <doug@mhost.com>
Date:   Fri Oct 15 22:38:55 1999 +0000

    replaced the BIND guess (based on BSDishness) with checks for gethostbyname and sethostent

Author: Doug Morris <doug@mhost.com>
Date:   Wed Oct 13 14:56:41 1999 +0000

    fixed bug in mh-profile/mh_profile manpage link - it did not check first

Author: Doug Morris <doug@mhost.com>
Date:   Wed Oct 13 13:58:41 1999 +0000

    updated manpage's Makefile and modified the way configure tests to see whether
    it should define LINUX_STDIO.

Author: Dan Harkless <dan@harkless.org>
Date:   Mon Oct 4 22:23:29 1999 +0000

    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.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Oct 2 06:00:54 1999 +0000

    	* Fixed a portability problem in Doug's fix of a portability
    	problem in my MAILGROUP autoconf support ('ls -l' vs. 'ls -lg').

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Oct 2 06:00:11 1999 +0000

    I didn't like the double use of "MAILGROUP" for two different variables used in
    different languages, with different values.  I renamed Doug's new Makefile
    "MAILGROUP" to MAIL_SPOOL_GRP.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Oct 2 05:57:23 1999 +0000

    Touched because I changed configure.in.

Author: Dan Harkless <dan@harkless.org>
Date:   Sat Oct 2 05:55:54 1999 +0000

    Doug's fix for my MAILGROUP autoconf support on his platform (yep, I was
    ignorant about that "wheel" group) broke it on my platforms (AIX 4.1.5.0.01 and
    Solaris 2.6).  `ls -lg` doesn't do what Doug was expecting on these platforms --
    it displays _only_ the group rather than the user and the group (thus awk
    '{print $4}' did the wrong thing).
    
    Also did some miscellaneous cleanup, like making variables that were intended to
    be cached actually be cached (renamed to nmh_cv_*, etc.), and using the $AWK
    that we've auto-detected rather than relying on the $PATH to find one.

Author: Ruud de Rooij <ruud@ruud.org>
Date:   Sun Sep 26 17:45:55 1999 +0000

    	* 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 <kim@tac.nyc.ny.us>.
    
    	* Modified mhstore to recognize attachments created by sendfiles
    	with x-conversions=gzip.

Author: Doug Morris <doug@mhost.com>
Date:   Mon Sep 13 19:23:29 1999 +0000

    moved canonical guesses back into user config section of config.h

Author: Doug Morris <doug@mhost.com>
Date:   Mon Sep 13 18:20:28 1999 +0000

    updates to post.c and termsbr.c that prevent warnings on OpenBSD

Author: Doug Morris <doug@mhost.com>
Date:   Sun Sep 12 13:50:11 1999 +0000

    Lots of little code cleanups to prevent warnings - mostly making sure
    some function prototypes are available at compile time. Also fixed
    Makefile.in so that make nmhdist will work -- it just blew up after
    COMPLETION-TCSH was added and ZSH-COMPLETION was changed to
    COMPLETION-ZSH.

Author: Doug Morris <doug@mhost.com>
Date:   Sun Sep 12 07:19:40 1999 +0000

    updating changelog, should have been done with last commit

Author: Doug Morris <doug@mhost.com>
Date:   Sun Sep 12 06:44:02 1999 +0000

    fix for configure to find db1/ndbm.h in new linux systems

Author: Doug Morris <doug@mhost.com>
Date:   Fri Sep 10 05:22:40 1999 +0000

    configure, configure.in stamp-h.in, and uip/Makefile.in modified to fix
      MAILGROUP test.
    m_getfld.c - added the patch submitted by Richard Cohen to fix
        crashing when mh_profile has no trailing newline.
    smtp.c, lock_file.c, m_scratch.c, m_tmpfil.c, mhscmds.c, rcvtty.c, and
      spost.c modified to fix mkstemp bugs. Some I've simply commented out
      because the repair requries either creating another new tempfile
      function (there are 3 already) or cleaning up the existing tmpfile
      functions and all the calls to them. I'm opting for the latter but
      it will take a while.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Sep 7 23:45:20 1999 +0000

    Renamed ZSH.COMPLETION to COMPLETION-ZSH and added COMPLETION-TCSH.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Sep 7 23:41:37 1999 +0000

    New file along the lines of the old ZSH.COMPLETION, but for tcsh.  Pretty bare
    right now.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Sep 7 23:34:00 1999 +0000

    Renamed to COMPLETION-ZSH so it'll alphabetize next to new COMPLETION-TCSH.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Sep 7 23:29:14 1999 +0000

    Renamed from ZSH.COMPLETION so it'll alphabetize next to new COMPLETION-TCSH.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Aug 18 00:05:24 1999 +0000

    Crap.  That's what I get for using vi instead of xemacs for a change.  Inserted
    missing newline.

Author: Dan Harkless <dan@harkless.org>
Date:   Wed Aug 18 00:01:28 1999 +0000

    Just adding some text to this file so that cvs will see a difference and let me check it in.  Every time acconfig.h or configure.in are changed (which I just
    did), the timestamp on this file needs to be updated or when people do a make
    an unnecessary `cd . && autoheader` will be done, and not everybody has the
    autoconf tools installed.  The next person to change those two files (or
    aclocal.m4) will need to change this text, maybe just to a message saying which
    dependency files were changed and by whom.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Aug 17 23:31:23 1999 +0000

    Automated #define of MAILGROUP and installation of inc as setgid mail when the
    mail spool directory isn't world-writable.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Aug 17 23:15:31 1999 +0000

    Automated #define of MAILGROUP and installation of inc as setgid mail when the
    mail spool directory isn't world-writable.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Aug 17 23:12:42 1999 +0000

    Just removed some useless whitespace that [X]Emacs' Make mode highlights as
    being semi-bogus.

Author: Dan Harkless <dan@harkless.org>
Date:   Tue Aug 17 23:09:46 1999 +0000

    Automated #define of MAILGROUP and installation of inc as setgid mail when the
    mail spool directory isn't world-writable.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 01:39:09 1999 +0000

    * slocal -debug used to leave a copy of each message processed in /tmp.
    * Got rid of a ton of compilation warnings output by gcc -Wall.
    * rcvdistcomps no longer has "Resent-Fcc: outbox"; new rcvdistcomps.outbox does.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 01:30:05 1999 +0000

    Eliminated compilation warnings.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 01:19:29 1999 +0000

    Eliminated unsued sigset_t variables set and oset.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 01:16:08 1999 +0000

    Previously contained the code:
    
    		if (numburst == 0)
    		    if (!quietsw)
    			admonish (NULL, "message %d not in digest format",
    				  msgnum);
    		else
    		    adios (NULL, "burst() botch -- you lose big");
    
    If the indentation is to be believed, this is a bug.  I trusted the indentation
    and added {}s around the inner if().

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 01:13:05 1999 +0000

    Eliminated compilation warnings.  pop_action() and pop_pack() used to return
    garbage.  They now (arbitrarily) return 0.  Dunno if their return values are
    ever used...

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 01:11:44 1999 +0000

    Eliminated compilation warnings.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 01:03:34 1999 +0000

    donote() previously was written such that it could return garbage.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 01:01:24 1999 +0000

    err2peer() previously returned garbage.  Now it returns result of callee
    verr2peer().

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:59:36 1999 +0000

    Eliminated compilation warnings.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:53:17 1999 +0000

    Eliminated compilation warnings.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:52:20 1999 +0000

    Eliminated compilation warnings.
    
    slocal -debug left a file in /tmp for every single message it processed!
    Totally unacceptable since some people like to have slocal -debug in their
    .forward files to get better logging.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:50:01 1999 +0000

    Changed done() from returning void to returning int so that main()s who call
    done() at the end can instead return done() at the end to eliminate the
    compilation warning about falling off the end of a non-void function.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:48:59 1999 +0000

    Changed from returning void to returning int so that main()s who call done() at
    the end can instead return done() at the end to eliminate the compilation
    warning about falling off the end of a non-void function.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:47:33 1999 +0000

    Changed call of done() to return of done() to eliminate compilation warning.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:44:40 1999 +0000

    I think it's totally inappropriate for the default rcvdistcomps to save all
    outgoing messages in an "outbox" folder.  I have made a new file called
    rcvdistcomps.outbox which looks like this file used to.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:43:04 1999 +0000

    New $(DIST_FILES) entry: rcvdistcomps.outbox.

Author: Dan Harkless <dan@harkless.org>
Date:   Fri Jul 16 00:40:35 1999 +0000

    I renamed the old rcvdistcomps to rcvdistcomps.outbox and removed the
    "Resent-Fcc: outbox" line from rcvdistcomps.

Author: Doug Morris <doug@mhost.com>
Date:   Sat Jun 12 09:29:45 1999 +0000

    added my name to the change

Author: Doug Morris <doug@mhost.com>
Date:   Sat Jun 12 09:26:50 1999 +0000

    added explanation of change made two nights ago.

Author: Doug Morris <doug@mhost.com>
Date:   Wed Jun 9 20:51:59 1999 +0000

    use mkstemp on systems that have it

Author: Doug Morris <doug@mhost.com>
Date:   Thu May 13 14:42:34 1999 +0000

    Added notes about the configure change.

Author: Doug Morris <doug@mhost.com>
Date:   Thu May 13 14:28:25 1999 +0000

    Modified configure to use config.guess and config.sub to auto-detect
    the system type and correctly set the #defines in config.h.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 03:42:11 1999 +0000

    1.0.1

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:32:53 1999 +0000

    1.0.1 patches

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:31:47 1999 +0000

    Update for the brave new world

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:31:00 1999 +0000

    Use "#include <errno.h>" instead of "extern int errno;". Suggested by
    Stephen Wilson Bailey <swb@nconnect.net>

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:28:40 1999 +0000

    add a note about Irix make

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:28:16 1999 +0000

    man page updates from Jerry Peek <jpeek@jpeek.com>

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:26:41 1999 +0000

    deal with SIGPIPE so mhl doesn't print "Broken pipe" if you quit out
    of the moreproc

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:25:52 1999 +0000

    Fixed a signal-handling bug that could cause whatnow to sometimes exit
    without prompting the user. Based on a patch by Richard Geiger
    <rmg@netapp.com>.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:24:47 1999 +0000

    Changed configure.in's check for sigsetjmp to properly deal with
    systems like Linux where it is a macro. From <elleron@servtech.com>.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:22:54 1999 +0000

    Added -library switch so it can parse user aliases like post does.
    From Ruud de Rooij <r.c.m.derooij@twi.tudelft.nl>.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:22:03 1999 +0000

    Don't add line breaks in the middle of long addresses when building a
    draft. Fixes a bug where repl would generate invalid headers. From
    Ruud de Rooij <r.c.m.derooij@twi.tudelft.nl>.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:17:23 1999 +0000

    Allow display of 8bit encoded messages. From Kimmo Suominen
    <kim@tac.nyc.ny.us>.

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:16:14 1999 +0000

    Change ordering of a conditional to prevent a bad pointer dereference.
    Fixes a segv in inc (and occasionally other programs). Originally from
    Ruud de Rooij <r.c.m.derooij@twi.tudelft.nl>

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:13:58 1999 +0000

    Fix a buffer overrun that caused packf -mbox to mess up on
    Return-Path: lines. From Kimmo Suominen <kim@tac.nyc.ny.us>

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:12:12 1999 +0000

    Make whatnow "list" work with "lproc: show" again. From Ruud de Rooij
    <r.c.m.derooij@twi.tudelft.nl>

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:10:45 1999 +0000

    add HAVE_LIBM

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:07:15 1999 +0000

    Add check for modf and link with -lm if it's not in libc. Needed for
    at least Digital UNIX. Problem noted by Kevin Oberman <oberman@es.net>

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:05:49 1999 +0000

    Fix krb4 code to work with the original krb4 libraries as well as
    the krb5-compat ones. Based on a patch by Assar Westerlund <assar@sics.se>

Author: Dan Harkless <dan@harkless.org>
Date:   Thu May 13 01:03:23 1999 +0000

    Properly deal with relative folder names. Problem noted by Jerry Peek
    <jpeek@jpeek.com>

Author: Doug Morris <doug@mhost.com>
Date:   Fri Apr 30 18:08:34 1999 +0000

    Initial revision
