libSieve 2.2.6
--------------

- Fix for bracketed comments (thanks to Daniel Shahaf).

- More graceful handling of malformed addresses (thanks to Paul Stevens).

- Return header and address errors separately from script parse errors.

libSieve 2.2.5
--------------

- Allowed CFLAGS to pass through Makefile.am
  (thanks to Bernard Johnson).

- Use # instead of __STRING for assertion stringification.

- Fixed off-by-one when reallocing space for repeated headers
  (thanks to Petri Laine).

libSieve 2.2.4
--------------

- Improved several test scripts.

- Fixed a memory leak in header parsing.

- Fixed a memory leak in comparator lookup.

- Accepted patch from Steffen Schuetz to respect :from in vacation action.

libSieve 2.2.3
--------------

- Numeric relational comparators were backwards.

libSieve 2.2.2
--------------

- Added more test scripts.

- Added support for RFC 3431 Relational comparators.

- Fixed segfault when parsing group syntax with empty address list.

libSieve 2.2.1
--------------

- Removed accidental dependency on Check.

- Added exception handling system.

- Added test runner scripts to sv_test.

libSieve 2.2.0
--------------

- Updated top-level README.

- Fixed address test not working.

- Fixed innocuous yet annoying GCC 4 warnings.

libSieve 2.1.13
---------------

- Fixed capabilities missingspaces.

- Fixed alloca.h in vasnprintf for FreeBSD.

libSieve 2.1.12
---------------

- Fixed namespace issue with vasnprintf.

libSieve 2.1.11
---------------

- Minor fixes to build with flex 2.5.33.

- Updated to Vacation draft 6.

- Updated to imap4flags.

- Dropped support for imapflags.

- Added callback for subaddress rather than
  using a hardcoded user+mailbox format.

- Added a callback for debug messages.

- Regex is always built in now.

- Fixed multiline "text: string ." blocks.

libSieve 2.1.10
--------------

- Fixed sieve2_listextensions.

- Fixed segfault when client returns null
  pointers from the getenvelope callback.

- Improved handling of extension require's.

- Fixed segfault when parsing zero length address.

libSieve 2.1.9
--------------

- Fixed subaddress, getenvelope and vacation.

- Added additional debugging messages.

- Added new and updated draft rfc's.

libSieve 2.1.8
--------------

- Created a testsuite of scripts and messages
  to exercise RFC and Draft comformance.

- Fixed a memory allocation issue that prevented
  the library from being used again after sieve2_free
  had been called.

libSieve 2.1.7
--------------

- Rewrote the API again. I finally like it!

- Settled on the LGPL for all of my new code.

- Replaced the RSA MD5 implementation with
  a public domain version.

- Documentation updated for the new API.

libSieve 2.1.6
--------------

- Added a set of error-retrieval functions.

libSieve 2.1.5
--------------
(formerly libsieve 2.2.0_pre3)

- CFLAGS now includes -Wall and compiles very
  cleanly. Messages from lex/yacc are benign.

- Namespace cleanups: internal global functions
  prefixed with "libsieve_" for consistency.

- Local regex library, borrowed from GNU glibc
  2.3.2. Used under LGPL license version 2.1.

- Compiles under Win32 with Visual C++, with
  many thanks to Brandon Knitter.

libSieve 2.1.4
--------------
(formerly libsieve 2.2.0_pre1)

- Sieve 2 API has begun. More changes should
  be expected during the 2.1 series.

- All later-CMU code removed and/or replaced;
  original licensing is now entirely old-CMU
  style and augmented by the GNU GPL as it is
  placed on all new code and applies to the 
  distribution as a whole from here forward.

- "Poor man's parsers" for RFC 2/822 addresses
  and message headers replaced with lex/yacc.

- Extensive Valgrinding performed to identify
  memory leaks; no known leaks remain.

- Many more changes, amounting to perhaps a
  70% rewrite of all code.

libSieve 2.1.3
--------------

- Accepted patches from Timo Sirainen:

  - Added function xstrconcat
  - Changed strdup to strndup
  - Changed strcpy to xstrcpy
  - Changed uglies to xstrconcat
  - Rebuild .y and .l in Makefile.am
  - Changed int to size_t where applicable
  - Added explicit casting where applicable

- Accepted patches from Oliver Tappe:

  - Fixed examples for the web site
  - Removed useless headers
  - Now builds on BeOS

- Cleaned up lots of K&R style function declarations

libSieve 2.1.2
--------------

- Changed `timestamp` to $timestamp in configure scripts.

- Added missing autoconf and libtool scripts.

- Fixed a typo in index.html

libSieve 2.1.1
--------------

- First public release of the libSieve distribution.

- com_err library removed.

- Conversion to GNU autotools for the build process.

libSieve 2.1.0
--------------

- Forked from CMU Sieve 2.1.

- SourceForge project site and a new web site and CVS tree and prepared.

- Dependencies on libCyrus trimmed to a bare minimum.

CMU Sieve 2.1
-------------

- Compliant with RFC 3028.  As a result, fileinto and redirect only
  accept a single string and NOT a string-list.

- Compliant with draft-martin-sieve-notify-01.  As a result, notify
  actions will need to be updated to the new syntax.

CMU Sieve 2.0
-------------

- Compliant with draft-showalter-sieve-11.txt and 
  draft-showalter-sieve-vacation-03.txt.

- Added support for the regex, imapflags, notify and subaddress extensions.
  See README for references.

- Verifies email addresses in redirect and vacation actions are syntactically
  correct (compliant with RFC822).

- Run-time error reporting.

- Changed callback interface to use callback contexts instead of individual
  parameters.  Also added an error string buffer for run-time error reporting.

- Vacation will not reply to any message containing an "auto-submitted"
  header containing anything other than "no".

CMU Sieve 1.4
-------------

Now included with imapd distribution (hell, why not?).

Error returning and recovering:
	added error recovering to the parser (but not much!)
	added error messages to the parser

Working on error returning and error recovering.
	run-time errors
	detect some errors in lexer?

Working on even better parsing:
	verify addresses could be addresses
	verify mailboxes could be mailboxes
	verify outgoing headers can be headers

CMU Sieve 1.3
-------------

Changed for integration with cyrus deliver.

CMU Sieve 1.2
-------------

Added additional callbacks (ok, so I want to make my integration with deliver
easier) and envelope and vacation support.

Made it compile without libcyrus.
It should compile without libcyrus, but then it does not implement the
"address" test.	 That's just too much work to do when I have a neato
library to do it for me.

Todo:
- regex matching

CMU Sieve 1.1
-------------

- Updated to draft-showalter-sieve-07bis.txt

- Simple API (see sieve_interface.h; currently mostly undocumented)

- Implements all of the optional features except "envelope"

- Maintains "if it parses, it probably runs" behavior. (Goal: minimize
  run-time errors.)

CMU Sieve 1.0
-------------

- prototype implementation
