2003-08-09  Sergey Poznyakoff 

	* elisp/anubis-mode.el: Compatibility fix.
	* README: Updated

	* testsuite/etc/add.in: Reformatted using anubis-mode.
	* testsuite/etc/del.in: Likewise.
	* testsuite/etc/empty.in: Likewise.
	* testsuite/etc/entire.in: Likewise.
	* testsuite/etc/gpg.in: Likewise.
	* testsuite/etc/mod-body.in: Likewise.
	* testsuite/etc/mod-header.in: Likewise.
	* testsuite/etc/remail.in: Likewise.
	* testsuite/etc/simple.in: Likewise.
	* testsuite/etc/std.in: Likewise.
	* testsuite/etc/tlsoneway.in: Likewise.
	* testsuite/etc/trigger.in: Likewise.

2003-08-08  Sergey Poznyakoff 

	* elisp/anubis-mode.el (anubis-keyword-dict): Added font-lock
	support.
	(anubis-check-syntax): New command.
	* src/rcfile.y (rc_set_debug_level): Default debugging level is 0.
	* testsuite/etc/std.pin: Provide an explicit argument to
	--check-config
	* doc/anubis.texi (Invoking Anubis): Improved the description of
	--check-config option.
	* README: Updated
	
2003-08-06  Sergey Poznyakoff

	* elisp/Makefile.am: Bugfix, the el file was not compiled
	* elisp/anubis-mode.el (anubis-mode-map): Changed '?' mapping
	to '\e?'.
	* elisp/.cvsignore: Updated

2003-08-05  Sergey Poznyakoff 

	* Makefile.am (SUBDIRS): Added elisp
	* configure.ac: Detect the emacs lisp directory.
	* elisp: New directory
	* elisp/Makefile.am: New file
	* elisp/anubis-mode.el: New file
	* README: Updated
	* TODO: Updated
	* NEWS: Updated

2003-07-30  Sergey Poznyakoff

	* doc/anubis.texi (Remailers): Document the ways of
	GPG signing/encrypting the messages being remailed.

2003-07-26  Sergey Poznyakoff  

	* src/tunnel.c (get_boundary): Bugfix. Operate on the unaltered
	boundary line.

2003-07-21  Sergey Poznyakoff 

	* testsuite/etc/add.in (body-append): Use TOP_SRCDIR.

2003-07-21  Wojciech Polak

	* testsuite/etc/add-body-file.pat: New test.
	* testsuite/etc/add.in: Added rule for add-body-file.pat.
	* testsuite/etc/Makefile.am: Updated.
	* testsuite/data/append.txt: New auxiliary file.
	* testsuite/data/Makefile.am: Updated.
	* testsuite/anubis/base.exp: Added add-body-file.pat.

2003-07-21  Wojciech Polak

	* src/files.c (message_append_signature_file): Bugfix.
	* src/headers.h (message_append_signature_file): Changed prototype.
	* src/rc.c: Test YES-OR-NO arguments with strcasecmp().
	* src/gpg.c: Likewise.

	* configure.ac: Bump to 3.9.91.
	* src/main.c: Likewise.

2003-07-20  Wojciech Polak

	* NEWS: Updated.
	* TODO: Likewise.
	* src/rc.c: Moved KW_DROP_UNKNOWN_USER to init_supervisor_kw.
	(KW_ALLOW_NOTPRIVILEGED): Renamed to KW_USER_NOTPRIVILEGED.
	* src/list.h: Clean up with prototypes.
	* src/gpg.c: Likewise.

2003-07-20  Sergey Poznyakoff

	* NEWS: Updated
	* configure.ac: Check if u_char is defined.
	* src/env.c: Force the argument to ctype calls to be unsigned char.
	* src/exec.c: Likewise.
	* src/map.c: Likewise.
	* src/misc.c: Likewise.
	* src/proxy.c: Likewise.
	* src/rcfile.l: Likewise.
	* src/tunnel.c: Likewise.
	* testsuite/mta.c: Likewise.

2003-07-18  Wojciech Polak

	* doc/anubis.texi: Updated.
	* examples/2anubisrc: Likewise.
	* examples/anubisrc.guile: Likewise.

2003-07-18  Sergey Poznyakoff 

	* src/message.c (message_modify_headers): Expand ampersands
	to the old header value.
	* src/rc.c: Added support for `control-priority' keyword.
	* src/rcfile.l: Added `trigger' keyword.
	
	* TODO: Updated
	* doc/anubis.texi: Updated
	* examples/1anubisrc: Changed `rule' to `trigger'.
	* examples/anubisrc.guile: Likewise.
	* testsuite/etc/gpg.in: Likewise.
	* testsuite/etc/remail.in: Likewise.
	* testsuite/etc/std.in: Likewise.
	* testsuite/etc/trigger.in: Likewise.

2003-07-15  Sergey Poznyakoff

	* src/rc.c (anubis_add_section): Initialize prio member.
	(open_rcfile): For CF_INIT and CF_SUPERVISOR: initialize
	parse_tree;
	(control_parser): Implementes user-only and system-only keywords.
	* src/rcfile.h (enum section_prio): New priorities.
	(rc_section_list_destroy,rc_section_destroy): Changed proto.
	* src/rcfile.y: Updated to new signatures of
	rc_section_list_destroy,rc_section_destroy
	(rc_section_link): Use new priorities.

2003-07-15  Wojciech Polak

	* src/main.c: Bump to 3.9.90.
	* src/mem.c: Minor changes.
	* src/mem.h: Likewise.
	* doc/anubis.texi: Updated.

