1.0.0	2005-11-30

	2005-11-28

	* Minor FAQ updates and corrections.
	* Abort if ar(1) is not available during build.

	2005-11-19

	* bogofilter supports BerkeleyDB 4.4.16. doc/README.db and INSTALL have
	  been updated accordingly.

0.96.6	2005-11-19 - Promoted to Stable Release
	2005-11-11 (a.k.a. 1.0.0-rc6)

	* Fix parsing error after binary attachment.

	2005-11-10

	* Correct charset_default value in bogofilter.cf.example

0.96.5	2005-11-07

	2005-11-04

	* Fix parsing of config file string options.

	* Fix handling of unknown charset name.

0.96.4	2005-10-31

	2005-10-29

	* Removed the BUGS section from the bogofilter man page as
          it's now obsolete.

	2005-10-26

	* The bash-dependent contrib/* scripts were changed so they may now
	  work on regular POSIX compliant sh (NOTE: Solaris has a POSIX sh in
	  /usr/xpg4/bin/sh, Solaris's /bin/sh is unsuitable for bogofilter!)

	* The contrib/ directory is now managed by the top-level Makefile.am,
	  which removes one "make" recursion. This implies that "bogogrep" is
	  now built on the top level rather than in contrib/.

	* Renamed all contrib/ scripts to that their suffix gives a hint what
	  kind of script it is (.pl, .sh).

	* Recognize all image/ types as opaque data that we do not parse,
	  rather than just image/bmp.

0.96.3	2005-10-25 (a.k.a. 1.0.0-rc3)

	* Don't decode mime-audio and mime-video attachments.
	* Remove unused CP866 code.

	2005-10-23

	* Fix possible SIGSEGV with long html comments.
 
	2005-10-22

	* Don't decode mime-image and mime-application attachments.
 
	2005-10-21

	* Avoid pointer use after freeing its memory.
	* Avoid buffer overflow during conversion to unicode.

	2005-10-15

	* Fix program abort when bad options are used.
	* Remove unused Berkeley DB locking options.

	2005-10-12

	* Fixed sqlite build option in bogofilter.spec.in 
	  (contributed by Tobias Roppelt)

	2005-10-07

	* Added contrib scripts bfproxy, spamitarium, and stripsearch
	  (contributed by Tom Anderson)

0.96.2	2005-10-06 - Promoted to Stable Release
        2005-09-25 (a.k.a. 1.0.0-rc2)

	2005-09-25

	* SQLite3 - no longer using EXCLUSIVE in BEGIN TRANSACTION as
	  it seems unnecessary and it causes trouble on MAC OSX

	2005-09-19

	* Require sqlite 3.2.6 and print warning if older version installed, to
	  avoid people running into critical bugs in older sqlite3 versions.
	  The test can be defeated by setting the environment variable
	  BF_USE_OLD_SQLITE to any value.  Also warn on 32-bit machines.

	2005-09-16

	* Fix bogus t.maint failures on some systems that don't use bash for
	  /bin/sh (for instance, FreeBSD).

	2005-09-11

	* Resurrected atexit() code to ensure databases have been
          closed (needed for rare cases on RISC OS).

	2005-09-07

	* Perform unicode conversion after base64 and quoted-printable
	  decoding.  (Thanks to Mikhael Zabaluev for the patch)

	2005-09-06

	* (sqlite3 based builds only) Print reminder to register tokens before
	  scoring if preparing the SELECT statement fails.

	* Avoid "obsolete option -I- used, please use -iquote instead" nagging
	  from GCC version 4. (Heck, autoconf has even reached include lines
	  that worked for ages.)

	2005-09-05

	* Replace mime stack by linked list (to correct gentoo bug #69893).
	* Fix configure's --with-included-gsl option.  (Thanks to
          Torsten Veller for the patch)

0.96.1	2005-09-05 (a.k.a. 1.0.0-rc1)

	2005-08-24

	* Fix incompatibility with SunOS make(1S), adding a missing trailing
	  backslash character to src/Makefile.am.

	2005-08-17

	* Update RISC OS versions of Makefile and config.h

0.96.0	2005-08-15

	2005-08-14

	* When directory name is argument for bogoutil's dump/load
	  option, use "wordlist.db" to avoid a sigsegv.

	* Remove support for TDB, the Trivial Database.

	2005-08-05

	* db_lock.c: rename "cell_t" to "bf_cell_t" to avoid clashing with
	  IRIX's cell_t. Reported by Daichi Kawahata.

	* configure.ac: MIPS doesn't have extended FP precisiopn. Patch by
	  Daichi Kawahata.

	2005-08-03

	* bogotune - Restored code for recommending db_cachesize value.

	2005-07-10

	* Bogofilter now complains if sqlite 3.2.1 or older is used on a
	  machine with a word width greater than 32 bits, but tries to proceed.
	  It may however crash with SIGBUS as sqlite 3.2.1 performs unaligned
	  64-bit accesses.  sqlite 3.2.2 or newer is strongly recommended.

	2005-07-04

	* Updated history of stable releases (file RELEASES).

	2005-07-03

	* Switched t.encoding test to use the POSIX utility cksum,
	  rather than OS-specific utilities such as md5sum or md5.

0.95.2	2005-07-08 - Promoted to Stable Release
	2005-06-30

	2005-06-29

	* Fix incorrect directory creation revealed by t.bogodir.
	* Use unicode & transaction enable/disable flags to limit
	  'make check' tests being run.

	2005-06-28

	* Fixed buffer allocation error causing problem processing
	  RFC2047 encoded words.
	* Fixed wordlist access problems causing bogotune to
	  incorrectly complain of mixed database encodings.

	2005-06-21

	* Bogofilter programs now use their own locking for transactional
	  databases, to evade the problems with overflowing lock tables,
	  resizing. The database is locked globally, which no longer allows
	  registrations to happen concurrently with read access.

	  The db-lk-max-locks and db-lk-max-objects options and the bf_resize
	  scripts and pages have been removed.

0.95.1	2005-06-26

	* Fixed some wordlist open conflicts in bogotune.
	* Document unicode requirements for 'make check'

	2005-06-25

	* Added unicode processing of encoded tokens.

	2005-06-24

	* Use iso-8859-1 for default charset, rather than us-ascii.

0.95.0	2005-06-20

	* Fix bf_resize bash-isms (let BLAH...) and use POSIX-sh arithmetic
	  expansion $((...)) instead, to fix bf_resize on FreeBSD.
	  Reported by Andrey Chernov.

	2005-06-19

	* New unicode capabilities!

	  - default configuration:
	    . bogofilter auto-detects whether database is using
	      unicode (utf-8) or not.
	    . bogofilter uses unicode when creating new databases.
	    . bogoutil preserves unicode/non-unicode stat during
	      dump/load.
	    . bogofilter, bogolexer, and bogoutil have "--unicode=yes/no"
	      options which permit user selectable modes for experimenting, 
	      testing, and wordlist conversion.

	  - configure with "--enable-unicode" or "--disable--unicode" 
	    builds bogofilter and bogolexer restricted to a single mode.

	  - bogoutil uses "--unicode=yes/no" when creating a new wordlists.
	  - bogoutil uses "--unicode=yes/no" in maintenance mode to
	    convert a wordlist to/from unicode.
	  - bogolexer uses "--unicode=yes/no" to control parsing

	2005-06-18

	* Added FAQ entry on using bogofilter with qmail.

	2005-06-11

	* Output --help messages to stdout (rather than stderr) so
	  more can be used for paging.

	2005-06-10

	* TDB driver now copies TDB returned data in the traversor to
	  align data at proper boundaries, to avoid SIGBUS on some
	  architectures and performance loss on others.

	2005-06-09

	* Close environment after probing if it has transactions, to
	  conform to Berkeley DB documentation and not leak a file
	  descriptor.

	2005-06-07

	* Additional unicode support:
	   Added global variable encoding { E_RAW, E_UNICODE }
	   Added --unicode=yes/no options for bogolexer and bogoutil.
	   Added meta-token .ENCODING { 1=raw, 2=unicode }

0.94.14	2005-06-18 - Promoted to Stable Release
	2005-06-08

	* Fix bug in transactional auto-detection that caused recovery
	  to fail if the environment was in PANIC state.  
	  (Reported by Andrey Chernov.)

	2005-06-06

	* Removed extra SunOS 4.1.x support code.

	2005-05-31

	* Support systems with GNU iconv or separate libiconv.

	* Split up acinclude.m4 into separate files under m4/.

	2005-05-29

	* Refactor charset and unicode functions into charset.[ch],
	  convert_charset.[ch], and conver_unicode.[ch]

	* Add configure and runtime options to select charset and/or
	  unicode character conversion:

	  ./configure                   - runtime selection
	  ./configure --enable-unicode  - unicode only
	  ./configure --disable-unicode - charset only

	  bogofilter --unicode=yes      - use unicode conversion
	  bogofilter --unicode=no       - use charset conversion

	2005-05-29

	* Consistency: Skip test if Berkeley DB supports shared environments
	  when ./configure --disable-transactions is run, as shared
	  environments are only needed for transactions.
	  (Fixes SunOS portability problem reported by Charles Hewson.)

0.94.13	2005-05-28

	* Minor cleanups to iconv code.

	2005-05-26

	* Fixed buffer sizing problem affecting unicode encoding of
	  long lines.

	* Added '-q' (quiet) option for bogofilter to suppress
	  printing of statistics.

	* Added return code to lookup function to support error
	  retries.

	2005-05-24

	* Fixed compilation problems with --enable-iconv and
	  --enable-russian.  Thanks to Lev Butyrev and Yar Tikhiy for
	  reporting them.

	* Modified configure.ac and added t.query.config.in so
	  t.query.con regression test works with --enable-iconv.

	2005-05-21

	* Efficiency: The SQLite adaptor now creates new databases with an
	  additional index, to reduce CPU time for lookups.
	  You can add the same index to existing databases by typing:

	  sqlite3 ~/.bogofilter/wordlist.db \
	    'CREATE INDEX bfidx ON bogofilter(key,value);'

	2005-05-19

	* Efficiency: The SQLite adaptor now precompiles the common SQL
	  statements with variables, which avoids the need to parse/compile
	  them for every single token we acces, and which avoids the need to
	  hex encode/decode tokens (suggested by D. Richard Hipp, SQLite
	  maintainer).

	* Efficiency: save one malloc() in db_get_dbvalue().

	* Cleanup: The SQLite adaptor now uses a single central busy handler,
	  which simplifies the code.

	* Bugfix: Fix abort/retry logic with transactional interfaces
	  (Berkeley DB and SQLite) so that retries actually work.

0.94.12	2005-05-15 - Stable Release

	* RELEASE notes now has a brief summary of the changes since
	  the last stable release (0.92.8) in October 2004.

	* Man pages added for the utility scripts bf_compact, bf_copy,
	  bf_resize, and bf_tar.

	* bf_tar now includes the DB_CONFIG file in the output if present.

	2005-05-13

	* French FAQ updated by Fabrice Prigent.

	2005-05-12

	* bogofilter-milter.pl update by Jonathan Kamens.  Use Spam/Ham 
	  rather than Yes/No, fixes to syslog calls, efficiency improvements.

0.94.11	2005-05-10

	* Correct variable name in bf_resize.

0.94.10	2005-05-08

	* Substitute path to the same awk program that configure found
	  into bf_compact so it works on systems that have only nawk or gawk
	  but not awk.

	* Substitute path to SUSv2 compliant shell in bf_* script "magic
	  shebang" lines, so they use /usr/xpg4/bin/sh on Solaris 7+
	  and don't fail any more.

	* Repaired t.abort and t.probe tests to work with ancient shells.

	2005-05-07

	* Fixed pathing problem in bogoutil.  Default directory should be "."

	* Revised utility scripts (bf_copy, bf_compact, bf_tar,
	  bf_resize) for consistency and Solaris 9 compatibility.

0.94.9	2005-05-06

	* Fixed pathing regression which caused 'bogofilter_dir=dir' option
	  to supercede '-d dir' option.

0.94.8	2005-05-03

	* Revised manpage's description of -p (passthrough) option.

	* When configured with --enable-transactions or --disable-transactions
	  - Fixed compilation problem
	  - Fixed bogofilter -Q reporting
	  - Skip t.probe during "make check"

0.94.7	2005-04-30

	* Fix transaction enabling/disabling so that command line
	  options, i.e. --db-transactions=yes/no, are primary and
	  probing is secondary.

0.94.6	2005-04-26

	* Fixed bogoutil help and documentation to show that -d, -l,
	  -w, -p, and -H options expect a filename, not a directory.
	* Refactored bfpath creation to clean up open modes and lessen
	  number of external calls into paths.c
	* Added db-3.2.9 compatibility macro for db->stat().
	* Updated bogominitrain.pl to v1.6

0.94.5	2005-04-23

	* Fixed database open bug in bogoutil.

	2005-04-20

	* bf_compact now removes the $BOGOHOME.old directory before renaming
	  the backup to this name, to avoid nested backup directories.

	* Let bf_compact maintain current state of transactions vs.
	  non-transactions. (Bug report: Bill McClain)

	2005-04-10

	* Use bogoutil --db-print-leafpage-count in bf_resize.

	* Add --db-print-leafpage-count mode to bogoutil.

	* Use bogofilter -QQ in bf_resize and bf_tar.

	* Use bogoutil --db-list-logfiles in bf_copy and bf_tar.

	* Add --db-list-logfiles mode to bogoutil. Can list inactive or all
	  logfiles in relative or absolute paths.

	* Repair bf_copy script that lost log.* files, possibly corrupting
	  database if they had been transactional.  The defect was introduced
	  into bogofilter 0.94.2.

	2005-04-09

	* Suppress valgrind reports of errors in glibc::strchr.

0.94.4	2005-04-07

	* The RELEASE.NOTES file has been reformatted for readability.

	* When using transactions, the db_log_autoremove option is now
	  enabled by default (to match the documentation).

	* Option db_log_autoremove has been added to bogofilter.cf.example

	2005-04-05

	* Fix segfault in VERP processing.

	2005-04-04

	* The code for handling file and directory names has been
	  rewritten for clarity and maintainability.  Some options for
	  bogoutil which used to take a directory argument now take a filename,
	  for example -H, -r, and -R which all operate on a database,
	  not on a database environment.

	2005-04-03

	* File handling code rewritten to use bfpath structure for
	  holding all info and with a 3 step use of the info.  1 -
	  create bfpaths during command line and config file
	  processing; 2 - validate directories and file names; and 3 -
	  use files for processing.

0.94.3	2005-03-29

	2005-03-27

	* Added FAQ info on using bogofilter with mutt and sylpheed claws.

	* Fixed --db-print-pagesize so that the proper directory is
	  used for database environment.

	2005-03-25

	* Add error checking to bogoutil's ROBX calculation.

	* Allow --db-verify to work for non-transactional databases.

	* Repair several minor defects around --db-print-pagesize.  Support
	  page size detection with Berkeley DB 3.1 and 3.2 (it was already
	  supported for 3.3 - 4.3). Offer --db-print-pagesize function in
	  bogoutil --help when compiled against SQLite3.

	* Add more intensive bogoutil inspection to the test suite.

	* Fix incomplete cleanups that broke several bogoutil functions again,
	  among them --db-recover[-harder], --db-remove-environment,
	  --db-verify and --db-print-pagesize.

	* Let SQLite3 retry when the database is busy (rather than locked).

0.94.2	2005-03-24

	* Fix SQLite3 open problem, trying again when the table it is
	  locked.

	2005-03-23

	* Fix --enable-iconv breaking with non-ASCII default charset.

	* bogolexer now understands the --charset-default options.

	2005-03-22

	* Fix SQLite3 regression in 0.94.0 that broke consistency guarantees
	  and caused a _massive_ slowdown.

	* Add 'bogoutil --db-print-pagesize', to query the database size,
	  useful to replace running awk on 'db_stat -d database.db' output.

	2005-03-20

	* Fixed dirname/filename problem in bogotune.

0.94.1	2005-03-16

	* Long options cleanup: options that have no meaning for a particular
	  program are now rejected, to meet common expectations. The option
	  parsing code was cleaned up and is easier to maintain now.

	2005-03-14

	* Add 'bogoutil --db-checkpoint', to replace db_checkpoint -1h.

	2005-03-13

	* Modified get_token() to use static storage in order to
	  lessen malloc/free overhead.

	2005-03-09

	* Fix segfault in 'bogoutil --db-verify'.

	2005-03-08

	* Support for Berkeley DB 3.1 is back.
	* Terminate 'bogoutil -d' when SIGINT or SIGTERM is received.

	2005-03-07

	* Fixed query_config ('-Q') option.

0.94.0	2005-03-05

	Default mode is transactions disabled for Berkeley DB.

	2005-02-26

	* Remove bogus signal handler, remove SIGKILL handling; ignore SIGINT,
	  SIGTERM and SIGPIPE.

	* Fix non-transactional mode for Berkeley DB 4.0 and older.

	2005-02-25

	* Implement --db-log-autoremove=BOOL option, defaults to on.
	  This option removes outdated log files automatically before closing
	  the environment, to conserve disk space.

	* Added signal handler to catch SIGINT, SIGKILL, and SIGTERM
	  and exit cleanly.

	* Support for Berkeley DB 3.1 has been removed as a side
	  effect of automatically detecting transactional mode at
	  run-time, since 3.1 lacks DB_JOINENV.

	2005-02-24

	* Transactional datastore autoprobing was completed, it assumes
	  transactional mode if log.NNNNNNNNNN files (where N in {0, 1, ... 9})
	  are found.

	* Add swapped endian support for SQlite3 database, to support reading
	  big endian (SPARC) generated databases on little endian machines
	  (x86) and vice versa. To enable reading databases on machines with
	  differing endian, dump and re-load the databases on a machine with
	  same endian as the machine that created them.

	2005-02-18

	* Added code to auto-detect when a transaction environment
	  exists and act accordingly (if none of the enable/disable
	  options are specified in the config file or on the command
	  line).

	2005-02-10

	* Fixed problem causing SIGSEGV when using options "-p" and
	  "-s" with multiple wordlists.

	2005-02-06

	* Code to enable/disable Berkeley DB transactions now uses an
	  OO paradigm (implemented via struct of method addresses).
	* Enabling/disabling transactions is now run-time selectable
	  using "--enable-transactions=yes/no" on the command line and
	  "enable_transactions=yes/no" in the config file.
	* Use "./configure --enable/disable-transactions" for build
	  time specification.

	2005-01-28

	* Add option "--db-transaction=yes/no" for run-time
	  enabling/disabling of transactions.

	2005-01-25

	* Removed unused program bogowordfreq.

	2005-01-23

	* Included charset_iconv.c in the build.

0.93.5	2005-01-22

	2005-01-21

	* Revised t.systest to remove vestiges of different scoring
	  algorithms. 

	2005-01-17

	* bogotune's '-M' option for converting a message to msg-count
	  format now requires a filename option.

	2005-01-15

	* Fixed segfault caused by using non-existant option 'F'
	* Fixed size/count errors in wordhash code used by bogotune.

	2005-01-12
	
	* Fixed an array overrun in bogotune that caused problems when
	  using msg-count files.

	* Include saving of Unsures in procmail example in man page.

	* Change Yes/No/Unsure to Spam/Ham/Unsure in FAQ.

	2005-01-09
	
	* bf_util scripts now use name 'BOGOHOME' for their directory
	  parameter and check that it really is a directory.

0.93.4	2005-01-09

	2005-01-08

	* Misc fixing of compiler warning messages.
	* Minor refactoring of charset code.

	2005-01-05

	* Fix --enable-transactions logic, was inverted since 2004-12-26
	  (affected release: 0.93.3.1 only, 0.93.3 was fine). Note that
	  giving neither --enable-transactions nor --disable-transactions would
	  still enable transactions.

	2005-01-04

	* bogoutil now reads the configuration files to know the user's
	  db_lk_max_* values.  Reported by Karl O. Pinc.

	* Added '--config-file=name' to bogoutil to name a config file and
	  '-C' option to suppress reading a config file.

	* Berkeley DB Transactional recovery now uses the actual db_lk_max_*
	  values rather than hardcoded 1024.  Reported by Karl O. Pinc.

	2005-01-03

	* Added '--default-charset=name' option to configure script.

	2005-01-02

	* Initial support for Russian character sets.  (Thanks to Evgeny
	  Kotsuba)

	2004-12-30

	* Bogolexer man page:  replaced incorrect references to
	  'bogofilter' with 'bogolexer'.

	* Added '-O file' to specify bogolexer output file.

	2004-12-28

	* Fixed bogoutil --db-remove-environment DIR, which would just abort.

	* Fixed several memory leaks.

	* Refactored long option code.	All definitions are now in one
	  file (longoptions.c).	 Programs bogolexer and bogoutil
	  ignore options that don't apply to them, rather than abort.

	* Long options used in the config file use underscores in
	  their names.	Used on the command line, they have hyphens.
	  This fixes a problem where some options had hyphens and some
	  had underscores.

0.93.3.1 2004-12-26

	* Fixed errors in bogoutil's usage and help messages.

0.93.3	2004-12-24

	* Bogoutil's options for maintaining the database environment
	  are all long options with a "db-" prefix.
	* Bogoutil's help message and man page include the new long
	  options.

	2004-12-21

	* Early Christmas Gift: Bogofilter now supports SQLite v3.
	  Requires SQLite v3.0.8. See the RELEASE.NOTES.

	2004-12-20

	* Internal cleanup: Move transaction handling back into database space,
	  and let the database backend driver map this into the environment if
	  necessary.

	* Portability fix for BerkeleyDB versions 3.1 and 3.2:
	  log_archive expects a fourth argument.

	2004-12-17

	* lexer_v3 HTML parser fix for urlencoded characters, by Krzysztof
	  Foltman. Speeds up a particular case of malformatted mail.

	2004-12-14

	* bogoutil -C file  now checks if the database file file is intact.
	  (Only implemented for Berkeley DB stores with and without
	  transactions.)

	2004-12-13

	* bf_compact now uses db_archive without -d option and loops on the
	  results instead, calling rm in turn for each file. -d is not
	  supported by older Berkeley DB versions such as 4.0.

	* bogoutil -P directory	 now checkpoints the database and removes
	  inactive log files. Note you must save the database and remaining log
	  files, in that order, if you want to be able to recover from
	  corrupted files.

	2004-12-10

	* Limit mime overflow error messages to 1 per email.

	2004-12-09

	* configure now checks if Berkeley DB supports shared environments and
	  suggests workarounds if it doesn't, to aid Fedora Core users.

	2004-12-05

	* New directory doc/programmer/OS2 contains configure.os2
	  script contributed by Yuri Dario

0.93.2	2004-12-03

	* New script bf_resize DIR that checks the sizes of all databases in an
	  environment and writes a lock size to DB_CONFIG.

	2004-12-02

	* Accuracy fix: message counts of ignore lists (that can be present)
	  will be ignored and no longer skew the spamicity.

	2004-12-01

	* Allow environment to be group writable, reported by Fletcher Mattox.

	* Accuracy fix: no longer pretend that we had seen an empty message
	  registered when there was no registration. Use ROBX for spamicity.
	  This changes the output format of bogofilter -vvv mode when no spam
	  or no ham messages have been registered previously.

	2004-11-29

	* Support for Berkeley DB 3.0 was explicitly removed again, so that no
	  stable bogofilter version since 0.17.5 will have had support for this
	  version. This eliminates the need for on-disk database format
	  upgrades and keeps things simple.
	  As the unadvertised breaking of BDB 3.0 didn't raise a single
	  complaint and 3.1 has been around since July 2000, this should be
	  safe.

	* Support long options in bogoutil.

	* Add --remove-environment DIR long option to bogoutil, to remove the
	  environment. Only one such option can be used and there is no
	  corresponding short option.

	* Remove useless numeric Berkeley DB error codes from error messages.

	2004-11-26

	* bogofilter processes will refuse to open multiple wordlists in
	  different database environments (directories) when the transactional
	  Berkeley DB datastore is compiled (default). The non-transactional
	  (--disable-transactions), QDBM and TDB datastores are unaffected.

	2004-11-21

	* bogotune now uses getopt() to process the argument list,
	  hence requires a '-n' flag before each non-spam file and a
	  '-s' flag before each spam file.
	* bogotune now accepts '-x flags' to set debug flags.

	2004-11-20

	* Make scoring one huge transaction, rather than one individual
	  transaction per token. This fixes consistency and should improve
	  score speed.

	  WARNING: this seems to have broken bogotune, which, BTW, doesn't
	  return errors to the test suite (t.bulkmode, with message-count
	  files), it reports a bogus "PASS" in spite of database PANICs.

	2004-11-19

	* Restored the old traditional Berkeley DB datastore that cannot be
	  recovered. Its use is discouraged, to use this, type
	  ./configure --disable-transactions

	* Restored the error message when recovery is attempted on QDBM
	  databases, was lost in the DEPOT (hash) ->VILLA (B+tree) switch.

	2004-11-15

	* Added utility script bf_tar.

	2004-11-14

	* Added utility scripts bf_copy and bf_compact.
	* Added BerkeleyDB warning for binary rpm users.

	2004-11-12

	* New entries in bogofilter-faq.html on error messages
	      "Lock table is out of available locks" and
	      "Lock table is out of available object entries"

	* Add %u formatting option to print login or user ID information,
	  SourceForge Feature Request #1056729.

0.93.1	2004-11-11

	* The README.db file now has information on the DB_CONFIG file that
	  can be created and used to configure the Berkeley DB module.

	* Bogofilter's config file now supports setting max lock and
	  object counts for Berkeley DB using options
	      db_lk_max_locks=N
	      db_lk_max_objects=N

	* Bogofilter and bogoutil now allow these options on the
	  command line, as:
	      --db_lk_max_locks=N
	      --db_lk_max_objects=N

	* When running database recovery automatically, don't let go of the
	  lockfile, so we can do our actual work subsequently.

	2004-11-10

	* Support for BerkeleyDB 4.3 was added. We'll avoid DB_NOSYNC on
	  DB->close() when DB_LOG_INMEMORY is configured for now.

	* Update manual pages/example outputs and filter recipe examples from
	  "X-Bogosity: yes" to "X-Bogosity: Spam". Fixes Debian bug #280557.
	
	* Bugfix for BerkeleyDB 4.2 support: check the data base flags, not the
	  environment flags, for DB_TXN_NOT_DURABLE, when determining whether
	  DB_NOSYNC is safe on DB->close(). May fix some kinds of database
	  corruption encountered with DB_TXN_NOT_DURABLE.

	* Return DB_VERSION_STRING contents in -V (version) output when
	  compiled against Berkeley DB. Minor change to the output format.

	2004-11-09

	* Unify and clean up the horrible RELEASE.NOTES-*, CHANGES* and NEWS-*
	  mess with lots of duplicated info.
	  There shall only be one RELEASE.NOTES file and one NEWS file.
	  RELEASE.NOTES shall contain important information for updates.
	  NEWS shall contain noteworthy code changes in technical detail.

	  This also removes the confusion that RELEASE.NOTES didn't contain
	  information relevant for 0.93.X.

	2004-11-08

	* Berkeley DB mode: do not create data base in read mode (properly map
	  open_mode to DB_RDONLY flag, store open_mode).

	* Berkeley DB mode: exit with error code if lock file cannot be
	  created. Attempt recovery even if creation of lock file succeeded.

	2004-11-07

	* Fixed negative buffer index in mime.c

0.93.0	2004-11-06 "Broken compatibility" release

	* Fix bogotune's '-D' option.

	2004-11-02

	* Use only reentrant functions in the signal handler that runs
	  periodically to check for crashed processes.
	  Reported by Pavel Kankovsky.

	2004-11-01

	* Add a debugged and enhanced version of Stefan Bellon's QDBM
	  Hash->B+tree converter.

	* Broke QDBM compatibility with 2004-10-30 change, check unsigned
	  characters to match Berkeley DB behavior of bogoutil -d.

	2004-10-31

	* Rearranged flag setting for Berkeley DB data store, so as only to set
	  DB_CHKSUM[_SHA1] when creating the data base.
	  Fixes "checksum error: catastrophic recovery required" and
	  consequential "wordlist.db: page 1: reference count overflow" errors
	  Reported by Torsten Veller.

	* Revised RELEASE.NOTES-0.93 to move QDBM change into "Incompatible
	  Changes" section and to mention BerkeleyDB dump/load for 4.1 and 4.2
	  to add checksums.

	* Inserted new section 2.2 into doc/README.db to mention that it is
	  recommended to dump/load the data base when using BerkeleyDB 4.1 and
	  4.2.

	2004-10-30

	* Converted QDBM from hash files (DEPOT API) to B+ trees
	  (Villa API) for better speed (Stefan Bellon).

	2004-10-29

	* Attempting recovery with TDB or QDBM data bases results in an error,
	  so the user does not think it succeeded.

	* Document that recovery only works for Berkeley DB, but not TDB or
	  QDBM.

	2004-10-28

	* Merged Transactional branch (for BerkeleyDB) back into the trunk.
	  Further changes below.

	2004-10-25

	* Added GETTING.STARTED document.

	* Changed default mode from two-state to three-state
	  - with ham_cutoff=0.45 and spam_cutoff=0.99
	    The ham_cutoff value is new and spam_cutoff is unchanged.
	  - changed the "Yes/No" tags used in the "X-Bogosity:" line
	    to "Spam/Ham/Unsure"

	NOTE: the next entries appear to be out of order, the pertinent changes
	have been developed on a side branch of bogofilter and have been merged
	for bogofilter 0.93.0.

	2004-09-21

	* bogofilter can now be used with Berkeley DB 3.0 or 3.1 although this
	  is not recommended. You should prefer 4.2 or 4.1 instead.
	  UPDATE: support for 3.0 was later removed on 2004-11-29

	* Documentation on the write cache issue (recoverability of data bases)
	  has been revised.

	2004-09-13

	* Updates doc/README.db with a section on the log file size and
	  pointers to db_checkpoint and db_archive.

	2004-09-03 (txn 2.1)

	* The on-line crash detector would consider its own process a zombie,
	  so all processes that lasted 30 s or longer would abort themselves
	  after that period.

	  This was particularly prominent with BerkeleyDB 4.1 with
	  x86/gcc-assembly mutexes as this combination appears rather slow when
	  facing lock contention, causing t.lock3 failure. BDB 4.1 compiled to
	  use POSIX mutexes (where working) appears to be a lot faster in this
	  situation.

	2004-09-01 (txn 2.0)

	* Hook up crash detection code. Bogofilter is now able to detect
	  when recovery is necessary and should detect stalled data bases
	  within 30 seconds.
	  NOTE: this means if one process crashes all other processes
	  accessing the same data base will abort with an error code.

	  Stalled data bases happen when one process or the system crashes and
	  doesn't have a chance to clear its locks.

	  This code uses ideas from Matthias Andree and Pavel Kankovsky.

	2004-08-23 (txn 1.1)

	* Add -f and -F options to bogoutil (mnemonic: fix) to run data base
	  recovery.

	* Reimplement our own locking so that recovery and data base access
	  don't collide and no two processes try running recovery at the same
	  time.

0.92.8	2004-10-25 - Promoted to Stable Release
	2004-10-19

	* Bogotune now warns when using '-E' to suppress ESF checking
	  and non 1.0 esf values are read from the config file.

	* bogofilter will now properly exit with code 3 when encountering write
	  errors in pass-through mode. It would use the wrong code, 2, since
	  the introduction of the "unsure" exit code.

	* Properly flush existing data before changing I/O buffer size. Fixes
	  t.bogodir failure seen, for instance, on Solaris, particularly with
	  -D and redirected output.

	2004-10-15

	* Limit bogotune's scanning to rx values between 0.4 and 0.6.

	2004-10-13

	* Ignore 'X-Bogosity' lines in mime attachments.

	2004-10-12

	* Revise lexer variables for flex-2.5.31 compatibility.

	2004-10-10

	* OS/2 compatibility fixes for configure, bogofilter, and
	  bogoutil.  (Thanks to Yuri Dario)

	2004-10-09

	* Fix a potential crash on malformatted input (writing a NUL byte to
	  the wrong place) in the RFC-2047 decoder. Reported by Clint Adams.
	  This fixes CVE id: CVE-2004-1007

0.92.7	2004-10-02

	* '-M' allows processing 1 msg-count file with multiple
	  messages.  Otherwise allow multiple msg-count files with 1
	  message in each.

	2004-09-30

	* Allow only one of '-d' and '-D' options for bogotune.

	2004-09-28

	* Remove check for bogohome since it breaks "bogotune -D".

	2004-09-25

	* Fixed minor formatting defects in bogotune.
	* Fixed bogotune man page error for "-d" option.
	* Additional portability fix for SunOS 4.1.X

	2004-09-23

	* Fixed help messages for bogofilter's "-m" and "-o" options.

	2004-09-10

	* bogofilter-tuning.HOWTO revised and converted to html.

	2004-09-05

	* Ensure that robx computation uses a regular wordlist (rather
	  than an ignore list) to avoid a seg fault in bogotune.

	2004-08-30

	* Remove bogus 'P' in bogolexer's allowed option list.

0.92.6	2004-08-22

	* Revise "-QQ" output so it can be used (unchanged) in a
	  config file.
	* Remove obsolete "--with-db" option from configure.ac

0.92.5	2004-08-20

	2004-08-17

	* Expanded discussion of long options in bogofilter's man page.
	* Merged files RELEASE.NOTES-0.1? into cumulative
	  RELEASE.NOTES file.
	* Removed files CHANGES-0.1? as they duplicate info in NEWS.

	2004-08-16

	* Added "-QQ" option to bogofilter to display extended
	  parameter list.

	2004-08-15

	* Documentation update.	 Sample configure commands now use
	  option --with-libdb-prefix rather than obsolete --with-db.
	* Added "--wordlist" to bogofilter's help output.
	* Minor clean-ups for bogofilter's help output.

	2004-08-10

	* Improve documentation of '-B' and '-y' options.
	* Validate dates used with '-y'.
	* Diagnose missing wordlist specification.

	2004-08-07

	* Cross reference man pages to one another.
	* OS/2 compatibility changes (contributed by Yuri Dario).
	* Removed obsolete test output files - degen.out,
	  combined.out, and separate.out

0.92.4	2004-07-29 - Stable Release

	* Warn on invalid options, rather than exit.

0.92.3	2004-07-27

	2004-07-19

	* Revise enums and regression tests for new format characters
	  %A, %I, %Q.

	* Strip bogogrep_static executable to reduce binary rpm size.

	2004-07-18

	* Remove initialize() function in bogoconfig.c and use
	  lexer_init() in lexer.c, which provides same functionality.

0.92.2	2004-07-11

	* Bugfix:  '%I' is now really the Message-ID,
	* Feature: '%Q' is now the queue ID

	2004-07-10

	* Use an explicit inputs/outputs directory list to avoid shipping test
	  files in those directories.

	2004-07-08

	* Miscellaneous cleanups, removed 'degen' code remainders.

	2004-07-07

	* Formatting character changes:
	  '%A' is now the message's IP address.
	  '%I' is now the message's ID.

	* bogofilter-faq.html - corrected editting error that deleted
	  "asian spam" question and added answer to "multi-user"
	  question.

	* Fix self-test suite ("make check") when bogofilter is compiled
	  with QDBM or TDB as the data base engine.

	2004-07-02

	* The self-test suite now properly detects valgrind when
	  make check VERBOSE=-x is used.

	2004-07-01

	* Convert a C99/C++ //-style comment to a /* C-style comment */

	* Fix valgrind self test that still had an obsolete '-f' option.

