v1.00-pre4
		Autconf is finally here! Woohoo!
		Basic directory/file structure GNUified
		Updated documentation in ./docs
		'[Q]uit' changed to '[X]it' in spasm.c
		View Quarantine warning messages improved in spasm.c
		More functions made static in spasm.c
		In spasm.c/qMenu(), free message list during each prompt
		  loop iteration, give up if OOM, simplify linked
		  list creation, repair right box border if necessary
		Fix whitelist option in View Quarantine of spasm.c
		A 1.0 beta patch didn't get applied to the -pre tree, so
		  after a later bug got fixed, quarantine messages were
		  not being saved as they should have been; -pre2 and -pre3
		  were affected and did not properly save quarantine msgs

v1.00-pre3
		make now responds to changes in .h files
		Updated documentation in ./docs
		Removed the XBL
		Updated the TECH file
		SPASM_LOG in upgrade_filters.c should have been SPASM_REJECT
		Made search_regex() case insensitive
		Filter checks rewritten to support table-driven processing
		  in filter.h, spasm.c, spasmd.c
		spasm.c rewritten: added help, new interface
		Removed #include "filters.h" from dbfunc.c, added to
		  spasm.c and spasmd.c
		Functions modified to allow vi's goto top of function feature
		mlfi_envrcpt() returns if out of memory
		mlfi_envrcpt() allocation of MLFIPRIV->rcpt's next link is
		  simplified
		mlfi_envrcpt() logs LOG_ERR (not WARNING) if allocation of
		  cur->rcpt fails
		Don't strlen("constant string") when sizeof() can be done at
		  runtime
		Cache repeated strlen() of same string
		Make some trivial functions static
		#ifdef out the dead signal handlers

v1.00-pre2
		spasm.cgi: updateBlacklist() correction
		Typo: "unlinke" should have been "unlink"
		spasm_create_bl now returns int in case of failure
		spasmdb gives up if it runs out of memory
		spasmdb main loop rewritten
		spasmdb.1 man page updated
		Some stylistic changes

v1.00-pre1
		Removed MySQL and LDAP support
		Rewrote DB functions for Berkeley DB4
		Rewrote vars.h and renamed to filters.h
		Added per-user blacklists
		Changed per-user filter options storage mechanism
		Added per-filter tag/quarantine/reject settings
		Changed tagging mechanism
		Updated contrib software
		Fixed regex search bug
		Changed log format and mechanism
		Changed quarantine format and mechanism
		Per-domain logging/quarantining for non-default domains
		Added the Spamhaus SBL and SORBS
		Added basic SpamAssassin support
		Added virus scanning (through TrendMicro's vscan)
		A bunch of other stuff. It's basically been rewritten. =)

v0.31
		Wasn't freeing spasm_list.entry in spasm.c
		Missing comma after "spasm.sock" in INSTALL file for
		  manual insertion of Xspasm into sendmail.cf
		Changed "/usr/local/sbin/spasm" in INSTALL file to
		  "/usr/local/sbin/spasmd"

v0.30
		Check for NULL priv in mlfi_header, mlfi_eoh, mlfi_body
		Test for fopen error in user_lookup()
		Fixed bug when no domain specified for recipient

v0.29
		Added quarantine option
		Added ability to view rejection logs in spasm(1)
		Fixed whitelist bug
		Added ability to view quarantine in spasm(1)
		SPASM_USER can now change users in spasm(1)
		Added 14 more *.blackholes.us lists
		Added dsbl.org
		userbl now stored as long long

v0.28
		search_regex_spamtraps() and search_regex_envfrom()
		  not setting cur = cur->next; *sigh*
		Unterminated #ifdef *sigh*

v0.27
		Removed spasmtrap from package
		Added Spamtrap and Envelope Sender menus
		  to spasm(1)
		Finished(?) database-independent functions
		Added MySQL support
		Added LDAP support
		Redesigned spamtrap and envelope sender
		  regex support
		Renamed syslog ident from "spasm" to "spasmd"

v0.26
		Added call to lowercase() in mlfi_envrcpt()
		Add DEFAULT_DOMAIN if envrcpt lacks domain
		Modify filter_HELO to use SLDs
		Add else{} to failed re_sld regexes
		Replaced spasmbl and spasmwl with single
		  ncurses application (spasm)
		Added manpage for spasmd
		Added contrib directory with a skeletal CGI framework
		  to demonstrate a web interface for spasm

v0.25
		Added search_regex_spamtrap() for RE spamtraps
		Fixed rejection of valid virtual domain rcpts
		Changed SMFIS_ACCEPT to SMFIS_CONTINUE if whitelisted
		Added extra checks: filter_MAIL_HOST,filter_local,
		  search_regex_bl, search_regex

v0.24
		Fixed SIGSEGV when receiving mail from <>

v0.23
		Renamed README to INSTALL to make things copacetic
		Created a new README
		Added search_regex function
		Added search_regex_bl function (for SF_LOCALFILTER)
		Added aliases lookup in user_lookup()
		Added user_lookup() call to mlfi_envrcpt()
		No longer rejecting on initial MAX_UNKNOWN_USERS threshold;
		  IP only added upon hitting threshold, and will be rejected
		  during SF_MAX_UNKNOWN_USERS call on per-filter basis
		Fixed problem exiting spasmbl

v0.22
		Fixed SIGSEGV when calling regexec from mlfi_envfrom
		  and mlfi_envrcpt

v0.21
		Modified spasm.init
		Log dbfile in hash_lookup
		#include <netinet/in.h> in spasmd.c
		Made global variables static
		Remove invariant strlen() from for(;;) loop
		Defined variables as size_t instead of int where necessary
		Added die() and usage() for errors in main()
		Check return code of smfi_setconn()
		Added fork() loop
		Log entry in SIGCHLD handler
		Various stylistic changes

v0.20
		Fixed typo allocating domaindbfile
		Removed suid bit from spasmd, setuid() to drop privs
		Added signal handlers for SIGCHLD, SIGINT, SIGTERM, SIGSEGV

v0.19
		Fixed malloc typo in hash_lookup
		Replaced most malloc()'s with calloc()
		Fixed memory leak in SPAMTRAP_DB block
		Various stylistic changes

v0.18
		Replaced sprintf() with strncpy() in hash_lookup
		Replaced fgets() with scanf() in user apps (temporary)
		Added -l to spasmwl
		Added -l to spasmtrap
		Strip \n from ctime()
		Optimised filter_local() to stop testing when found