2003-07-15  Sergey Poznyakoff 

	* TODO: Updated
	* examples/1anubisrc: Updated to new syntax
	* examples/2anubisrc: Likewise.
	* src/rc.c (anubis_section_set_prio): New function.
	(open_rcfile): Do not destroy the saved tree before processing the
	new file.
	(control_parser): Handle new keyword rule-priority
	(rule_section_init): Initialize prio member
	(rcfile_process_section): Process all sections whose names match,
	not just the first of them.
	* src/rcfile.h (enum section_prio): New datatype
	(struct rc_secdef.prio): New member
	* src/rcfile.y (begin): Signal error if the section has already
	been declared.
	(rc_section_link): Honor section priority when linking.
	* src/regex.c (anubis_regex_free): May be called with NULL
	argument.

2003-07-13  Sergey Poznyakoff

	* src/rcfile.h (lex_clear_state,error_sync_begin): New functions
	* src/rcfile.l (lex_clear_state,error_sync_begin): New functions
	Complain about invalid characters.
	* src/rcfile.y: Continue parsing after encountering errors.
	
	* doc/anubis.texi: Updated
	* doc/Makefile.am: Added DISTCLEANFILES
	
2003-07-10  Wojciech Polak

	* doc/anubis.texi: Updated

2003-07-10  Sergey Poznyakoff

	* doc/anubis.texi: Updated

2003-07-06  Sergey Poznyakoff 

	* src/headers.h (SYNTAX): New error displaying method,
	used for syntax errors.
	* src/errs.c (anubis_error): Do not prefix the message
	with '>>' for SYNTAX method.
	* src/rc.c: Renamed ssl keywords.
	New command "body-clear".
	* src/rcfile.y: Use SYNTAX method for error messages.
	* testsuite/etc/tlsoneway.in: Use new ssl keywords.

2003-07-01  Sergey Poznyakoff

	* configure.ac: Define M4_DEFS
	(--with-gpgme,--with-pcre,--with-pam,--with-tcp-wrappers): Bugfix:
	correctly handle both forms (with -- without).
	* src/Makefile.am: Add @LIBGNUTLS_LIBS@ and @LIBGNUTLS_CFLAGS@
	* testsuite/Makefile.am: Likewise.
	* src/headers.h: Fixed heuristics of defining HAVE_GNUTLS.
	* src/rcfile.y (parse_error): New function. Used instead of
	yyerror() wherever appropriate.
	* src/tls.c: Provide typecasts for gnutls_transport_ptr data.
	* testsuite/mta.c: Likewise.
	* testsuite/anubis/base.exp (std.pat): Provide full path.
	* testsuite/etc/std.pat: Removed.
	* testsuite/etc/std.pin: New file.
	* testsuite/etc/Makefile.am: Remove std.pat. Add std.pin
	* testsuite/etc/.cvsignore: Add std.pat.
	* testsuite/etc/std.in: Conditionally include parts of the
	file depending on the compilation settings.
	* testsuite/lib/anubis.exp (anubis_pat): Allow for full pathname
	of the pat-file.
	* doc/anubis.texi: Minor change

2003-07-01  Sergey Poznyakoff 

	* src/rc.c: Forgotten to commit

2003-06-30  Sergey Poznyakoff 

	* configure.ac: Use AM_PATH_LIBGNUTLS
	* m4/libgnutls.m4: New file.
	* m4/Makefile.am: Added libgnutls.m4
	* src/headers.h (anubis_regex_free): Changed prototype.
	* src/map.c (translate_section): Removed.
	* src/rc.c (anubis_add_section): Initialize allow_prog member
	* src/rcfile.h (struct rc_secdef.allow_prog): New
	member. 
	* src/rcfile.y: Improved diagnostics.
	* src/regex.c (ASSERT_RE): New macro
	(anubis_regex_match,anubis_regex_replace)
	(anubis_regex_refcnt,anubis_regex_compile): Use ASSERT_RE
	(anubis_regex_free): Changed proto
	* testsuite/etc/std.in: Updated
	* testsuite/etc/std.pat: Updated

2003-06-29  Wojciech Polak

	* src/daemon.c (loop): Added support for DROP-UNKNOWN-USER.
	* src/rc.c (control_parser): Likewise.
	* src/headers.h: Added T_DROP_UNKNOWN_USER.
	* TODO: Updated.

2003-06-29  Sergey Poznyakoff  

	* src/rcfile.y: Force R_EXACT on r_msgpart production.
	(rc_node_print,rc_inst_print): Use anubis_regex_print.
	* src/headers.h: Fixed two typos.
	(anubis_regex_print): New function.
	* src/regex.c (anubis_regex_print): New function.
	* testsuite/etc/std.pat: Updated

2003-06-29  Sergey Poznyakoff 

	* src/headers.h: Altered regexp modifiers.
	(re_set_type,re_typeof,re_set_flag,re_clear_flag): New macros
	(message_remove_headers,message_modify_headers): Changed
	declarations.
	* src/message.c (message_remove_headers)
	(message_modify_headers): Changed declarations.
	* src/rcfile.h (struct rc_inst.type): Changed type
	* src/rcfile.l: New keyword "regex"
	* src/rcfile.y: Lots of changes to allow for more
	flexible handling of regular expressions. Improved
	diagnostics.
	* src/regex.c: New pattern matching type R_EXACT.

	* testsuite/etc/del.in: Use new syntax.
	* testsuite/etc/mod-body.in: Likewise.
	* testsuite/etc/mod-header.in: Likewise.

2003-06-27  Sergey Poznyakoff

	* src/headers.h (message_modify_body): Added prototype.
	* src/mem.h (xfree,xfree_pptr): Made safer.
	* src/list.c: Standartize usage of xfree() and xfree_pptr().
	* src/message.c: Likewise.
	* src/rcfile.y: Likewise.
	* src/regex.c: Likewise.
	* src/tunnel.c: Likewise.

2003-06-27  Sergey Poznyakoff

	* src/daemon.c: Get rid of the unneeded locals
	* src/headers.h (smtp_session): Changed proto.
	* src/rcfile.l: Allow the use of '\' to escape newlines
	* src/tunnel.c (process_command,transfer_command): Rewritten
	(rest of functions): Get rid of the unneded locals.

	* TODO: Updated
	* doc/anubis.texi: Updated.
	