0.92.1	2004-07-01

	* Remove 'g', 'r', and 'f' from bogofilter's OPTIONS list as
	  there's only one scoring algorithm.

	* Removed obsolete occurrences of '-g' and '-f' from
	  regression tests.

	2004-06-30

	* Revised README file.

	2004-06-29

	* French version of FAQ updated.
	* Rewrote code for identifying message's originating IP address.
	* Changed name of variable 'ipaddr' to 'msgaddr'.
	* Added t.msgaddr to regression test.

	2004-06-27

	* Fixed db_init/db_cleanup problems encountered with multiple
	wordlists and concurrent data stores.

0.92.0	2004-06-26 - Stable Release

	* Added ESF options to bogofilter's man page.
	* Revised man pages' description of multi-parameter options.

	2004-06-25

	* Fixed problem recognizing empty line ending of header in
	  files with CRLFs and X-Bogosity line as last header line.

	2004-06-24

	* Added ESF options to bogofilter's help message.

	2004-06-22

	* t.lock3 regression modified for solaris shell compatibility.

0.91.4	2004-06-20

	2004-06-19

	* Fix abort during db_open (ds_open wasn't first calling
	  ds_init).
	* Added regression test t.lock3 for this fix.
	* Revise datastore and database levels so that each level
	  calls its own init() and cleanup() routines.

