History of changes in earlier mailapp-utilities releases.

2.1 to 2.2:

* First working port to Rhapsody / MaxOS X Server (DR2).  Status:

  - appnmail: works, but incorporation into open mailbox is not supported.

  - compactmail: works.

  - listmail: works.

  - nextmail: edit-mode works, using (undocumented) MailViewer DO API;
    deliver-mode circumvents MailViewer, and uses documented API from
    Message.framework directly--this also means the message is not
    archived in Outgoing.mbox.

  (DISCLAIMER: s/works/seems to work/g :-)

  See also the file TODO.

* appnmail: incorporate iso-2022-jp and us-ascii encoding patches
  contributed by SHIROYAMA Takayuki <psi@fortune.nest.or.jp>.

* appnmail: new options `-I encoding', `-J', `-L' to set default input
  encoding.

* appnmail: new options `-N', `-M' to support both NeXT Mail.app and
  Rhapsody/MacOS X MailViewer.app mailbox formats.  A suitable default
  is chosen at compile-time.

* appnmail: handle multiline (folded) headers.

* appnmail: fix longstanding bug in recording length of NeXTmail messages.
  The recorded length in the TOC was one byte shorter than the actual
  message in the mbox. (Ugh!)  This was probably the cause of message
  display errors after compaction.

* appnmail: avoid appending message to out-of-sync mailbox, if at all
  possible (use appnmails own temporary mailbox instead).

* listmail: print hex timestamps if out of sync (so you can correct it
  with a hex-edit tool if you know what you're doing:-); print extended
  timestamp if -vv.

* fix stupid bugs in appnmail's Mime-header (base64) decoding, and in
  appnmail's (mailtoc's actually) message_current_date().

* fix bug that prevented `appnmail -i </dev/null' from working.

* appnmail: add diagnostics code in an attempt to detect elusive message
  corruption (message is partially overwritten with the contents of the
  lock file, followed by a bunch of null characters.)  Unfortunately, this
  didn't shed any light on the bug during beta-testing, so it means the
  bug is still there...

* mailtoc: support extended timestamp for MailViewer (Rhapsody / MacOS X)
  mailboxes.  This is used by appnmail in `-M' mode.

* add lock timeout option (-T sec) to appnmail, listmail and compactmail.

* Centralized logging, for more consistent log / error messages.
  appnmail now displays time and process id in log messages, a la syslog.

* add diagnostics code in unlock to detect locks that have been stolen
  from us (shouldn't happen, but still doesn't hurt to check...)

* compactmail: new `-t' (test-mode) option.

* listmail: new message-type selection options: `-d', `-f', `-n', `-r',
  `-u', `-a' and `-h'.  These show message-count(s) in combination
  with `-t'.

* listmail: now ignores lock by default, and lists regardless.
  To wait for the lock, use `-w' or `-T -1'.


2.0 to 2.1:

* compactmail now removes NeXTmail attachments (actually since 1.8, but
  I forgot to mention it earlier:-/)  It does not yet remove `orphaned'
  NeXTmail attachments. 

* fix bug in compactmail that caused table_of_contents corruption.

* improved Mime-header decoding in appnmail: now knows how to decode
  base64-encoded headers; follow RFC-2047 rules more strictly.

* I don't understand Japanese iso-2022-jp to J-EUC conversion rules at
  all, so I didn't implement it in appnmail yet.  Fortunately a separate
  utility, `nkf', is available which can handle this.
  This is Itaru Ichikawa <ichikawa@flab.fujitsu.co.jp>'s Network Kanji
  code conversion Filter.  The easiest way to to use it with appnmail and
  procmail, is to insert the following recipe in ~/.procmailrc, _before_
  any rule that invokes appnmail:

    :0fh
    * ^(From|Subject): .*=\?iso-2022-jp\?
    | nkf -e -m

  nkf now ships with mailapp-utilities.

* appnmail now has an `-i' option, to force incorporation of pending mail
  in the (possible open) mbox.

* appnmail now detects PGP-encrypted mail, and sets the `encrypted' flag
  accordingly.

* various output layout fixes to listmail.

* an honest-to-goodness Y2000 bug found and fixed in appnmail!-)

* fix locking bug that causes endless loop if lock could not be created,
  e.g. if you didn't have write permission in the mailbox.

* all utilities should now compile and run under OPENSTEP/Mach.  Note
  that dynamic linking of the frameworks under OPENSTEP causes some
  noticeable slowdown at startup, so you may want to continue using the
  faster NEXTSTEP-compiled versions.