2003-06-22  Sergey Poznyakoff

	* src/message.c (message_init): Create header and command
	lists.
	* src/tunnel.c: Fixed memory leaks.

2003-06-21  Sergey Poznyakoff 

	* src/daemon.c (_stdio_read): Minor fix.
	(set_nonblocking): Not needed anymore.
	(stdinout): Removed calls to set_nonbloking.
	* src/net.c (struct io_data): Use separate buffers for client
	and server.
	(mread): Likewise.

2003-06-20  Sergey Poznyakoff 

	* src/message.c (message_modify_body): Allow the NULL value
	(message_modify_headers): Allow regexp keys
	* src/rcfile.y: Likewise
	* src/regex.c (anubis_regex_replace): Replace all occurrences
	in the string.
	* testsuite/mta.c: Bugfix
	* testsuite/etc/mod-body.in: Test unenclosed patterns.
	* testsuite/etc/mod-header.in: Test new modify features.
	* testsuite/etc/mod-header.pat: Likewise.
	
2003-06-19  Wojciech Polak

	* testsuite/etc/mod-header.pat: New file.
	  Testing the modify header mechanism.
	* testsuite/etc/mod-header.in: New file.
	* testsuite/etc/Makefile.am: Updated.
	* testsuite/anubis/base.exp: Added mod-header.pat.
	* TODO: Updated.

2003-06-19  Sergey Poznyakoff 

	* TODO: Updated
	* configure.ac: Add AC_PROG_YACC, AM_PROG_LEX
	* src/guile.c: use non-destructive eval
	* src/headers.h (anubis_regex_replace): New function
	* src/regex.c: Likewise.
	* src/message.c (message_modify_body): New function.
	Implements "modify body [key] text" statement.
	* src/rcfile.y: Minor cleanup
	(inst_eval): Call message_modify_body().
	* testsuite/anubis/base.exp: Run mod-body test
	* testsuite/anubis/gpg.exp: Add final newline
	* testsuite/etc/mod-body.pat: New file
	* testsuite/etc/mod-body.in: New file
	* testsuite/etc/Makefile.am: Added new files

2003-06-17  Wojciech Polak

	* doc/anubis.texi: Updated. Reorganized a bit.

2003-06-11  Wojciech Polak

	* configure.ac: Bump to 3.9.90 (pretest version).
	* NEWS: Added entry for 4.0.
	* Makefile.am (AUTOMAKE_OPTIONS): Added readme-alpha.
	* README-alpha: New file.

2003-06-07  Wojciech Polak

	* examples/pam/anubis.allow: Added default unprivileged
	  user `nobody'.
	* po/POTFILES.in: Updated.
	* README: Likewise.

2003-06-07  Wojciech Polak

	* src/Makefile.am: Bugfix. Added missing -I$(top_srcdir)/intl.

2003-06-07  Wojciech Polak

	* src/gettext.h: New file.
	* src/headers.h: Include "gettext.h" instead of <libintl.h>.
	* src/Makefile.am (EXTRA_DIST): Added gettext.h.

2003-06-06  Wojciech Polak

	* src/obstack.c: Provide newer version.
	* src/obstack.h: Likewise.
	* src/getopt1.c: Likewise.
	* src/getopt.c: Likewise.
	* src/getopt.h: Likewise.

2003-06-06  Wojciech Polak

	* src/errs.c (anubis_error): Removed unneeded HAVE_VSNPRINTF.
	* src/log.c (mprintf): Likewise.
	* testsuite/mta.c: Clean up with prototypes.

2003-06-02  Sergey Poznyakoff

	* src/net.c (_debug_printer): Avoid splitting debug transcript
	  lines.

2003-05-30  Wojciech Polak

	* configure.ac: Added new option --with-unprivileged-user.
	  Use the AC_HELP_STRING where appropriate.
	* src/daemon.c (set_unprivileged_user): Support the new
	  DEFAULT_UNPRIVILEGED_USER.

2003-05-29  Wojciech Polak

	* configure.ac: Set AM_GNU_GETTEXT_VERSION(0.12.1).
	* m4/Makefile.am: Added nls.m4 and po.m4.
	* po/Makevars: Added MSGID_BUGS_ADDRESS.
	* Makefile.am: Bumped to GNU Automake 1.7.5.

2003-05-28  Sergey Poznyakoff

	* src/tls.c (start_ssl_server): Bugfix
	* testsuite/etc/tlsoneway.in: Use TOP_SRCDIR to access
	  PEM file.

2003-05-27  Sergey Poznyakoff

	* TODO: Updated
	* src/auth.c: Removed superfluous return
	* src/log.c: Removed unneeded HAVE_VSNPRINTF
	* src/tls.c: Provide push/pull functions to work with local
	  mailers.
	* src/tunnel.c (transfer_command): TLS can be used with
	  local mailers.
	* testsuite/mta.c: Added TLS support (only with GnuTLS).

	* testsuite/etc/tlsoneway.pat: New file.
	* testsuite/etc/tlsoneway.in: New file.
	* testsuite/etc/Makefile.am: Added new files.
	* testsuite/anubis/tls.exp: New file.
	* testsuite/anubis/DISTFILES: Added new files.

	* testsuite/data/anubis.pem: New file
	* testsuite/data/Makefile.am: Added new file.

2003-05-11  Wojciech Polak

	* src/help.c (print_usage): Added missing command line options.
	* scripts/redhat.init: Small fix.

2003-05-10  Sergey Poznyakoff

	* src/tls.c: More diagnostics.
	* src/tunnel.c (process_command): Bugfix. Inform the client
	  that we are willing to handle TLS.

2003-05-10  Sergey Poznyakoff

	Implemented iterators instead of non-reentrant
	list_first/list_next calls.
	
	* src/list.h (list_first,list_next,list_remove_current)
	  (list_append_list): Removed.
	  (ITERATOR): New datatype.
	  (iterator_create,iterator_destroy,iterator_current)
	  (iterator_first,iterator_next): New functions.
	* src/list.c: Likewise.
	
	* src/extern.h: Use iterator functions.
	* src/headers.h: Likewise.
	* src/daemon.c: Likewise.
	* src/gpg.c: Likewise.
	* src/guile.c: Likewise.

	* src/map.c: Likewise.
	* src/message.c: Likewise.
	* src/misc.c: Likewise.
	* src/quit.c: Likewise.
	* src/rc.c: Likewise.
	* src/rcfile.h: Likewise.
	* src/rcfile.y: Likewise.
	* src/tunnel.c: Likewise.

	* src/tls.c: More diagnostics.
	
2003-05-08  Wojciech Polak

	* configure.ac: Fixed OpenSSL compilation (broken with_gnutls=no).
	* src/ssl.c (start_ssl_server): Added missing SESS *sd.
	  (_ssl_strerror): Changed return type to static const char *.

2003-05-02  Wojciech Polak

	* headers.h: Clean up with prototypes. Moved some stuff
	  to extern.h and vice versa.
	* extern.h: Likewise.
	* list.h: Clean up with prototypes.
	* rcfile.h: Likewise.
	* rcfile.l: Likewise.
	* rcfile.y: Likewise.
	* rc.c: Likewise.
	* regex.c: Likewise
	* main.c: Likewise.
	* map.c: Likewise.
	* net.c: Likewise.
	* guile.c: Likewise.
	  (list_to_args): Put parentheses around assignment.
	* tunnel.c: (write_header_line): Put parentheses
	  around assignment.
	* misc.c (insert): Convert to a static function.
	* env.c (get_options): Added missing option `c'
	  to getopt_long().