0.91.3	2004-06-15

	2004-06-14

	* Added format specification '%I' to allow logging of the IP
	  address from which an email was received.

	2004-06-13

	* Avoid "Invalid buffer size, exiting." problems by discarding
	  text from an excessively long html tag.

0.91.2	2004-06-11

	* Bogofilter's creation of new wordlists now includes
	  .WORDLIST_VERSION token.
	* Fix erroneous double opening of wordlists specified on
	  command line.
	* Corrected tests so that "make check" passes with qdbm and
	  tdb.

	2004-06-10

	* Fix included GSL compile for compilers that do not support
	  "extern inline", such as Compaq C V6.3.
	* FAQ updated with info on multiple wordlists and ignore
	  lists.
	* FAQ updated with info on building as non-root user.

0.91.1	2004-06-04

	2004-06-04

	* Fix problem with not expanding tildes.
	* Add DS_LOAD flag to distinguish between database creation by
	  bogofilter and bogoutil so .WORDLIST_VERSION is only added
	  by bogofilter.
	* Modify regression tests to use bogoutil to create empty
	  wordlists (as needed).

	2004-05-30

	* Fixed registration.  When multiple wordlists are specified,
	  registration is to first regular wordlist.
	* Added regresstion test for multiple wordlists.

	2004-05-29

	* Distinguish open modes of READ, WRITE, and CREATE so
	* bogofilter will include .WORDLIST_VERSION in new database.

	2004-05-28

	* Modify contrib scripts so they're sh compatible.
	* Fix problem with not expanding tildes.

	2004-05-23

	* Use named constants for wordlist 'type' attribute.

	2004-05-22

	* Fix problem when bogofilter's home is a symlink.