* Preliminary (untested!) RHAPSODY support -- the utilities should now
  compile, and may even work more-or-less as advertised.  [I'd
  appreciate it if someone with access to Rhapsody could test this out,
  as I don't have a Rhapsody machine handy...]  Known limitations: I
  found (as yet) no way for appnmail to deliver into open mailboxes in
  MailViewer.

* Makefile support for the various targets: compile with
  "make TARGET=NEXTSTEP" (the default) for NEXTSTEP 3.x,
  "make TARGET=OPENSTEP" (on a machine running OPENSTEP) or
  "make TARGET=RHAPSODY" (on a machine running Rhapsody).
  Target-specific Makefile definitions are found in Make.target-*.

* some file hierarchy reorganization for distribution.


1.8 to 2.0:

* appnmail now knows how to incorporate messages into a mailbox while it
  is open in Mail.app -- no need to close and re-open the mailbox in order
  to let appnmail do its job anymore!  (This may not work with earlier
  versions of Mail.app; I think it should work with all 3.x versions, but
  it is tested only with 3.3 and 4.[012])

* appnmail has been made more robust: it now saves its message to disk
  as soon as possible, to a temporary mbox if need be, to minimize the
  chance of losing messages in a system crash.

* Installables are now distributed in an Installer package.

1.7 to 1.8:

* Fixed mbox-locking race condition that caused appnmail to fail to deliver
  messages in rare circumstances (reported by Tim Luoma <luomat@peak.org>).

* Print informational message when starting to wait for mbox lock.

* Compactmail bugfix: Mail.app marks some deleted messages with `D',
  which wasn't understood by compactmail.

* Add `-NXHost host' option to nextmail.  This contacts Mail.app on the
  specified host.

* mailtoc routines now use stdio for more efficient table_of_contents
  reading.  (Actually this is to benefit EnhanceMail; it shares this code
  with mailapp-utilities.)

1.6 to 1.7:

* _Serious_ appnmail bug fixed: it used to write a corrupt table of
  contents upon mailbox creation.

* Appnmail tries very hard to deliver its message anyway, even if the
  mailbox's table of contents is corrupt or otherwise cannot be updated.

1.5 to 1.6:

* Make appnmail's NeXTmail handling work again with OPENSTEP 4.x.
  (appnmail-1.5 unconditionally invoked "/NextApps/Mail.app/safetar",
  which is missing in Mail.app 4.0.)
  As a result of this fix, appnmail now obeys Mail's hidden "TarCommand"
  and "UncompressCommand" defaults.  If "TarCommand" is not set,
  "/NextApps/Mail.app/safetar" and "/usr/bin/gnutar" are tried, in that
  order.  If "UncompressCommand" is not set, "/usr/bin/gunzip" and
  "/usr/ucb/uncompress" are tried, in that order.

* Minimize the risk of corrupting mailboxes in appnmail by moving the
  actual "append-to-mbox" beyond possible failure points.

* MIME 8-bit quoted header translation by appnmail.  For now, supported
  character sets are: iso-8859-1 and iso-8859-2.

* Add -H (help) and -V (version) options to all utilities.

* Bugfix in stale-lock detection: it was possible to steal a lock that
  is in use by a process owned by another user, if we have write access to
  the mailbox.

* Make table-of-contents reading code more robust against corrupted TOCs.

* Table-of-contents reading code now resides in its own source files, to
  facilitate its reuse by other utilities.

1.4 to 1.5:

* Added workaround for Mail.app 3.3 NeXTmail bug

* Added mbox2bsd

* Correct handling of message priorities

* Elimination of stale locks left by other applications

* Appnmail can mark messages as flagged as well as read/unread/deleted

* All mailapp utilities are more aggressive about detecting stale locks

1.3 to 1.4:

* Appnmail now accepts multiple mail messages with the -m option (no, it doesn't !)

* added -t option to listmail on suggestion by
  Hadar Pedhazur <ubs!hadar@uunet.uu.net>.

1.2 to 1.3:

* Extremely evil byte order bug on little endian machines was fixed.  The
  utilities now do work under NS/FIP.

* Support for NS 3.3.

* MyMail.ts added.

* Undocumented searchmail added.

* The mailapp utilities work with hierarchical mailboxes.

* Mime messages are classified correctly.

* The mailapp utilities interpret '~' in path names.

1.1 to 1.2:

* compactmail may work under NS/FIP now.

* appnmail has been speeded up about 100x.  On large messages this really
  matters.

* A minor bug in appnmail was fixed which when the incoming message
  had a malformed Date header could cause Mail.app to believe that the
  mailbox directory was corrupted and recreate the table_of_contents
  file.  This error could not cause the loss of mail messages.

* Listmail has a man page now.

* The Mail.app utilities are compiled fat.

* Compactmail tries not to touch a mailbox at all if there are no
  deleted messages in it.

* First public release of GNUS/Mail.app interface.

* The Mail.app utilities are now NS/FIP compatible thanks to Todd Swan
  <tms@cfc.com>.

* The Mail.app utilities now include sendmail-addheadsig.

* Compactmail adds the -d, -s, -f and -u options.

1.0 to 1.1:

* Compactmail and Listmail were added.

1.0:

* First public release