2003-04-26  Wojciech Polak

	* doc/anubis.texi: Changed @dircategory to Email.
	* TODO: Updated.

2003-04-08  Wojciech Polak

	* doc/anubis.texi: Clean up. Removed some old stuff.

2003-04-06  Sergey Poznyakoff

	* src/tunnel.c: Use new encryption wrappers.
	* src/daemon.c: Likewise. 
	* src/net.c: Likewise.
	* src/errs.c (socket_error): Changed declaration.
	* src/extern.h (secure_struct): Removed implementation-dependent
	  members.
	* src/headers.h (T_SSL_CLIENT,T_SSL_SERVER): Not needed anymore.
	  (net_io_t,net_close_t,strerror_t): New data types.
	  (socket_error): Changed proto.
	  (net_set_io,net_close): New function.
	* src/main.c (main): Call init_ssl_libs.
	
	* src/proxy.c: Reflect changes to the declaration of
	  socket_error().
	* src/quit.c (quit): Removed implementation-dependent calls.
	* src/ssl.c: Rewritten to make more modular.
	* src/tls.c: Likewise.

2003-03-10  Wojciech Polak

	* testsuite/etc/trigger.pat: New file. Testing
	  the Trigger mechanism.
	* testsuite/etc/trigger.in: New file.
	* testsuite/etc/Makefile.am: Updated.
	* testsuite/anubis/base.exp: Added trigger.pat.
	* TODO: Updated.

2003-03-07  Wojciech Polak

	* src/quit.c (free_mem): Removed unused variables.
	* src/main.c (struct rm_struct): Removed.
	* src/extern.h: Likewise.

	* src/esmtp.c: Fixed preprocessor directives.
	* src/proxy.c: Likewise.
	* src/exec.c: Likewise.
	* src/net.c: Likewise.
	* src/ssl.c: Likewise.

2003-03-07  Sergey Poznyakoff

	* po/POTFILES.in: Added missing files.
	* src/map.c (translate_parser): Synchronized with the
	  yesterday's changes.

2003-03-07  Sergey Poznyakoff

	* TODO: Updated
	* examples/anubis.scm: Major changes.
	* guile/rot-13.scm (rot-13): A universal function for rotating
	  the message body, its subject, or both.
	* src/gpg.c: Removed obsolete kewords.
	* src/rc.c: Likewise.
	* testsuite/anubis/guile.exp: Added rot-13 test
	* testsuite/etc/rot-13.pat: New file.
	* testsuite/etc/Makefile.am: Added rot-13.pat
	* testsuite/etc/remail.in: Modified to support rot-13 test as
	  well.
	* testsuite/etc/remail.pat: Fixed remailer header.
	
2003-03-06  Sergey Poznyakoff

	* guile: New subdirectory
	* guile/Makefile.am: New file.
	* guile/remailer.scm: New file.
	* guile/rot-13.scm: Moved from ...
	* examples/rot-13.scm: ... here
	* examples/Makefile.am: Updated.
	* Makefile.am: Added new subdir (guile)
	* configure.ac: Likewise.
	  Minor fix for handling --with-gnutls and --with-openssl options.
	* examples/anubis.scm: Added extra arguments to interface
	  functions.
	* src/daemon.c: Use ngettext wherever appropriate.
	* src/ssl.c: Likewise.
	* src/tls.c: Likewise.
	
	* src/exec.c (exec_argv): new function.
	* src/guile.c (guile_process_proc): Pass any number of additional
	  parameters to the procedure.
	  (guile_parser): Reflect changes to the prototype.
	  
	* src/gpg.c (gpg_parser): Reflect changes to the prototype.
	* src/headers.h (message_external_proc): Changed proto
	  (exec_argv): New function.
	* src/list.c (list_iterate): Bugfix
	  (list_item): New function.
	* src/list.h: (list_item): New function.
	* src/message.c (message_external_proc): Changed proto
	* src/rc.c (control_parser,tls_parser,rule_parser): Reflect
	  changes to the prototype.
	* src/rcfile.h (struct rc_asgn): Changed type of 'rhs'
	  (rc_kw_parser_t): Changed third argument type.
	* src/rcfile.l: Lots of changes to make LIT state more
	  intellectual.
	* src/rcfile.y (asgn_stmt) production modified to collect
	  whitespace-separated arguments at the right of the keyword,
	  instead of just one line.
	  
	* testsuite/data/Makefile.am: Fixed creation gpg keyrings.
	* testsuite/etc/remail.pat: New file
	* testsuite/etc/remail.in: New file
	* testsuite/etc/Makefile.am: Added new files
	* testsuite/lib/anubis.exp (anubis_expect_list,anubis_test): Be
	  more stringent in testing.
	* testsuite/etc/gpgcrypt.pat: Modified to reflect recent changes
	  to anubis.exp.
	* testsuite/etc/gpgsign.pat: Likewise.
	* testsuite/anubis/guile.exp: New file
	* testsuite/anubis/DISTFILES: Updated
	