0.91.0	2004-05-22

	* Miscellaneous cleanups for multiple wordlist code.
	* Cleanup variable names in database open() code.
	* Increase width of 'count' column for -vvv output.

	2004-05-17

	* Add ignore list capability.
	* Revive and revise multiple wordlist code.

0.90.0	2004-05-09

	* Revised bogotune's parameter ranges for coarse scan.

	2004-05-08

	* Changed list address in FAQ to bogofilter.org

	2004-05-05

	* Added code for Robinson's Effective Size Factor (ESF)
	  to score.c, bogotune.c, bogofilter.cf.example, etc.
	* Added '-E' options to bogotune to suppress ESF scan.

	2004-05-02

	* Remove unreferenced enum wl_e.
	* Add .WORDLIST_VERSION meta symbol.
	* Change subnet prefix from url: to ip:
	* Add -u switch to bogoutil to do wordlist upgrade.
	* Add regression test t.upgrade.subnet.prefix

	2004-04-22

	* Fixed configure's --enable-memdebug option.

	2004-04-12

	* Updated TODO list and procmailrc.example

	2004-04-02

	* Lower output precision for regression tests, by using %f
	  rather than %e, to mask differences between GSL versions.

0.17.5	2004-04-08 - Promoted to Stable Release
	2004-04-01

	2004-03-31

	* Change default parameters to the results of Greg's 300k ham
	  and 300k spam bogotune run:

		     robs     robx    min_dev  spam_co
	      old  0.010000 0.415000 0.100000 0.950000
	      new  0.017800 0.520000 0.375000 0.990000

	2004-03-22

	* Fix check for PGP signatures.

0.17.4	2004-03-20

	* Ignore data portion of PGP signatures.
	* Use "mime:" (rather than "head:") to tag mime part headers.

	2004-03-19

	* Fix "Can't find '.MSG_COUNT'" problem in bogotune.
	* Fix defect that continues decoding base64/qp after invalid chars.

	2004-03-18

	* Fix message reporting lack of config file.

0.17.3	2004-03-17

	2004-03-15
	
	* Warn if user specified config file doesn't exist.

	2004-03-09

	* Fix tagging of IPAddrs in header lines.

	2004-03-04

	* Added code to use Berkeley DB Concurrent Data Store, which
	  uses a "DB_ENV" BerkeleyDB environment and the BerkeleyDB
	  Lock Manager.	 This is documented in file doc/README.db.

	2004-03-03

	* "bogofilter -Q" output now includes all config file options
	  and is formatted to be read in as a config file.

	2004-02-27

	* Removed t.lock2 from "make check".

	2004-02-26

	* Fixed minor bogotune problems related to building wordlists.

	2004-02-23

	* Exempt tokens .MSG_COUNT and .ROBX from maintenance operations.
	* Remove unused 'active' and 'weight' attributes of wordlists.
	* If message uses CRLF, put CRLF after added header lines.

	2004-02-22

	* Fixed code causing gcc 2.9x complaint.

0.17.2	2004-02-22

	* Algorithm code cleanup -- created file score.[ch] from
	  files method.[ch], robinson.[ch], and fisher.[ch]

	2004-02-21
	
	* Changed path in example config files to /var/spool/bogofilter.

	2004-02-20
	
	* Corrected typos in doc/bogofilter.xml (the man page)
	  and in contrib/mailfilter.example
	* Documented bogoutil's histogram ('-H') option.
	* Revised documentation of '-d', '-p', and '-w' options
	  for bogoutil.
	* Relax filename vs. path restrictions in bogoutil.

	2004-02-19
	
	* Added experimental code for BerkeleyDB environments code
	  for improved locking and caching.

0.17.1	2004-02-09

	* 2004-02-05

	* Additional portability fixes for SunOS 4.1.4

	* 2004-02-04

	* Fix '-d' and '--bogofilter_dir=directory' options.

0.17.0	2004-02-01

	* Documentation cleanups.

	2004-01-31

	* Fixed warnings from Intel C++ 8
	* Portability fixes for SunOS 4.1.4

	2004-01-30

	* Removed DEPRECATED CODE.
	* Bogoutil now 'and's the maintenance operations together.
	* Bogofilter and bogolexer now use standard long option
	  parsing.

	2004-01-25

	* Extracted basic typedefs from system.h into bftypes.h.

	2004-01-23

	* Correct processing order as '-V' doesn't need to read the
	  config file.
	* Correct SIGSEGV causes by missing environment variables.

