Changes:
- opts.c: update mailing list address
- database.c: make error messages refer to temp_data_file; free
temp_data_file
- database.c (ifile_write_db): check for errors while writing
database. Fixes bug 2955.
- Fixed problems in configure and autoconf scripts for the case
of selecting non-gcc C compiler. Fixes bug 2535.
Changes:
- add local patch for configure generated with new autoconf, the old
one doesn't accept CFLAGS & the like. (already fixed in ifile cvs)
1.3.0:
======
- include/extendable_array.h: Fixed bug in EXT_ARRAY_INIT_N_SET()
macro. Fixes bug 2516, where new folders caused the database to
be garbled.
- Performance improvements: On a Sun SPARC-based system running
Solaris 10, with a database of about 16500 words, got a 40%
improvement in words processed per second when reading the
database, using the changes listed here.
- include/ifile.h: Changed prototypes for readline(),
ifile_read_header() and ifile_read_word_frequencies() to reflect
new calling conventions.
- include/extendable_array.h: New macro EXT_ARRAY_INIT_N_SET()
combines the effects of EXT_ARRAY_INIT() and multiple calls to
EXT_ARRAY_SET() in a smarter way, saving many realloc() calls and
many manipulations of the array metadata.
- utils.c: Rewrote readline to take a char-- bufp and use the
data within -bufp to parse a line, and update -bufp to point
beyond the first line. This avoids at least one copy of the
data.
- primes.c: Cast values returned by ifile_realloc() correctly.
- int4str.c: Cast argument to free() to void - in
ifile_int4str_free_contents(), to fix compiler complaints.
- hash.c: Added an include of <string.h> to fix compiler
complaints.
- database.c: Made ifile_read_db() read the whole database in one
fell swoop and modified callers of readline() to just pass in a
pointer to the buffered database.
Also made ifile_read_word_entry() call a new macro
EXT_ARRAY_INIT_N_SET() in place of EXT_ARRAY_INIT() and multiple
calls to EXT_ARRAY_SET(), saving many calls to realloc() and many
manipulations of the extendable array metadata.
ifile is a general mail filtering system which uses a modern-day text learning
algorithm to intelligently filter mail according to the way the user tends to
organize mail.
ifile is different from other mail filtering programs in three major ways:
1. ifile does not require the user to generate a set of rules in order to
successfully filter mail
2. ifile uses the entire content of messages for filtering purposes
3. ifile learns as the user moves incorrectly filtered messages to new
mailboxes
ifile is not dependent upon any specific mail system and should be adaptable
to any system which allows an outside program to perform mail filtering.