2003-03-03  Wojciech Polak

	* examples/1anubisrc: Updated to the new syntax.
	* testsuite/etc/std.in: Updated.
	* testsuite/etc/std.pat: Likewise.

2003-03-03  Sergey Poznyakoff

	* TODO: Updated
	* src/headers.h (rcfile_call_section): New function
	* src/rc.c: Likewise.
	* src/rcfile.h (inst_stop, inst_call): New instruction types.
	  (rc_call_section): New function.
	* src/rcfile.y: Allow regexp options to appear on both sides of
	  the equal sign.
	  Implemented "call" and "stop" statements.
	* testsuite/etc/std.in: Test for regexp option on the left from
	  the '='.

2003-03-03  Wojciech Polak

	* src/gpg.c (gpg_free): New function. Free unused memory.
	* src/headers.h (gpg_free): Added prototype.
	* src/quit.c (free_mem): Call gpg_free().

2003-02-28  Wojciech Polak

	* configure.ac: Bumped to 3.9.0 (unreleased, internal version).
	* src/main.h: Moved all the stuff to main.c. Removed main.h.
	* src/files.c (message_append_signature_file): Fixed prefix.
	* src/main.c: Removed unused ropt variable.
	* src/extern.h: Likewise.
	* src/list.h: Added missing copyright.
	* src/errs.c: Fixed preprocessor directives.
	* src/log.c: Likewise.
	* src/headers.h (message_append_text_file): Added prototype.
	  (message_append_signature_file): Likewise.
	* src/Makefile.am: Removed main.h.

2003-02-28  Sergey Poznyakoff

	User-visible changes:
	  New syntactical entities:

		add header[KEY] VALUE
		add body VALUE
		remove header[KEY]
		modify header[KEY] [NEW-KEY] VALUE

	("header" may be omitted). KEY is (currently) the header name. It
	may be a regular expression matching a set of header names
	for "remove". [NEW-KEY] in "modify" statement is optional.

	  Added support for "here document" (see testsuite/etc/add.in
	for a sample).

	  Allow to select signer id with gpg-sign.
	
	* configure.ac: Use -ggdb instead of -g if gcc is being used.
	* src/message.c: New file.
	* src/Makefile.am: Added message.c
	* src/extern.h (message): Removed.
	* src/main.h: Likewise.
	* src/headers.h (T_BOUNDARY): Removed macro.
	  (message_modify_headers): Changed declaration
	  (message_add_body,message_init,message_free): New functions.
	* src/gpg.c (struct gpg_struct): New member "inited".
	  (gpg_sign): Allow to select the signers IDs
	  (gpg_parser): Call gpgme_init whenever necessary.
	* src/misc.c: (header_assoc): Remove any leading whitespace from
	  the header field value.
	* src/quit.c (free_mem): Removed references to message.
	* src/rc.c (rule_parser et al.): Removed "add", "remove" and
	  "modify". These are reserved keywords and are handled by the
	  main parser code.
	* src/rcfile.h (RC_INST,enum rc_inst_opcode): New datatypes.
	  (struct rc_stmt): New member v.inst.
	* src/rcfile.l: Added new keywords: BODY, ADD, REMOVE, MODIFY,
	  STOP, CALL. The latter two are reserved for future use.
	  Removed support for unquoted regular expressions.
	  Do not try to interpret backslashes in front of numbers
	  (regexp backreferences).
	  Added shell-like "here document" construction.
	* src/rcfile.y: Support for ADD, REMOVE, and MODIFY instructions.
	  Removed support for unquoted regular expressions.
	* src/tunnel.c: Removed global variable "message".
	  Moved all message-specific functions to message.c
	* testsuite/anubis/base.exp: Added new test (append to the body).
	* testsuite/anubis/gpg.exp: Added new test (GPG signing)
	* testsuite/etc/add-body.pat: New file.
	* testsuite/etc/gpgsign.pat: New file.
 	* testsuite/etc/add.in: New file.
	* testsuite/etc/Makefile.am: Added add-body.pat, gpgsign.pat and
	  add.in.
	* testsuite/etc/del.in: Use the new syntax.
	* testsuite/etc/simple.in: Likewise
	* testsuite/etc/std.in: Likewise.
	* testsuite/etc/std.pat: Likewise.
	* testsuite/etc/gpg.in: Likewise. Added new rule
	* testsuite/lib/anubis.exp (anubis_pat): Allow use of -re and
	  -- prefixes within the :PATTERN block
	  
	* TODO: Updated
	