0.16.4	2004-01-31 - Promoted to Stable Version
	2004-01-23 - Released

	2004-01-20

	* Config options 'thresh_stats' and 'thresh_rtable' have been
	  deprecated.

	2004-01-19

	* Fix bogus config file warnings from bogolexer.
	* Merge lexer rules to save a few bytes.
	* Additional portability fixes.

0.16.3	2004-01-17

	* Removed optional argument from "-u" flag.
	* Config file options can be put on the command line by using
	  "--key=value" syntax.

0.16.2	2004-01-16

	* Added '-c' (compact) option to bogominitrain.pl

	2004-01-14

	* Tag Cc: lines as To: lines.
	* Allow setting threshold for auto-updating, using the "-u
	  value" flag or the "thresh_update=value" option.
	* Minor FAQ updates.

	2004-01-12

	* Pass -mieee to GCC on machines that know this option (Alpha, SH).
	  Prevents SIGFPE and program termination with coredumps in some
	  conditions. Reported by Paul Ackersville, fix suggested by Clint
	  Adams.

	* Fix defined minimum autoconf/automake versions to match actual
	  requirements: autoconf 2.54, automake 1.7.

	* Change AS_HELP_STRING to AC_HELP_STRING for compatibility with older
	  autoconf than version 2.58.

	* Fix two compiler warnings in BerkeleyDB data store code. It is
	  unknown whether one has real-world impact when opening data bases,
	  fixing nonetheless. The other is cosmetic in any case.

	2004-01-09

	* '-H' now disables header tagging for bogofilter and bogolexer.

0.16.1	2004-01-08

	2004-01-07

	* Ignore X-Bogosity lines in message header.

	2004-01-04

	* Updated bogotune man page.
	* Fixed minor errors in bogotune.
	* Corrected memory leaks affecting bogotune.

	2004-01-03

	* Added additional ifdefs for deprecated code.
	* Added database histogram to bogoutil (using '-H' flag).

0.16.0	2004-01-01

	* Added "#ifdef ENABLE_DEPRECATED_CODE" statements as
	  appropriate.
	* Corrected configure.ac defect for "--enable-memdebug".
	* Corrected lexer defect that created unnecessary
	  "rcvd:Received" tokens.
	* Fixed header file problem that causes sigsegv with qdbm.
	* Expanded VERP pattern to reduce hapax count.

0.15.13	2003-12-31 - Stable Release

	If updating from a bogofilter version older than 0.15.4, it's
	a good idea to retrain or else use the '-H' (header tag
	degeneration) option.

0.15.13	2003-12-26

	* Fix problem with separate wordlists that causes
	  "db_get_dbvalue( '...' ), err: 12, out of memory".

	2003-12-25

	* Fixed memory leak affecting bogotune.
	* Added -V (version) option to bogotune.
	* RPM build fixed.  (with help from Charles A Edwards)
	* Compiler options changed to reduce warnings during gsl builds.

0.15.12	2003-12-24

	* Distinguish between pipe and stdin as input sources.
	  (contributed by Henning Makholm)

	2003-12-23

	* Minor fixes for parsing msg-count files.
	* Fix sigsegv in bogotune when '-D' option is used.
	* Clarify list of supported mail formats in FAQ.
	* Force line buffered output when not in passthrough mode.
	* Enhance memdebug capabilities.

	2003-12-21

	* Fix decoding of escaped urls.

	2003-12-18

	* Fix compilation problems with datastore_tdb.c and datastore_qdbm.c

0.15.11	2003-12-17

	* Additional portability fixes for DGUX in configure.ac and bogogrep.c

	2003-12-15

	* Bugfix for SIGFPE (division by zero) crash on start-up on systems
	  with BerkeleyDB 3.2 or older.
	* bogotune-faq.html - new file
	* bogofilter-faq.html - updated
	* bogoupgrade - revised help message and man page

	2003-12-14

	* bogotune now understands degeneration options and can use
	  them when creating message-count files.

	2003-12-12

	* Fixed CRLF problem in bogoreader.c

	2003-12-11

	* Updates to bogofilter man page and FAQ.
	* Updates to configure scripts and makefiles to support DGUX.
	* Improved configuration of BerkeleyDB and GSL.

	2003-12-10

	* Removed unused '-F' (force) option from bogofilter.
	* Exclude ~ (tilde) at the end of tokens.

	2003-12-09

	* Removed unused '-q' (quiet) option from bogofilter.

0.15.10	2003-12-08

	* Important string format fixes that address "prints garbage" and
	  "crashes" problems.
	* Formatting and portability fixes for DGUX.
	* The test suite ("make check") now works without formail for
	  t.bulkmode.
	* Added -M option to bogotune for creating message count
	  files.  msg-count.sh no longer needed.

	2003-12-07

	* Fixed "configure --enable-static" for building statically
	  linked executables.
	* "make check" now uses static executables when "configure
	  --enable-static" was used.
	* Revised msg-count.sh so that formail isn't needed.

	2003-12-03

	* Script msg-count.sh has been added to create message count
	  files from mailboxes and mail directories.

	2003-12-01

	* Fixed bug in header degeneration.
	* Added degeneration options to config file.
	* Added subject line tagging for Unsures.  (Contributed by
	  Burkhard Kaas).

	2003-11-30

	* Multiple fixes, revisions, and changes to bogotune.

	2003-11-27

	* Fix defect in robx calculation (for bogoutil and bogotune).

	2003-11-24

	* The test suite ("make check") now works without procmail for t.MH
	  and t.maildir.
	* Moved robx calculation code to new file for sharing by bogoutil
	  and bogotune.
	* Fix segfault when using '-H' (header_degen) option.

0.15.9	2003-11-23

	* Minor revisions to the FAQ.
	* Miscellaneous cleanups to bogotune.c
	* Cleanup bogoutil's help message.

	2003-11-20

	* Fixed a defect in lexer.c that was discarding X-Bogosity
	  lines in rfc822 attachments.	Thanks to Martin Gagern for
	  reporting the problem and supplying a patch.
	* Fixed a memory leak in bogoutil.  Thanks to Dan Deward for
	  reporting the problem.
	* Refactored passthrough.c.
	* Test suite bugfixes for TDB/QDBM.

	2003-11-19

	* TDB passes all checks again.
	* Fixed a defect in QDBM support that was breaking maintenance mode.

	2003-11-18

	* Revised wordhash code to minimize storage needed for bogotune.

	2003-11-17

	* Exclude apostrophes and backticks at the end of a token.
	* Updated bogominitrain.pl to v1.4.2
	* BerkeleyDB support warns if data base size approaches file size
	  resource limit, to avoid DB corruption when bogofilter is spawned
	  from Postfix-controlled systems (Postfix by default limits file
	  size to 51,200,000 bytes).

	2003-11-15

	* "<!DOCTYPE HTML PUBLIC...>" is now recognized as starting
	  html text.

	2003-11-14

	* Bogotune now checks for incorrectly classified messages in the test
	  data and exits if so.

	* Configure now finds a POSIX compliant shell for running version.sh

	2003-11-12

	* Several minor lexer bugs fixed.
	* Lexer changes reduce size of bogofilter executable by approx 90%.

	2003-11-07

	* Minor error message cleanups.
	* Minor documentation fixes.

	2003-11-05

	* Fixed timestamp config option.
	* Removed repetition counts in lexer for TOKEN and MIME_BOUNDARY
	  patterns to reduce executable size.

	2003-11-01

	* Remove --disable-* options for algorithms. Has never been supported
	  well and serves no useful purpose, the algorithm code is irrelevant
	  compared to lexer or other stuff.

0.15.8	2003-10-29

	* Print "X-Bogosity" line when "-t" is used alone.
	* Modified handling of mime attachments to decode rfc822 and
	  to ignore applications and images.

	2003-10-27

	* Change bogoupgrade back to using 2 arg open for perl-5.6
	  compatibility.

	2003-10-26

	* Added man page for bogotune.

	2003-10-23

	* Initial release of faster, C language version of bogotune.

	2003-10-21

	* Configure script modified to better detect BerkeleyDB libs.
	* Makefile modified to build bogolexer and bogoutil with fewer
	  shared libs.

	2003-10-19

	* Added decoding of percent escaped characters in URLs.

	2003-10-16

	* English and french versions of bogofilter-faq.html revised.
	* Tuning script doc/bogotune rewritten as C program.

	2003-10-15

	* Fix build problem in doc directory.
	* Refactored source code so bogolexer will build without
	  datastore code.

	2003-10-14

	* Fix initialization problem that prevents reading more than
	  one msg-count file.
	* Initialize wordhash storage.

0.15.7	2003-10-13

	* Include all tokens in bogoutil dump output (unless in
	  maintenance mode).

	2003-10-08

	* Disable header line tagging when processing msg-count files.

	2003-10-06

	* Added decoding of escaped characters in html.
	* Revised mailbox processing so type recognition is now
	  table driven.
	* Added support for ANT mailboxes.
	* Made portability changes for OS/2 and RISC-OS

0.15.6	2003-10-02

	* Fixed problem in bogoupgrade.
	* Revised configure.ac to remove GLIBC-2.3 dependency and
	  include info for DOS-ish file in config.h.

	2003-10-01

	* Bogofilter can now use GSL 1.0 to 1.3 as well as 1.4.
	  If your distribution splits GSL into a library and a developer
	  package (Mandrake and Debian Linux), remember to install both!
	* Rebuild i586.rpm with GSL dynamically linked; source rpms
	  and bogofilter-static rpm not affected.
	* Don't allow whitespace in SMTP and ESMTP tokens.
	* Revised reference ouputs for SMTP/ESMTP change.

0.15.5.2 2003-10-01

	 * Rebuild of i586.rpm with GSL-1.4 dynamically linked.
	   Source rpms and bogofilter-static rpm not affected.

0.15.5.1 2003-09-30

	 * Added GSL-1.4 as requirement for binary rpm.
	 * Fixed up t.separate reference test and cleaned up
	   t.degen, t.split, and t.regtest.
	 * Man page and French FAQ revised.

0.15.5	2003-09-29

	* Added '-H' (header-degen) option to aid transition to new
	  parsing.  See RELEASE.NOTES-0.15 for more info.

	2003-09-28

	* Minor revisions of OS/2 and RISC-OS compatibility code.

	2003-09-27

	* Transaction code added for wordlist maintenance.
	* Timestamp code refactored and moved from maint.c to datastore.c

	2003-09-26

	* VERPs (Variable Envelope Return Paths) now have their
	  sequence numbers replaced by a '#' for scoring.
	* Fixed problem that caused auto-update ("-u") to not update
	  separate wordlists.
	* End-of-header code revised to ensure that passthrough ("-p")
	  properly places the X-Bogosity line.

	2003-09-25

	* GNU GSL 1.4 has replaced DCDFLIB. If GSL 1.4 or newer is
	  installed in your system, bogofilter will use that (which will
	  usually be a shared library); if GSL is missing or a prior
	  version is present, bogofilter will statically link against GSL 1.4
	  excerpts from the gsl/ directory.

	  While we believe we have been allowed to include DCDFLIB with
	  bogofilter, some people had expressed concerns. GSL is subject
	  to the GNU General Public License v2, so we are DEFINITELY
	  allowed to include it.

	2003-09-22

	* Added support for OS/2's file system.

	2003-09-21

	* Fixed logging behavior when scoring mailboxes, maildirs, etc.
								
	2003-09-20

	* Fixed processing of rmail files.

