MuRX ChangeLog
-=-=-=-=-=-=-=

Sat Oct 20 09:00:00 CEST 2007  Kai Hildebrandt  <kai.hildebrandt@web.de>

* src/Makefile.am

  - added linker variables for target check_murxrc because of a linker error
    when using included gettext (Bug #1812695)

* configure.ac

  - requiring gettext version 0.16.1

  - updated version to 0.7.1

* Tests:

  - configure Option --with-included-gettext
	
Sun Jun 10 12:27:00 CEST 2007  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/Filter.hxx, src/Session.hxx:

   - corrected includes for use of pcre library

 * src/Session.cxx:

   - removed debian specific parts (prefix pcreposix_*)
	
Sun Jun 10 10:57:00 CEST 2007  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * m4/pcre.m4: added

 * src/Filter.cxx, src/Session.cxx:

   - added support for perl style regex (pcre)

 * src/Logger.hxx:

   - updated comments

 * src/murx.cxx:

   - Updated date in copyright 

 * configure.ac:

   - added support for perl style regex (pcre)

   - updated version to 0.7.0
	
Sun Dec 31 12:13:00 CET 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/IMAPProtocol.hxx

   - added constant OCTETS_PER_LINE for calculating amount of body octets
     to fetch when BODYLINES is greater zero

 * src/IMAPProtocol,cxx:

   - resorted header file (TLSSocket.hxx)

   - explicit undef of DEBUG_MODE

   - added more verbose output on Protocol exceptions

   - support for fetching partial body (experimental)

 * src/RCParser.yxx:
	
   - added explicit undef of DEBUG_MODE

 * src/RFC822Parser.yxx:

   - added explicit undef of DEBUG_MODE

 * configure.ac:

   - updated version to 0.6.0
	
Sat Dec 30 18:32:00 CET 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * contrib/wrapper_murx.bash:

   - new false positive checking (slow)

 * examples/murxrc:

   - corrected BODY filter rule to filter BODY rule

 * doc/murxrc.5:

   - updated manpage for new filtering behavior using BODY keyword

 * src/Filter.hxx, src/Filter.cxx, src/MoveTo.hxx, src/MoveTo.cxx,
	Score.hxx, src/Score.cxx:

   - correction:
     - added new flag for body line rules
     - keyword body should not apply to a filter but a rule

 * src/IMAPProtocol,cxx:

   - Added warning for using BODYLINES with IMAP accounts which is not
     applicable due to protocol limitations.

 * src/murx.cxx:

   - removed unused SCORE_MOVETO handler

 * src/POP3Protocol.cxx:

   - resorted header file (TLSSocket.hxx)

 * src/RCParser.yxx:

   - the keyword BODY does now apply on rules instead of filters

   - removed grammar rules for BODY FILTER

   - added grammer rules for BODY RULE

 * src/RFC822Scanner.lxx:
	
   - modularized LF and CRLF removal

   - some patterns changed for stability

 * src/Session.hxx:

   - removed constant SCORE_MOVETO since it is not used

 * src/Session.cxx:

   - removed constant SCORE_MOVETO since it is not used

   - changed filtering sequence: MOVETO filters are now checked before
     DENY filters

   - the keyword BODY does now apply on rules instead of filters, filter
     behavior was updated
	
Sat Sep  9 15:24:00 CEST 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * configure.ac:

   - updated output for some options

   - updated version to 0.5.2

 * m4/openssl.m4:

   - updated output for option

 * src/murx.cxx:

   - BUGFIX: encapsuled getopt.h header into extern "C"-block to avoid
             compiler errors
   - updated output for --help

 * src/Makefile.am:

   - the source files getopt.c and getopt1.c are now only compiled when needed

 * src/RFC822Scanner.lxx:

   - check only for newline in mail bodies now to avoid parser errors when
     using BODYLINES-option and receiving manipulated messages

 * src/Session.cxx:

   - removed unused code (was commented out -> no functional change)

Sun Jul  9 00:56:00 CEST 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/murx.cxx:

   - BUGFIX: (getopt) added ":" for required parameter (-v|--verbose)

Sat Jul  8 08:30:00 CEST 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * contrib/wrapper_murx.bash:

   BUGFIX: searching for amount of mails in the first _three_ lines instead
           of just looking in line 2

Fri Jul  7 23:30:00 CEST 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/Session.cxx:

   BUGFIX: set action to ALLOW before checking for MAXSIZE_ALLOW to be sure,
           that action is set correctly.

Sat Jun 10 15:52:00 CEST 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * man/murxex.5, examples/murxrc:

   - example for body line filters added

 * man/murxrc.5:

   - updated description for BODYLINES

   - filters have optional preceeding BODY now for body line filters

 * src/Filter.cxx, src/Filter.hxx:

   - new attribute bool only_check_body_lines with getter and setter

 * src/murx.cxx:

   - changed conformance message fro RFC822 to RFC2822

 * src/POP3Protocol.cxx:

   - An End of header (TOP-command) is indicated by \r\n.\r\n which was deleted.
     Now we only delete .\r\n because the RFC822Parser looks for the trailing \r\n!

 * src/RCParser.yxx, src/RCScanner.lxx:

   - new keyword: BODY

 * src/RFC822Parser.yxx, src/RFC822Scanner.lxx:

   - minor changes (less keywords)

 * src/Session.cxx:

   - changed filtering behaviour for body lines: Only filters indicated with BODY
     are checked now

 * src/testRCParser.cxx: removed function print_rules() as the print()-method of
                         the filters provides the same functionality

Wed Apr  5  9:00:00 CEST 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/murx.cxx:

   - added support for command line option -n|--no-action
     (read the rcfile and print errors and exit)

 * src/RCScanner.lxx:

   - BUGFIX: removed redefinition of sub_rcfile which overwrites a global value

Sun Mar 24 18:22:00 CET 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/RFC822Scanner.lxx: removed support for some header fields (not used)

 * src/RFC822Parser.yxx:

   - removed support for some header fields (not used)

   - added some rfc2822-conformance checks

 * src/Header.hxx, src/Header.cxx:

   - removed support for some header fields (not used)

   - changed name of conformance flag to rfc2822_conformant

 * src/murx.cxx: check for empty field in logmessage (empty from, subject or date)

Sun Feb 19 14:15:00 CET 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/Header.hxx, src/Header.cxx:
 
   - added new boolean: rfc822_conformant
 
 * src/EventHandler.hxx: added virtual destructor

 * src/SIGINTHandler.hxx, src/SIGINTHandler.cxx,
   src/SIGALRMHandler.hxx, src/SIGALRMHandler.cxx:

   - added default constructor and destructor
 
 * src/murx.cxx:
 
   - added handling of non-rfc822-comformant messages
 
 * src/Session.hxx, src/Session.cxx:
 
   - added handling of non-rfc822-comformant messages
   
   - added new constant: DELETE_MAXLENGTH_EXCEEDED
   
   - added handling for exceeded maxlength of header lines
   
 * src/IMAPProtocol.cxx, src/POP3Protocol.cxx:
 
   - added new log message if a LexicographicalErrorException was
     caught -> new RFC822Parser
 
 * src/Preferences.cxx:
 
   - set initial value for maxlength in constructor now
 
 * src/RFC822Parser.hxx: changed initial values for line and subject_line_index
 
 * src/RFC822Scanner.lxx, src/RFCParser.yxx:
 
   - updated DEBUG messages
   
   - updated patterns
   
   - moved handling for lines with two leading dots to the scanner
   
 * src/testRFC822Parser.cxx:
 
   - corrected type of subject_line_index
   
   - added message for rfc-conformance
   
Sun Jan 15 18:00:00 CET 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>
 
 * configure.ac: added FlexLexer.h to the checked header files

Wed Jan 11 19:35:00 CET 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>
	
 * doc/Doxyfile.in:

   - added classes for event handling

   - added MatchData.cxx and MatchData.hxx

 * man/Makefile.am:

   - added clean-generic target for deleting man3 directory generated
     by doxygen 

 * po/de.po: updated translation

 * po/POTFILES.in: updated file list

 * src/Session.cxx:

   - added check for probally underrunning int current_account 

Sun Jan  8 09:26:00 CET 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/Protocol.hxx:

   - removed attribute Murx::Net* sock

 * src/IMAPProtocol.hxx, src/POP3Protocol.hxx:

   - added Net::Socket sock

 * src/Session.cxx:

   - now we do not check any rules on non-rfc822-conformant messages
     because the header we read may be broken

Sat Jan  7 18:15:00 CET 2006  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * nearly every file (*.hxx and *.cxx):

   - changed pointers to c++-style references wherever possible

 * src/Account.hxx, src/Account.cxx:

   - added method clear()

 * src/Exceptions.hxx: added default constructor

 * src/Header.hxx, src/Header.cxx:

   - added destructor

   - set default values in constructor for from, subject and date

 * src/IMAPProtocol.cxx, src/POP3Protocol.cxx:

   - added default constructor

   - changed NULL to 0

   - updated the method fetch_next_header()

 * src/IMAPProtocol.hxx, src/POP3Protocol.hxx:

   - added attribute account

   - added default constructor

   - changed pointers to c++-style references

 * src/Logger.hxx, src/Logger.cxx:

   - changes get_instance() interface: only takes index as argument
     now (and no filename -> get from preferences) 

 * src/Match.hxx, src/Match.cxx:

   completely rewritten container for MatchData objects, which stores:

   - all matches of a filter

   - the filter action (allow, deny, etc.)

   - a boolean if the filter matches completely

 * src/MatchData.hxx, src/MatchData.cxx:

   new class MatchData derived from the old class Match:

   - used for storing matched patterns and addtional match infos

   - added default constructor

 * src/murx.cxx:

   - changed NULL to 0

   - added support for new keyword NONCONFORMANT

   - updated output for matches

 * src/Preferences.hxx, src/Preferences.cxx:

   - new attributes nonconformant_action, *_folder with getters and
     setters

   - updated constructor and destructor

 * src/Protocol.hxx:

   - removed attribute account

 * src/RCParser.hxx: removed dynamic rc_filter and rc_account

 * src/RCParser.yxx:

   - added support for new keyword NON-?CONFORMANT

   - removed memory leak

   - removed pointers whereever possible and using references now

   - throwing Exception now if a filter was defined before any
     accounts (and not silently ignoring them)

   - using new Utils::chop() and Utils::tolower() now

 * src/RCScanner.lxx:

   - added support for new keyword NON-?CONFORMANT

   - fixed memory leak

   - fixed output of correct line number

   - using new Utils::chop() now

 * src/Session.cxx: support for NONCONFORMANT-keyword

Fri Dez 30 18:35:00 CET 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/Makefile.am:

   - added new signal handler classes to file list

   - added $(INTLLIBS) for linking i18n-libs to murx

   - added MatchData.cxx to the sources

Mon Dez 26 17:00:00 CET 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/EventHandler.hxx, SignalHandler.hxx, src/SignalHandler.cxx, 
   src/SIGINTHandler.hxx, SIGINTHandler.cxx, SIGALRMHandler.hxx,
   src/SIGALRMHandler.cxx

   - added for more object-orientated signal handling (SIGINT,
     SIGALRM => timeouts)

Fri Dez 23 16:45:00 CET 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * Filter.cxx

   - excluded non-POSIX constants for non-GNU style header file regex.h

 * Socket.hxx

   - removed header file ctime

   - included header file sys/time.h

Sun Sep 25 10:00:00 CEST 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * Makefile.am

   - added IMAPProtocol to file list

 * IMAPProtocol.hxx, IMAProtocol.cxx

   - new files

 * Header.hxx, Header.cxx

   - added methods and new attribute folder (string)

 * Logger.hxx, Logger.cxx

   - completely rewritten

 * POP3Protocol.hxx, POP3Protocol.cxx

   - support for network logging (rcfile keyword NETLOG)

 * Protocol.hxx

   - included IMAP in list of supported protocols

 * Session.hxx, Session.cxx

 * murx.hxx

   - removed namespace Main

 * murx.cxx

Sun Sep 18 22:15:00 CEST 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * src/Exceptions.hxx

   - scanner now throws a CouldNotOpenFile exception if a filename
     leads to nirvana

   - CouldNotOpenFile is a IOException

   - updated all translatable strings

Sun Jun 12 10:15:00 CEST 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * updated contrib/wrapper_murx.bash

Sun May 29 19:11:00 CEST 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * examples/murxrc

   - default values are now commented out

   - changed deprecated keyword LOGIN to USER in account definitions

Sun May 29 15:50:00 CEST 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * po/Makevars:

   - added mail address for bug reports

 * po/POTFILES.in:

   - added TCPSocket.cxx and TLSSocket.cxx

Mon May 16 14:14:00 CEST 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * murx.cxx:

   - changed behaviour of header logging. now every header is written
     to headerfile

   - corrected output for --help

 * separated class Match from Header

 * Match.cxx, Match.hxx:

   - removed unnecessary is_header_line in negative matches

 * Score.cxx:

   - corrected copy constructor (maxsize and minsize are now copied
     from filter)

 * Session.cxx:

   - removed unnecessary is_header_line in negative matches

   - maxsize and minsize are now added to header in check_scores

   - corrected comments

Sun May  8 17:00:00 CEST 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * murx.cxx:

   - added support for option -H <headerfile>

 * Session.cxx:

   - FIX: message count is now decreased when a duplicate message
          was deleted

   - FIX: deletion of a message no longer leads to a STL exception
          (out_of_range) in method delete_message(account,id) when
          filtering more than one account

 * Logger.cxx:

   - error messages (logfile can't be openend) are now printed to stderr

Sat Apr  2 12:26:00 CEST 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * RCParser.yxx:

   - added definiton of DEBUG_MSG for debugging

   - added support for setting default values for PORT depending on
     PROTOCOL

 * Account.cxx:

   - constructor: Value of port is set to 0 (invalid value)

     this is needed for the RCParser.yxx check_account() function to
     check whether a value for port was defined in the account defintion
     or not

Sun Mar  6 14:23:00 CET 2005  Kai Hildebrandt  <kai.hildebrandt@web.de>

 * Prepared sourcetree for upload to sourceforge.net