2003-02-26  Sergey Poznyakoff

	Changed the message processing algorithm to process a
	message as a whole. The rcfile grammar is changed
	accordingly. The previous sources (with linie-by-line
	message processing) are tagged 'ver-3-with-per-line-proc'.
	TODO: remailer support.
	
	* src/list.c: New files.
	* src/list.h: New files.
	* src/Makefile.am: Added new files
	* src/extern.h (struct line, struct message_struct)
	  (struct gpg_struct): Removed.
	  (struct session_struct): Removed unused members.
	  (gpg, mopt): Removed
	* src/headers.h (BODY,X_ANUBIS_RULE_HEADER): New define.
	  Removed M_.* defines
	  (ASSOC, MESSAGE): New aggregate types.
	  (new_element,destroy_list): Removed.
	  (rcfile_process_cond): Removed.
	  (destroy_assoc_list, destroy_string_list): New functions.
	  (rcfile_process_section): Changed declaration.
	* src/main.h (gpg, mopt): Removed.
	* src/map.c (parse_transmap): Updated call to
	  rcfile_process_section.
	  (translate_parser): Changed declaration
	* src/files.c (check_all_files): Removed.
	  (message_append_text_file)
	  (message_append_signature_file): New functions.
	* src/gpg.c (gpg_encrypt_to_remailer, check_gpg): Removed.
	  (gpg_proc): New function.
	  (gpg_parser): Rewritten.
	* src/guile.c (guile_rewrite_line): Temporarly removed.
	  (guile_to_anubis,anubis_to_guile): Rewritten.
	  (guile_process_proc): Rewritten.
	  (guile_process_list,guile_postprocess_list)
	  (guile_postprocess_list,guile_proclist_empty): Removed.
	  (guile_parser): Rewritten.
	* src/misc.c (new_element): Removed.
	  (destroy_string_list, destroy_assoc_list): New functions.
	  (header_assoc, assoc_to_header): New functions.
	* src/quit.c (free_mem): Updated.
	* src/rc.c (control_parser,tls_parser,rule_parser): Rewritten.
	  (all_parser): Removed.
	  (rule_section_init,rc_system_init): Removed ALL section.
	  (rcfile_process_cond): Removed.
	  (rcfile_process_section): Changed declaration.
	* src/rcfile.h (RC_EXPR): New data type.
	  (enum rc_node_type): Replaced rc_node_re with rc_node_expr.
	  (struct rc_node): Likewise.
	  (struct rc_expr): New data type.
	  (struct rc_cond): Removed method member.
	  (rc_kw_parser_t): Changed declaration.
	  (rc_run_section): Likewise.
	* src/rcfile.l: Added "NOT" token.
	* src/rcfile.y: Grammar rewritten. The support for old compatibility
	  syntax (if header =^Subject) has been removed. The new syntax
	  is
		if header[Subject] "regexp"
	  Multiple conditions are allowed:

		if header[Subject] "Re: .*" and body ".*found.*"
	* src/tunnel.c: Rewritten.

	* testsuite/etc/gpg.in: Updated to new syntax.
	* testsuite/etc/std.in: Likewise.
	* testsuite/etc/simple.in: Likewise.
	* testsuite/etc/std.pat: Likewise.
	
2003-02-20  Wojciech Polak

	* configure.ac: Removed unused variables.

2003-02-20  Sergey Poznyakoff

	* testsuite/Makefile.am: Removed erroneous distclean-local
	* testsuite/data/Makefile.am: Fixed rules for generating
	  *.gpg files.
	* testsuite/data/pubring.asc: Updated
	* testsuite/data/secring.asc: New file

2003-02-20  Sergey Poznyakoff

	* configure.ac: Define ANUBIS_GPGFILES if GPG is enabled.
	* contrib/Makefile.am: Added msg2smtp.pl to EXTRA_DIST.
	* src/gpg.c: Moved configuration handler from rc.c. Added
	  new configuration keyword gpg-home for setting the GPG
	  home directory.
	* src/headers.h (gpg_section_init): New function.
	* src/rc.c: Moved gpg-specific functions to gpg.c
	* testsuite/data: New directory.
	* testsuite/data/Makefile.am:
	* testsuite/data/.cvsignore:
	* testsuite/data/pubring.asc:
	* testsuite/anubis/gpg.exp: New file. Tests GPG encryption
	* testsuite/anubis/DISTFILES: Added gpg.exp
	* testsuite/Makefile.am: Added data to SUBDIRS
	* testsuite/etc/gpgcrypt.pat: New file
	* testsuite/etc/gpg.in: New file.
	* testsuite/etc/Makefile.am: Added new files
	* testsuite/lib/anubis.exp (anubis_version): Renamed to
	  default_anubis_version to avoid name clashes.
	  (anubis_exec,anubis_expect_list,anubis_test): Improved handling
	  of pattern modifiers  (-re and --).
	  (anubis_check_capability): New function.
	  (anubis_test_file): New option -catprog.
	  (anubis_pat): Improved handling of :OPTIONS keyword,
	  Added new mode "CAT" for testing GPG encryption.
	  
2003-02-19  Wojciech Polak

	* src/main.h: Removed no longer used variable `submatch'.
	* src/extern.h: Likewise.
	* src/quit.c (free_mem): Likewise.
	* src/help.c (print_version): Minor change.

	* testsuite/mta.c (smtp_reply): Added prototype.

2003-02-19  Wojciech Polak

	* src/env.c (argv_dup): New static function.
	* src/headers.h (T_RCEXECARGS): Removed flag.
	* src/rc.c: Likewise.
	* src/quit.c: Likewise.

2003-02-18  Sergey Poznyakoff

	* src/net.c: Fixed debugging diagnostics.

2003-02-17  Sergey Poznyakoff

	* src/extern.h (struct message_struct): New member mime_hdr.
	* src/headers.h (T_ENTIRE_BODY): New flag.
	  (regex_match): Removed.
	* src/mem.c (free_pptr): Correctly handle null pointer.
	* src/rc.c (control_parser): New boolean flag `read-entire-body'.
	  When set to true causes the entire mime-encoded body to
	  be read in core. Otherwise, only the first mime part is
	  read, all the rest is passed to the server verbatim (default).
	* src/regex.c (regex_match,posixre_match): Removed
	* src/tunnel.c: Implemented new scheme of message processing.

	Added new tests:
	* testsuite/lib/anubis.exp (anubis_pat): Handle :DEL keyword.
	* testsuite/anubis/base.exp: Test removal of headers.
	* testsuite/anubis/mime.exp: New file.
	* testsuite/anubis/DISTFILES: Added mime.exp
	* testsuite/etc/del1.pat: New file.
	* testsuite/etc/del2.pat: New file.
	* testsuite/etc/del3.pat: New file.
	* testsuite/etc/del4.pat: New file.
	* testsuite/etc/del.in: New file.
	* testsuite/etc/entire.in: New file.
	* testsuite/etc/mime1.pat: New file.
	* testsuite/etc/mime2.pat: New file.
	* testsuite/etc/Makefile.am: Added new files.
	* testsuite/etc/add1.pat: Minor change.
	* testsuite/etc/add2.pat: Likewise.
	* testsuite/etc/add3.pat: Likewise.
	