0.15.4	2003-09-20

	* Additional header line tagging as suggested by Michael O'Reilly.
	* Minor revision of bogotune.

	2003-09-17

	* Report if database file permissions wrong.
	* No longer including pid in syslog error messages.

	2003-09-16

	* No longer ignoring message separators.

	2003-09-15

	* Added BOGOTEST environment variable to enable flex debugging.
	* Minor revision of bogominitrain.pl

	2003-09-13

	* Fixed bogoutil problem with '-w' and '-p'.

	2003-09-12

	* Revise parsing pattern for "encoded text" and regression
	  test for folded text.

	2003-09-11

	* Use GSL (the Gnu Scientific Library) when it's available.

0.15.3	2003-09-10

	2003-09-09

	* Fixed maintenance mode (broken during database API rewrite).
	* Added regression test for maintenance mode.
	* Re-organized test framework to put all scripts in src/tests,
	  all input files in src/tests/inputs, and reference outputs
	  in src/tests/outputs.

	2003-09-08

	* Revised parsing to ignore additional headers, i.e.
	  Resent-Message-ID, In-Reply-To, and References.

	2003-09-07
	
	* Fix auto-update ('-u') bug that double registers ham and spam.
	* Correct QDBM optimization problems arising from API change.

0.15.2	2003-09-07

	2003-09-06

	* Header line unfolding now handled by flex rules.
	  Special thanks to Michael O'Reilly for his help!
	* Initial release of RISC-OS support, including qdbm and tdb.
	* QDBM is now supported.
	* The data base configuration has changed. --with-tdb is gone,
	  use --with-database=db, --with-database=tdb or
	  --with-database=qdbm instead.

	2003-09-05

	* Update bogowordfreq to work with bogoreader.
	* Fatal flex errors are now caught and bogofilter exits
	  gracefully after closing its database(s).

0.15.1	2003-09-03

	* Limit size of unfolded header lines.

	2003-09-02

	* Check for xmlto during configuration.
	* Fix problem in empty line parsing rule.
	* Fix string termination problem for bulk mode paths.

	2003-09-01

	* Allow -I to be used with file or directory.
	* Revise flex rule for encoded text to reduce program size.

	2003-08-31

	* Revise flex grammar:
	  - to reduce size of generated rules
	  - to simplify handling of header tags and mime parts

	2003-08-30

	* Clean-up message header processing:
	  - Don't tokenize message separator lines.
	  - Merge whitespace separated encoded words.
	  - Unfold header lines.

0.15.0	2003-08-30

	* Fix defective printing in 'bogofilter -Q' output.

	2003-08-28

	* Revise mime processing to cure "fatal flex scanner internal
	  error--end of buffer missed".
	* Restore parsing rule for ending a "loose" html comment.

	2003-08-26

	* Change mime boundary line to operate on raw input,
	  i.e. before decoding it.
	* Add charset map for windows-1251 to KOI8-R (Cyrillic).

	2003-08-24

	* Fix some printf calls for 64-bit machines (%*s).
	* Fix compilation with TDB.
	* The -b and -B options now autodetect Maildir/s and iterate over each
	  mail in them. When the named input is a file, it is assumed to be a
	  single mail unless -s, -S, -n, -N or -M is given - in that case it's
	  an mbox.
	* Revised message reader implementation so the way of specifing the
	  input is independent from the input format (such as mbox vs.
	  Maildir).
	* Bugfixed Maildir implementation to read cur/ and new/.
	* Implement support for MH directory (such as used by Sylpheed).

	2003-08-23

	* Implemented new message reading protocol for processing
	  bulk mode, splitting mailboxes into messages, reading
	  messages in maildirs, etc.

0.14.5.4 2003-08-30

	* _Really_ fix defective printing in 'bogofilter -Q' output.

0.14.5.3 2003-08-29

	* Fix parser errors that can cause:
	  1. Incorrect processing of html comments.
	  2. "fatal flex scanner internal error--end of buffer missed",
	     which kills bogofilter.
	* Fix defective printing in 'bogofilter -Q' output.
	* Compiles with TDB again.

0.14.5.2 2003-08-20 - Stable Release

	* bogominitrain.pl - removed email 'cruft' and revised format
	  of verbose output.

0.14.5.1 2003-08-19

	* Fixed parameter type error in dbh_print_names() that causes
	  segfault.
	* Enhanced verbose output of bogominitrain.pl
	* Documented '-T' option in man page.

	2003-08-18

	* Fixed parsing error that treated "^From " in encoded text as
	  a message separator.

	2003-08-17

	* Revised format for '-T'.
	* Fixed defect in bogominitrain.pl's norepetition mode.

0.14.5	2003-08-15

	* Updated bogominitrain.pl to version 1.3.

	2003-08-14

	* Corrected parsing error (in html code) that caused
	  bogofilter to miss message separators.

	2003-08-12

	* Revised FAQ.
	* Added '-T' as terse mode (with fixed formatting).

	2003-08-10

	* Revised processing of From and empty lines so that parsing
	  works correctly with both flex-2.5.4 and flex-2.5.31.

0.14.4	2003-08-10

	* Updated FAQ.

	2003-08-08

	* Revised database API so that there are 3 distinct layers
	  (program, datastore, and database) with a clean interface
	  between them.
	* Correct exitcodes in bogoutil by using EX_ERROR.

	2003-08-07

	* Fixed token registration bug in 0.14.x versions.
	* Fixed seg fault caused by database lock contention.

