Bugs, features that may be added:
- Currently "." permitted as a HASHABLE_CH. It may be desirable to
  convert all "."s to ":"s, to avoid any filename issues. For this
  reason, the not_hashable function checks that the first character
  is not ".", since otherwise these files would be hidden or clash
  with existing files.
- Could check user@domain more meaningfully, such that @domain conforms
  to alphanumeric plus dot plus dash (the standard).
- No real consistent exit code strategy at present.

Versions:
 - 0.21: 30-July-2002:
	 - Removed hashqmaillocal.c, a relic from 0.1, 0.11.
	 - Modified qmail-local to turn addresses into lower case
	   before hashing - I thought I'd already done that, but
	   somehow I've missed it. That's, erm, _very_ important, so
	   that mail for POSTMASTER@xyz.com goes to the same place as
	   postmaster@xyz.com.
	 - Modified qmail-local so that if it can't find a mailbox, it
	   then checks whether it can find /maildirs, and then
	   /maildirs/<first-hash>. If not, return a soft error, to
	   indicate that the maildirs are not mounted.

 - 0.20: 21-May-2001:
	 - The main change for this version is to lose hashqmaillocal;
	   instead, qmail itself is changed (specifically, qmail-local)
	   to incorporate hashing. This means that hashing doesn't break
	   the DTLINE-based loop detection of qmail. Earlier versions of
	   qmail-hashdir did break this loop detection, since it was
	   invoked as a program delivery, for which loop detection is
	   disabled (I think that's right...). Since losing
	   hashqmaillocal is quite a big change, I've jumped up the
	   version number.
	 - Started using Dan's strerr routines, which shrinks the progs
	   (well, at least the source code) considerably.
	 - Started using -I to tell cc to look for headers in qmail dir
	 - Started using Dan's load and compile commands, so the user's
	   conf-cc and conf-ld for qmail should be effective here too.
	 - Changes to text files and comments in various places.
	 - Significant changes to the Makefile.
	 - With putting the hashing in qmail-local, extension addresses
	   are now possible within a hashed user directory. Scary to get
	   the hang of, mind.

 - 0.11: 21-Apr-2001. Various stupid errors fixed:
	 - Changed from 0.x to 0.xx version numbers, this seems far more
	   sensible, I expect there will be various incremental changes,
	   and I don't want to reach version 1 too soon (before the
	   package matures properly).
	 - Absolute path to maildirmake removed in addhashmaildir, which
	   means that the PATH will have to include the qmail bin directory.
	   Also added a check that the argument is a user (not an alias),
	   which is perhaps overdoing it.
	 - Negative exit codes replaced with positive ones - Solaris 8
	   was unhappy with these (for ishashuser, also called
	   by listhashaliases). Being paranoid, I also made similar
	   changes to admin_core.c, but I think they're completely
	   unnecessary. Anyway, a number of system functions called in
	   that module return negative values... I think Solaris 8's
	   fussiness is to do with Bourne scripts rather than C. Odd. Or
	   maybe I was just having a bad day.
	 - export USER added in hashop - again this was failing in
	   Solaris 8 - I guess Linux is more forgiving.
	 - "cp -f" lines replaced with "cp -fp" in the Makefile; otherwise
	   the ownership of the executables is wrong, so that when logged
	   in as the hash user, the binaries and scripts are not
	   available (er, whoops).
	 - admin_core "Ownership..." error-message improved.
	 - Some changes in the text files. Some instructions were confusing,
	   and maybe some still are...

 - 0.1: 30-Oct-2000: Replaces the earlier version, but in fact the only
        things that have changed are:
	 - the Makefile - this was setting SetUID, so I've removed that to
	   avoid the issue described below.
	 - the text files - to explain how to configure this package to work
	   around the SetUID issue (i.e. run everything as hashuser, or get
	   checkpassword to do the change of UID if necessary).

  - "qmail-hashing21Aug00": Initial public release. This included setting
	the SetUID bit on chhashdir, which I later realised meant that if
	the machine were to be compromised, arbitrary programs could be
	executed as the hashuser. Not necessarily a major hole, but I don't
	like it, so along came 0.1, and this earlier version is withdrawn.