2003-02-15  Wojciech Polak

	* configure.ac: Check apple-darwin by config.guess, not uname.
	  Added message info if disabling Guile support.

2003-02-11  Sergey Poznyakoff

	* testsuite/mta.c: Prevent race condition on closing the diagnostic
	  file.

2003-02-11  Wojciech Polak

	Removed ROT-13 support from main engine.

	* src/misc.c (check_rot13): Removed function.
	* src/tunnel.c (transfer_header): Removed rot13 subject encoding.
	  (transform_body): Removed check_rot13() call.
	* src/headers.h: Removed check_rot13 prototype.

	* examples/anubisrc.guile: Updated.

2003-02-11  Sergey Poznyakoff

	* Makefile.am: Added testsuite
	* configure.ac: Check for obstack, provide replacement
	  if necessary.
	  Check for reversed arguments to setvbuf.
	  Generate Makefiles under testsuite/

	* examples/anubis.scm: Split msg-process into two procedures:
	  one for rotating the subject header and another for rotating
	  the message body.
	* examples/anubisrc.guile: Updated.

	* src/obstack.c: New file. Obstack replacement for systems
	  without it.
	* src/obstack.h: Likewise.
	* src/Makefile.am: Added obstack
	* src/env.c: New options: --show-config-options displays
	  configuration options for anubis, --relax-perm-check
	  relaxes permission check on user rc file. Both are useful
	  for testsuite.
	* src/guile.c (guile_process_proc): Removed call to remcrlf.
	  (guile_postprocess_list): New function.

	* src/headers.h (T_RELAX_PERM_CHECK): New define. This bit
	  is set in topts when --relax-perm-check is given in the
	  command line.
	  (print_config_options): New function.
	  
	* src/help.c (show_config_options, print_config_options): New
	  functions.
	  (print_version): Use show_config_options.
	* src/rc.c (open_rcfile): Open only altrc if both --norc
	  and --altrc are given.
	* src/tunnel.c: Started implementing new approach for collecting
	  message header and body. Both are collected, processed and
	  only then fed to the MTA.
	  TODO: split off attachments to diminish memory consumption.

	* testsuite/: New directory
	* testsuite/Makefile.am: New file
	* testsuite/mta.c: New file
	* testsuite/.cvsignore: New file
	* testsuite/lib/: New directory
	* testsuite/lib/anubis.exp: New file
	* testsuite/lib/DISTFILES: New file
	* testsuite/anubis/: New directory
	* testsuite/anubis/base.exp: New file
	* testsuite/anubis/DISTFILES: New file
	* testsuite/etc/: New directory
	* testsuite/etc/Makefile.am: New file
	* testsuite/etc/.cvsignore: New file 
	* testsuite/etc/add1.pat: New file
	* testsuite/etc/add2.pat: New file
	* testsuite/etc/add3.pat: New file
	* testsuite/etc/empty.in: New file
	* testsuite/etc/empty.pat: New file
	* testsuite/etc/mult.pat: New file
	* testsuite/etc/simple.in: New file
	* testsuite/etc/std.in: New file
	* testsuite/etc/std.pat: New file
	  
2003-02-08  Sergey Poznyakoff

	* src/regex.c: Rewritten using "control table" approach.

2003-02-08  Wojciech Polak

	* src/rc.c (gpg_parser): Fixed KW_GPG_SIGN case.

	* configure.ac: Clean up.
	* README: Updated.

2003-02-08  Sergey Poznyakoff

	* src/regex.c (_perl_match): Fixed allocation of ovector.

2003-02-07  Sergey Poznyakoff

	* src/env.c (check_filename): Take an additional
	  argument: a pointer to the file modification time.
	* src/headers.h: Likewise.
	* src/exec.c: Updated calls to check_filename().
	* src/tunnel.c: Likewise.
	* src/net.c: Restored checking the modification time
	  of the global rcfile.
	* src/rc.c: Likewise.
	* src/rcfile.y: Improved readability of the diagnostic
	  output.

	* src/map.c: Minor changes.
	  