0.14.3	2003-08-05

	* Fixed critical locking bug introduced into bogofilter 0.14.0
	  with the combined-wordlist code: when working with separate
	  wordlists, bogofilter would lock only the first one opened,
	  rather than all.
	* Documentation updates.

	2003-08-04

	* %g formatting is now supported by bogofilter's formatting functions.
	* Merged trio 1.10 (http://ctrio.sourceforge.net/) to support
	  compilation on ancient systems (Solaris 2.5) that do not have
	  [v]snprintf functions.
	  Trio is Copyright (C) 1998-2000 Bjorn Reese and Daniel Stenberg.
	* Various documentation updates, including the FAQ.

	2003-08-03
	* The test suite was adjusted for older grep variants (Solaris
	  2.5) that don't cope with long lines.
	* Print database version in print_version().

	2003-08-02

	* Postfix integration instructions have been upgraded.
	* Debug output for wordlists and databases was enhanced.

0.14.2	2003-08-02

	* Replaced use of memcpy() by memmove() in an input routine. The
	  overlapping copy migh cause data corruption on some systems.
	* Fixed "make check" failures for bogoutil introduced with the
	  "combined wordlist" feature in 0.14.0. There has been a buffer
	  overflow. All users of bogofilter with combined wordlist prior to
	  0.14.2 are advised to upgrade.
	* Fixed bogus "t.valgrind" test FAILures.
	* Fixed uninitialized data in db_get_dbvalue(), for split word lists.
	* New file, contrib/vm-bogofilter.el, provides an interface
	  between the VM mail reader and bogofilter."
	* Revised lexer_v3.l for compatibility with flex-2.5.31
	* Break up long line in regression test input for Solaris 2.5
	  compatibility.

0.14.1.1 2003-08-01

	* Fixed check for adding spam_subject_tag to Subject: line.
	* Updated French version of FAQ.

	2003-07-31

	* Correct problem with t.degen regression test.

0.14.1	2003-07-31

	* Updated English version of FAQ.

	2003-07-29

	* Initial release of token degeneration code.

	2003-07-25

	* Revised lexer pattern to better recognize encoded tokens.

	2003-07-24

	* Implemented named exitcodes, with Unsure having its own
	  value (2) and changing the value for error from 2 to 3.

0.14.0.1 2003-07-23

	* Fix problem with encoded text.
	* Fix handling of absolute paths.
	* Fix defect in base64 decoding that can cause segfaults.
	* Bogoutil now complains before exiting when it can't open a
	  file.
	* Updated bogominitrain.pl to work with combined wordlists.

0.14.0	2003-07-22

	* Updated contrib/bogominitrain.pl prints more info and can save
	  messages used in training.

	* Miscellaneous documentation updates.

	2003-07-21

	* Decode encoded text in header lines.

	2003-07-19

	* Bogofilter and bogoutil detect whether one or two wordlists
	  are in BOGOFILTER_DIR and use the appropriate wordlist mode
	  (combined or separate).

	* Bogofilter's -V output now includes algorithm and database
	  info.

	2003-07-18

	* Default wordlist mode is single, combined wordlist.
	  File wordlist.db contains all spam and ham tokens.

	2003-07-17

	* Added tdb (trivial database) support.

	2003-07-16

	* Initial release of code allowing bogofilter to use a single,
	  combined BerkeleyDB database for storing both ham and spam
	  tokens.  The file is named wordlist.db.

0.13.7.3 2003-07-16

	* Added contrib/bogominitrain.pl

	2003-07-15

	* Fix bug in "boundary" parser, which ignored boundaries with spaces.

	2003-07-05

	* Updated doc/integrating-with-qmail

	2003-07-03

	* Accept whitespace in html tags.
	* Checks for "Subject:" are now case insensitive.
	* Adds "Subject:" header if needed for including
	  spam_subject_tag.
	  (Thanks to Pavel Kankovsky for these patches.)

0.13.7.2 2003-07-02 - Stable Release

	* Fixed loop in yyinput() caused by unexpected EOF.

0.13.7.1 2003-06-26

	* Update bogotune to version 0.3
	* Added '-k size' option to bogofilter and bogoutil for
	  setting BerkeleyDB's cache size.

	2003-06-25

	* For bogotune change processing of '-t' switch from pass 1 to
	  pass 2 so that it supercedes the config file.
	* Man pages now use '\ ' when a non-breaking space is needed,
	  instead of 0xA0.

	2003-06-24

	* '-Q' processing no longer requires that spamlist.db be present.

0.13.7	2003-06-20

	* Replaced tuning/tuning.sh with tuning/bogotune (and related files).

0.13.6.3 2003-06-18

	* Minor code rewrites to speed up processing messages, mboxes,
	  and msg-count files.	In particular, tuning/tuning.sh runs
	  are approx 47% faster than before.
	* Fixed several errors in tuning/tuning.sh and reformatted
	  "Top 10 Results" output.
	* Minor changes to bogoutil to support bogotune script.
	* Added newlines to correct usage messages.

0.13.6.2 2003-06-05

	* Don't allow square brackets in tokens.  Do allow dollar
	  signs in tokens in msg-count files.
	* Bogolexer now ignores first 'From' token to match scoring
	  behavior of bogofilter.

0.13.6.1 2003-06-05

	* Updated file tuning/README and script tuning/tuning.sh.

0.13.6	2003-06-04

	* Fix check for "^From " lines to work properly during base64
	  decoding.
	* End html comment processing when a message header is found.
	* Improve README for the tuning scripts and simplify them.

0.13.5	2003-06-03

	* Allow terminal exclamation points on tokens.
	* Updated contrib/mime.get.rfc822

	2003-06-02

	* Fixed bogofilter's non-use of message counts in msg-count files.
	* Diagnose invalid values of robx.
	* Modified rstats_print_histogram() so it doesn't print 'nan's.
	* Modified t.frame to find version of grep on Solaris so
	  t.bulkmode can run successfully.

0.13.4.1 2003-05-31

	* Modified t.parsing test so it works with OSX's default file system.

0.13.4	2003-05-30

	* Changed default value of ROBS from 0.001 to 0.01
	* Fixed options '-M' (mailbox mode) and '-p' (passthrough
	  mode) so they work properly together.
	* Minor cleanups in bogofilter.cf.example
	* Added db-3.2 and db-3.1 to list for AC_CHECK_DB in configure.ac

0.13.3	2003-05-28

	* Minor code tweaks to quiet gcc-3.3 warnings.

	2003-05-26

	* Added doc/programmer/README.osx to distribution.
	* Corrected FAQ's procmail recipe for training with SpamAssassin.

	2003-05-24

	* Added -V (version) option to bogolexer.
	* Tweaked long line check used to prevent scanner buffer overflow.

0.13.2.1 2003-05-24

	 * In bulkmode, output filenames to stdout.

	 * Further fixes for static-build system.

0.13.2	2003-05-24

	* Autoconfiguration of BerkeleyDB library has been improved.
	* Build procedure for statically linked binaries has been improved.

	* Fixed defect in replace_nonascii_characters that was
	  superseding ignore_case option.

	* Portability fix for efence usage in t.frame.

	* Added static-build to solve glibc version problem.

0.13.1	2003-05-23

	* Modified "make rpm" to also build statically linked binaries.
	  They're packaged in bogofilter-static-x.y.z-1.i586.rpm

	* Fixed bogofilter.spec.in to include files CHANGES-0.13 and
	  RELEASE.NOTES-0.13 which had been left out.

	* tests/t.frame portability fix for non-Linux compatibility.

0.13.0	2003-05-21

	* Added file RELEASE.NOTES-0.13.  Read it!

	* Changed parsing defaults to:

	  -PI	ignore_case		(default is disabled)
	  -Ph	header_line_markup	(default is enabled)
	  -Pt	tokenize_html_tags	(default is enabled)
	
	* Recognize a line of whitespace as ending the message header.

	* contrib/randomtrain and contrib/scramble can now process
	  both mbox and maildir formats.
	* Added perl script contrib/mime.get.rfc822 to extract
	  forwarded messages from with a message.
	
	* Added basic support for emacs RMAIL mailboxes.
	* Removed incomplete RMAIL/Babyl-5 support.

	* Registration code modified to count unique tokens for each
	  message and display the total of the counts.

	* Added 'bogo-what?' to FAQ.

0.12.3	2003-05-10

	* Modified bulk mode code to allow registering maildirs.
	* Added options to return tokens from inside HTML tags.
	  Switch '-Ht' and option "tokenize_html_tags" turn it on.
	* Bogofilter's '-e' switch can now be used without '-p'.
	* Added doc/integrating-with-postfix.
	* Added bogofilter-faq-fr.html, a French translation of the FAQ.
	* Revise description of verbose output in FAQ.
	* Update man page documentation of bogofilter's switches.
	* Added basic memory accounting and debug capability.
	* Fixed memory leak in rstats.c
	* Fixed defect in handling of folded spam header lines.
	* Modified parsing so that yyredo() and yy_use_redo_text()
	  are no longer needed.

0.12.2	2003-04-30

	* Corrected bulkmode problem processing messages without
	  "^From " lines.
	* Corrected alignment of wordprop_t which caused bus error
	  on risc.
	* Added directory to 'Error creating directory' message.

0.12.1	2003-04-25

	* Corrected bad BOGOFILTER_DIR value in t.bulkmode
	* Subdirectories contrib and tuning now install from rpm
	  to /usr/share/bogofilter.

0.12.0	2003-04-24

	* Corrected some errors in rpm specfile.

	2003-04-23
	* Added 'tuning' directory with scripts for tuning bogofilter.
	  (cf. bogofilter-tuning.HOWTO)

	2003-04-21
	* Added '-M' to allow classification of multiple messages in
	  mbox formatted files.
	* New option '-Q' (query/display config) replaces '-qv'.
	* Grouped options into logical groups for help message and
	  man page.  Revised option descriptions.

	2003-04-19
	* Added bogofilter-tuning.HOWTO as replacement for README.Robinson

	2003-04-18
	* Added classification support for msg-count formatted files.
	* Add bogolex.sh for creating msg-count formatted email file.

	2003-04-17
	* Added bulk mode procesing for Maildirs.
	  '-b' reads filenames from stdin.
	  '-B' gets filenames from the command line.

	2003-04-16
	* Miscellaneous refactoring in main.c

0.11.2	- stable version

	2003-04-13

	* Added 'terse' option to bogofilter.cf for selecting format of
	  X-Bogosity line.

	2003-04-11

	* Use frexp() to retain maximum precision of floating point results.

0.11.1.9

	2003-04-10

	* Reformat histogram output (from "-vv") to fit in 80 columns.
	* Added sample configuration for maildrop.

	2003-04-09

	* Added protections against negative token counts to
	  bogoutil.c and database_db.c
	* Additional portability changes made to the regression tests.
	* Enhanced '-m' option allows specifying robs value.

0.11.1.8 2003-04-07

	* Include 'strict_check' in '-qv' output.
	* Correct outdated acinclude.m4, as it causes the configure
	  script to be invalid.
	* Revised UPGRADE document.
	* Added contrib/bogotrain.sh

0.11.1.7 2003-04-07

	* Change bogoutil's '-p' option to require a database.
	* Fix OS X segfault caused by using DB handle after closing database.

	2003-04-05
	* Improve bogoutil's reporting of a bad directory or filename.
	* Simplify configure check for BerkeleyDB.
	* Extend configure's compiler checks for AIX.

0.11.1.6 2003-04-01

	* Changed default value of 'strict_check' to 'no' (disabled).

	2003-03-30
	* Added config file option 'strict_check' for processing
	  html comments.  Enabled means to use "<!--" and "-->" to
	  delimit comments.  Disabled uses "<!" and ">".

0.11.1.5 2003-03-28

	* Bogofilter now frees _all_ memory that it allocates.
	* FAQ reorganized and info added on asian spam, the format of
	  verbose output, and using SpamAssassin to train bogofilter.
	* Fixed processing of '-o' option.

0.11.1.4 2003-03-25

	* Cleaned up help messages and added version info.
	* Expanded bogofilter-faq.html
	* Fixed precedence for directory specifications.
	* Fixed processing of folded X-Bogosity line.
	* Fixed processing of spam_subject_tag.

0.11.1.3 2003-03-10 - stable release

	* Expanded regression tests.
	* Cleaned up fprintf() arguments.
	* Cleaned up message and mime header checks.
	* Additional improvements to maintenance code.

0.11.1.2 2003-03-06

	* Fixed bogoutil's broken maintenance mode.
	* Update bogofilter documentation and FAQ.
	* Explicitly check linking against libdb early to avoid unspecific
	  error messages as "cannot determine size of unsigned short".
	* Retry locking without mmap() on systems that return the old-fashioned
	  EACCES rather than EAGAIN for locking failures such as AIX 4.3.3.
	* Fix potential division by zero in histogram generator, it caused
	  program abort after not handling floating point exceptions on some
	  architectures such as Alpha. The division by zero is now avoided.

0.11.1.1 2003-03-05

	* Fixed flaw that caused user config file to be ignored.
	* Fixed broken '-u' (update) code.
	* Updated documentation of bogolexer and bogoutil.

0.11.1	2003-03-04

	* Using standard html comment delimiters when ignoring comments.
	* Fixed charset initialization flaw.

0.11.0	2003-03-03

	* The Robinson-Fisher algorithm is now the default algorithm.
	* The configuration file parser is stricter and more correct.
	* Separated message registration options from unregistration
	  options.  '-S' and '-N' have been changed and now just do
	  unregistration.  To move a message from one wordlist to the
	  other, use '-S -n' or '-N -s' (as appropriate)
	* Bogofilter's -p (passthrough) mode will no longer read the entire
	  mail into memory if the standard input is a seekable regular file.
	* Bogofilter's '-l' option was changed and no longer allows an
	  argument.  Use the new '-L yourtag' option to provide a tag
	  for log messages.
	* Database access efficiency changes.
	* Improvements in html comment handling code.
	* Internal cleanup of storage used in parsing messages and
	  working with databases.
	* Manual pages now contain the proper path to bogofilter.cf.

0.10.3.1  2003-02-17

	* Updated bogofilter and bogoutil man pages.
	* Give command line options preference over config file options.

0.10.3	2003-02-14

	* Database access efficiency changes.
	* Database properly closed at end of maintenance pass.
	* Improvements in html comment handling code.
	* Support option '-?'

0.10.2	 2003-02-01

	* Stable release of 0.10.1.5

0.10.1.5 2003-02-01
0.10.1.4 2003-01-30
0.10.1.3 2003-01-29
0.10.1.2 2003-01-27
0.10.1.1 2003-01-25
0.10.1	 2003-01-22

	* A variety of robustness and portability changes, code and
	  file cleanups and documentation updates.
	* Multiple fixes for mime and html processing.
	* Additional support and fixes for the various spam scoring
	  algorithms.
	** See file CHANGES-0.10 for details of the above items.

0.10.0	2003-01-19

	* Added mime processing capability, with decoding of base64,
	  quoted-printable and uuencoded sections.  Ignores attachments when
	  computing spamicity.
	* Added wordlist maintenance capability to bogoutil.  Can ignore
	  tokens based on count, age, or length.  Can replace non-ASCII chars
	  with question marks.
	* Added dates to wordlist tokens.  Option "datestamp_tokens=true|false"
	  can be used to enable/disable them.
	* Moved most documentation files to doc directory.
	* Added sample procmail file, contrib/procmailrc.example
	* Spamicity score now computable from multiple word list pairs, i.e. all
	  spam and ham word lists in directories named on command line or in
	  config file (via "wordlist=" or "bogofilter_dir=" lines).
	* Lexer is now case insensitive
	* Increase MAXTOKENLEN from 20 to 30, allowing more and longer tokens
	  to be processed.
	* New options for setting of default charset and replacing of non-ASCII
	  characters.	New character set handling routines to provide charset
	  specific token parsing.
	* New error handling routine will output error messages to stderr and,
	  if '-l' (logging) is enabled, to syslog.
	* New message formatting capability allows formats to be put in config
	  file for X-Bogosity line and logging messages.  Message content can
	  include status, spamicity, version, etc.
	* Long-standing locking bugs that caused corruption in the database
	  have been resolved.
	* Work around ash-0.2 and bash-1 bugs, needed for make check.
	* Cater for malloc/calloc implementations that return NULL when 0 bytes
	  of memory are requested, some AIX versions e. g., that would
	  previously falsely claim an "out of memory" condition.
	  (also available as patch for 0.9.1.2)
	* Reorder gcc __attribute__ lines for gcc-2.7 compatibility.
	  (also available as patch for 0.9.1.2)

0.9.1.2	2002-12-05

	* A defect in the collect_words routines (in 0.9.1) caused
	  incorrect generation of "must get only one message to
	  calculate spamicity!" messages.  This has been fixed.
	* A defect in the contrib/bogopass script caused the unbase64-edited
	  version of the mail to be printed rather than the original with just
	  the header added. This has been fixed.
	* Documentation has been revised and updated.
	* Robinson-Fisher method now produces a tristate status, i.e.
	  spam/ham/unsure, if ham_cutoff is non-zero.  ham_cutoff defaults to
	  0.1 and can be set via config file.
	* Script contrib/bogopass has revised error and environment checking.

0.9.1	2002-11-30

	* New script contrib/bogopass allows processing of base64
	  attachments.	This is a temporary solution until base64
	  code can be built into bogofilter.
	* New file README.Robinson describes the tunable parameters
	  for the Robinson algorithm and what to do for best performance.
	* Changed the default behavior to use the Robinson algorithm.
	* Corrected incorrect sort order when printing statistics.
	* Added support for Fisher's method of combining probabilities,
	  as optimized for this purpose by Rob W. W. Hooft, to the
	  "Robinson" algorithm.
	* The new file METHODS describes the Graham, Robinson, and Fisher
	  methods that bogofilter supports for computing spamicity.
	* New file README.dcdflib gives some info on the dcdflib free
	  library of routines for cumulative distribution functions.
	* A new '-f' option tells bogofilter to use Fisher's method.
	* A new '-c' option in bogofilter allows specification of the
	  configuration file to read.
	* A new '-C' option tells bogofilter not to read any config file.
	* The syslog facility in '-l' mode has changed from "daemon" to "mail",
	  so your logs may now be in /var/log/maillog or /var/log/mail rather
	  than /var/log/messages. Check your /etc/syslog.conf.
	* The testing framework now works on Solaris.

	Internal Changes:
	* Fixed several portability problems uncovered by the new
	  regression tests.
	* Added three more regression tests designed to confirm that
	  bogofilter's results are matching saved reference results.
	* Implemented an object oriented API for using computational methods.
	* Split the main module into a registration module and three algorithm
	  modules - for the fisher, graham and robinson methods.
	* Registering big mbox files is much faster now, at the expense of some
	  memory.

0.8.0	2002-11-10

	* The lexer code now detects read errors (and exits with code 2
	  if it finds one.)
	* Fixed passthrough mode in bogofilter: it no longer strips the
	  spam-header from a mail body.
	* Fixed portability to some systems, notably, Solaris
	  and HP-UX, added README. for some systems to describe build
	  issues.
	* Fixed "rpl_malloc" link failures.
	* Fixed bogofilter 0.7.6 passthrough regression on some
	  systems: The X-Bogofilter header would be added to the body
	  and a bogus blank line would be added.
	* Bogofilter now supports a configuration file named
	  /etc/bogofilter.cf and/or ~/.bogofilter.cf.
	* Bogofilter's use of '-v' for printing spamicity statistics
	  has been organized with increasing levels of details as
	  additional '-v's are added.
	* When using the Robinson algorithm, bogofilter can print a
	  simple histogram showing word probability distribution.
	* Bogoutil supports a new '-w' switch for displaying tokens
	  from the word list databases.
	* Bogolexer added to distribution.  Provides easy access to
	  parsing a file to examine the tokens.
	* Bogolexer has a new '-p' (passthrough) for printing tokens and
	  bogoutil has a new '-p' (probability) for printing the
	  probabilities of one or more tokens.	They can be connected
	  via pipe to display the probabilities of all words in a message.
	* DB 4.1 support has been fixed.
	* Documentation updates.

0.7.6	2002-10-27

	* Added README.hp-ux for those using HP-UX.
	* Added support for additional architectures - ia64, arm,
	  powerpc, and s390.
	* Bogofilter -p mode now preserves CR and NUL characters.
	* Bogofilter -p mode now detects if the computer runs out of
	  memory.
	* Bogofilter supports a new "-l" switch to write run-time log
	  information to syslog.
	* Bogofilter supports a new algorithm to calculate the
	  "spamicity", the "Robinson" algorithm. It is enabled with the
	  new "-r" switch. The old behavior is called the "Graham"
	  algorithm and can be enforced with the new "-g" switch.  The
	  default behavior is to use the "Graham" algorithm.
	* Bogofilter now has an "-R FILE" option (that implies -r) to print
	  an R data frame to FILE.
	* Bogofilter and bogoutil now have a "-x CLASSES" option to turn
	  on debugging.
	* Bogoupgrade.pl has been renamed to bogoupgrade.
	* There is now a man page for bogoupgrade.
	* BASE64 treatment has been fixed. It ignored whole lines if
	  they consisted of a single token. Now a token is only
	  considered base64 and ignored if it's >= 32 characters or ends
	  in one or two padding "=" signs.
	* MIME boundary lines are now emitted as tokens. Some of them
	  are typical of certain spam software, so they might turn out
	  to be useful.
	* All control characters are now considered token delimiters.
	* Bogofilter now aborts if it cannot figure where to look for its
	  database directory.
	* The software no longer crashes on machines that do not allow
	  for unaligned memory access (m68k; many RISC, e. g. SPARC).
	* DB 4.1 is now supported.
	* Documentation updates.

0.7.5	Sun Oct 20 17:34:35 PDT 2002

	* The header in bogofilter -p mode now defaults to X-Bogosity, but
	  can be changed by using "./configure --enable-spam-header=name" at
	  compile time.
	* The option names -h/-H are back to -n/-N like they were in version
	  0.6, and -h now means "help".
	* A utility has been added to help upgrade wordlists from older
	  versions of bogofilter to the current format. See the UPGRADE file
	  for more information.
	* Support has been added for the environment variable BOGOFILTER_DIR
	  to control where bogofilter looks for it's wordlists.
	* Now bogofilter no longer depends on the Judy package. We now use a
	  high performance hashing algorithm for message evaluation. The Judy
	  package is no longer required to compile or run bogofilter.
	* Support for the -e flag, which will cause bogofilter to exit with a
	  value of 0 regardless of the spamicity of the message. This is useful
	  when using -p mode.
	* Support for -u flag. This allows message evaluation and training to
	  happen in the same invocation of bogofilter.
	* Extended TOKEN patterns to improve support for European languages.
	* Improved wordlist locking to prevent data corruption.
	* Added procmail recipes for example usage in the man page.

0.7.4	Tue Sep 17 02:29:48 EDT 2002

	* Added infrastructure to support multiple wordlists
	* Fixed classification bug
	* Fixed errors in documentation
	* Improved portability of locking code
	* Fixed 'last line occasionally emitted twice' bug
	* Cleaned up underflow checking for word counts in bogofilter.c
	* Code readability improvements
	* Split main() function in bogofilter.c into smaller pieces
	* Message processing performance improvements

0.7.3	Thu Sep 12 13:28:37 PDT 2002

	Adrian Otto:
	* Added portable file locking support for files and databases
	David Relson:
	* Bug fix for negative counts in word registration
	* Bug fix for SEGV in $HOME path code
	* Bug fix for trailing slash in -d option

0.7.2: Wed Sep 11 15:28:00 PDT 2002

	Adrian Otto:
	* Introduced GNU configure for portability code

0.7.1: Tue Sep 10 00:59:00 PDT 2002

	Adrian Otto:
	* Skip existing X-Spam-Header
	* Performance improvement for -p mode
	Paul Tomblin:
	* Bug fix in getopt argument
		
0.7: Sat Sep  7 14:18:33 EDT 2002

	Eric S. Raymond:
	* Check your scripts!  Option names have changed.
	* Name changes: goodlist -> hamlist, badlist-> spamlist.
	  This is a step towards supporting more categories.
	* Autodaemon is gone.  Instead, the new implementation uses
	  DBM.	Optimization with mmap will be in a future release.
	* Speed-tuning of the bogofilter function.
	* We're back to not ignoring HTML comments.

0.6: Fri Aug 30 00:25:49 EDT 2002

	* Fixed a fluky bug in the socket-transmission logic
	* Fixed an edge case where a single message with a From line
	  was getting counted twice.
	* Unknown-word probability bumped from 0.2 to 0.4, tracking a
	  change by Paul Graham.
	* Documented -d option.

0.5: Thu Aug 29 13:38:12 EDT 2002

	* Passthrough option can be used to add an X-Spam-Status header.
	* There is now a per-message word frequency cap, so spammers can't do
	  an equivalent of Google fodder.
	* HTML comments are now ignored.
	* HTML 4.0 keywords and attributes are now ignored.
	* Improved extrema calculation.
	* Mutt patch withdrawn -- have a better version of mutt macros instead.
	* -S and -N options from matt@lickey.com (Matt Armstrong).
	* Client-server partitioning with a persistent server, drastically
	  reducing startup cost after the first run.
	* Minor bug fix by Eric Seppanen.

0.4: Sat Aug 24 09:07:45 EDT 2002

	* regenerated bogofilter mutt patch.
	* wordlist files are now automatically created in -s and -n modes.
	* Reversed the exit values, following a suggestion by Michael Elkins
	  about how to make bogofilter fail gracefully.
	* -Wall cleanup and uninitialized-variable fix from Eric Seppanen.
	* fcntl(2) file locking to head off a race condition in write_list.
	* Added the long-sought procmail recipe.

0.3: Fri 23 Aug 03:30:49 EDT 2002

	* Specfile/Makefile improvements from Graham Reed.
	* Case blindness fix from Eric Seppanen.
	* Deallocation fix from Mike Mayfield.
	* Wordlist file format changed.

0.2: Tue Aug 20 06:49:42 EDT 2002

	* Added mutt-1.4 interface patch
	* Note:	 Location of the base directory has changed.

0.1: Mon 19 Aug 2002 03:07:31

	* Initial release.

 vim:tw=79 com=bf\:* ts=8 sts=8 sw=8 ai:

 LocalWords:  bogofilter bogolexer bogoutil Spamicity spamicity
 LocalWords:  procmail maildrop