2003-02-07  Wojciech Polak

	* src/map.c (translate_parser): Fixed a bug in `user name after into'
	  parser.

2003-02-07  Sergey Poznyakoff

	* src/map.c: Fixed section name.
	* src/rcfile.y (rc_stmt_print): Display IFFALSE branch
	  only if it is non-null.
	  (rc_run_section): Check for sec==NULL.

2003-02-07  Sergey Poznyakoff

	* src/guile.c (guile_parser): Removed kludge.
	* src/headers.h (anubis_regex_refcnt): New function.
	* src/regex.c: Likewise.
	* src/rcfile.l: A couple of bugfixes/improvements in
	  RX/RXM states.
	* src/rcfile.y (rc_parse): Fixed return value.
	  (node_eval): Check the number of backreferences in
	  regexp.
	  
2003-02-06  Sergey Poznyakoff

	* configure.ac: Provide a replacement for snprintf
	* examples/anubis.scm: Renamed postprocess to msg-process.
	* examples/anubisrc.guile: Likewise.
	* src/snprintf.c: New file. A replacement for snprintf function.
	* src/Makefile.am: Added snprintf.c
	* src/auth.c: Remove HAVE_SNPRINTF conditional
	* src/esmtp.c: Likewise.
	* src/exec.c: Likewise.
	* src/files.c: Likewise.
	* src/misc.c: Likewise.
	* src/ssl.c: Likewise.
	* src/tunnel.c: Likewise.
	* src/daemon.c: Likewise.
	  (stdinout): Removed call to process_rcfile().

	* src/extern.h (struct options_struct): Removed guile_postprocess
	  member.
	* src/guile.c: Provide a placeholder for guile-postprocess
	  functions.

	* src/headers.h: Removed inclusion of <regex.h> and <pcre.h>
	  (anubis_regex_match,anubis_regex_free,anubis_regex_source):
	  Added new prototypes.
	* src/rcfile.h (struct rc_regex,RC_REGEX): Removed. It is defined
	  elsewhere.
	  (struct rc_node): Changed type of 'v.re' member.

	* src/rcfile.l: Fixed support for traditional syntax.
	* src/rcfile.y: Fixed support for traditional syntax.
	  Changed regular expression handling.

	* src/regex.c: Modularized regular expressions. All implementation
	  dependent parts (regex,pcre) live in this file. The rest of
	  sources uses anubis_regex_.* interface.

2003-02-05  Sergey Poznyakoff

	Rewritten RC file support using yacc and lex.
	
	* configure.ac: Turn on guile support unless --without-guile
	  has been given.

	* build/ylwrap: New file. A customized wrapper for yacc/lex
	  invocations.  
	* build/Makefile.am: Added ylwrap
	* m4/guile.m4: Raised Guile version requirement to 1.6

	* src/rcfile.l: New file. Lexical analizer for configuration
	  files.
	* src/rcfile.y: New file. Syntax analizer for configuration
	  files.
	* src/rcfile.h: New file.
	* src/Makefile.am: Added rcfile.[ylh]
	* src/map.c: Rewritten.
	* src/rc.c: Rewritten.
	* src/regex.c (anubis_regexp_match): New function.
	
	* src/auth.c: Use new rc_ calls.
	* src/daemon.c: Likewise.
	* src/guile.c: Likewise.
	* src/main.c: Likewise.
	* src/quit.c: Likewise.
	* src/tunnel.c: Likewise.
	
	* src/env.c: New option --check-config (-c).
	* src/extern.h: Removed obsolete declarations.
	* src/headers.h: Likewise.
	* src/main.h: Likewise.

	* TODO: Updated.
	
2003-02-02  Wojciech Polak

	* README: Updated.
	* TODO: Likewise.

	* src/headers.h: Added conditional WITH_GUILE.
	* src/tunnel.c: Likewise.
	  (memory_reader): Removed compiler warning about `i'.
	* src/rc.c (match_action_guile): Added missing returns.
	* src/guile.c: Fixed copyright comment at top of the file.

2003-02-01  Sergey Poznyakoff

	* examples/anubis.scm (postprocess): Escape quotes inside the 
	  comment string

2003-02-01  Wojciech Polak

	* AUTHORS: Added Sergey Poznyakoff.

	* configure.ac: Don't use `uname' for SunOS.
	  Check -lsocket and -lnsl directly with AC_CHECK_LIB.

	* src/headers.h: Fixed `guile_load_path_append' prototype.
	* src/help.c (print_version): Added info about GUILE.
	* src/tunnel.c (process_command): Removed file permissions
	  check for SSL certificate.
	* src/rc.c: Commented extra tokens at end of #endif directive.

2003-02-01  Sergey Poznyakoff

	Added support for Guile
	
	* configure.ac: Added --with-guile switch.
	  Determine if socklen_t is defined, define it if it is not.
	* m4/guile.m4: New file	
	* m4/Makefile.am: Added guile.m4
	* build/guile-1.6: New directory.
	* build/guile-1.6/guile-doc-snarf: New file
	* build/guile-1.6/guile-doc-snarf.awk: New file
	* build/guile-1.6/Makefile.am: New file.
	* build/Makefile.am: Added subdirs.
	* src/daemon.c (loop): Removed `#ifdef __socklen_t_defined'
	  conditional'.
	
	* src/guile.c: New file
	* src/Makefile.am: Added guile.c
	* src/auth.c [WITH_GUILE](auth_tunnel): Call read_rcfile_guile().
	* src/extern.h [WITH_GUILE](struct options_struct): New members
	  guile_logfile, guile_postprocess.
	  (guile_position): New global.
	* src/headers.h [WITH_GUILE]: Include libguile.h
	  [WITH_GUILE] (read_rcfile_guile): New function.
	  (read_action_block): Take an argument.
	  (BEGIN_GUILE): New define
	  (anubis,anubis_boot,guile_load_path,guile_load_program)
	  (guile_rewrite_line): New functions.
	* src/main.c [WITH_GUILE] (anubis_core): New
	  function. Bootstrapper for guile support.
	  (anubis_core): New define
	  (anubis): New function. Runs main anubis loop.
	  (main): Call anubis_core()
	* src/main.h (guile_position): New global
	* src/rc.c (read_action_block,match_action): Take additional
	  argument: the source line (command or header) that triggered
	  its invocation.
	  [WITH_GUILE] (match_action): Handle guile-rewrite-line keyword
	  [WITH_GUILE] (match_action_guile,read_rcfile_guile): New functions
	* src/tunnel.c: Updated invocations of read_action_block()

	* examples/anubisrc.guile: New file
	* examples/anubis.scm: New file
	* examples/rot-13.scm: 
	* examples/Makefile.am: Added new files.

2003-01-30  Wojciech Polak

	* m4/Makefile.am: Added gettext m4 macros to EXTRA_DIST.
	* src/Makefile.am: Removed DEFAULT_INCLUDES.

2003-01-30  Wojciech Polak

	* Initial CVS import, starting GNU Anubis 3.6.3.


Local Variables:
mode: change-log
version-control: never
End:
