2010-02-26  Peter Simons  <simons@cryp.to>

	Fixed mark-up of the URL in the copyright disclaimer.

2010-02-23  Peter Simons  <simons@cryp.to>

	Added the license text to all doc/* files.

2010-02-20  Peter Simons  <simons@cryp.to>

	regression-tests: dropped obsolete test infrastructure in favor of Automake

	Added an up-to-date copyright license to all files.

	docs: updated buffer editing settings for current versions of Emacs

2009-05-10  Peter Simons  <simons@cryp.to>

	.cvsignore: dropped obsolete files

	Updated list of ignored files.

	Updated the documentation to DocBook XML DTD version 4.5.

	varexp.hpp: fix GCC 4.x warning
	Don't assign string literals to 'char *'.

	internal.hpp: include <string.h> to define strcasecmp().

	tests/expand6.cpp: fix GCC 4.x warnings
	Literal strings in source code are immutable. Assigning such a literal
	string to a non-const char pointer is a bug.

	configure.ac: recognize source code dir by the presence of varexp.hpp

	Updated build system for release.
	* Use automake to run the regression test suite.
	 * Add proper copyright headers to all files.
	 * Removed dependency on internal 'sanity' library.

	Prepared for public release.
	 * Added automake build.
	 * Use *.cpp and *.hpp suffixes for C++ files.

2002-10-15  Peter Simons  <simons@cryp.to>

	Fixed weird errors in the code, spotted by the Comeau compiler.

	Removed invalid cast.

2002-04-19  Peter Simons  <simons@cryp.to>

	Fixed spelling and grammar.

2002-04-17  Peter Simons  <simons@cryp.to>

	Removed unnecessary whitespace.

	Indent by absolute values, not relative ones.

2002-04-16  Peter Simons  <simons@cryp.to>

	Include <cstdio> for printf().

	Removed kludge that breaks the build on some compilers.

	Activated the tag target.

	Don't use &version; in an URL, because it includes a terminating linefeed.

	Let the realclean target erase the README file.

	Added the source for the web page.

	Ignore the dependent README file.

	Added tag target.

	Wrote a nice README file.

	Activated the dist target.

	Nothing left to do for the moment.

	Added nice formatting with stylesheets.

	Split document into multiple parts so that they can be re-used.

	Completed the user manual.

	Throw array_lookups_are_unsupported rather than runtime_error.

2002-04-15  Peter Simons  <simons@cryp.to>

	Worked a lot on the user manual of the library.

	Removed the unused out_of_memory exception.

	Removed the incomplete_named_character exception.

	Add DEBUG define when compiling the tests.

	Started to write a better documentation.

	Added the global library version for the package.

	This file will be replaced by the SGML documentation.

	Finished make-based build system.

	Replaced the odin-based build with make.

	Moved user manual into the documentation subdirectory.

	Replace odin-based build by make-based.

	Added a makefile again. Odin didn't hold up in production.

2002-04-14  Peter Simons  <simons@cryp.to>

	Worked on the documentation.

2002-04-13  Peter Simons  <simons@cryp.to>

	Initialize these variables to zero so that older compilers stop complaining about them being used uninitialized.

	Declare the namespace expand() is in with the complete path so that older g++ versions will understand that statement, too.

	Modified compile-time flags.

2002-01-23  Peter Simons  <simons@cryp.to>

	Ignore .rpo files.

	Experimented with the docbook stuff.

	Added a preliminary version of the user documentation.

2002-01-09  Peter Simons  <simons@cryp.to>

	Include <cstdio> so that ::sprintf() is defined.

	Use string::erase() rather than string::clear(), which is missing on some platforms.

	Fixed incorrect results of search_and_replace() with zero-length matches, such as '^'.

	Implemented separation of normal variables and arrays.

	Added test a case that verifies the correct search-and-replacement of "^".

	Fixed regression tests: One test had an incorrect expected result, which is why a bug in the search and replace code didn't fail the test.

	Cleaned up use of namespaces.

	Removed "using namespace internal"; rather access that explicitely.

	Added default constructor to the config_t structure.

	Fixed bug that occured because "char" is signed on most platforms.

	Added REG_NEWLINE flag to compilation of the regular expression.

2002-01-03  Peter Simons  <simons@cryp.to>

	Removed debug output.

	Removed unnecessary backslash.

	- Removed unused system includes. - Don't mention namespace 'std' explicitely; we're 'using" it anyway.

	Beautified the header file.

2002-01-02  Peter Simons  <simons@cryp.to>

	Premature version of the manual page.

	I'll write a roff manpage directly rather than using POD because the output quality sucks.

	Added a license to the distribution.

	Made test more elegant.

	Fixed test case to work with the new library.

	Fixed test case to work with the new library.

	Added a better interface to unespace().

	Build output string in a temporal buffer and copy it to the result string when ready. This enables the user to re-use the input buffer.

	Fixed the test cases for the new library.

	- Replaced static routines by inlined ones. - Reused number() rather than exp_num_read_int().

	Removed ascii_to_int().

	Pulled ascii_to_int() into number(), which was the only routine using it anyway.

	Cleaned the header file up.

	Removed tokenbuf.cc.

	This has been obseleted by the use of std::string.

	Removed the 'var_' prefix, which has been obseleted by the varexp namespace.

	- Changed var_expand() to use a std::string as input buffer.
	- Changed 'error' class to contain current_position instead of the
	  pointers.

	Added ascii-to-uint() routine.

	Backup rel_lookup_count before calling loop_limits() in order to make sure the counter is not skewed by the routine.

	Rewrote virtually everything for C++. Deactivated all test cases except for expand6, which is succeeding already.

2002-01-01  Peter Simons  <simons@cryp.to>

	Cleaned exception code up.

	- Swapped the semantics of 'p' and 'begin' to match the other routines. - Implemented error reporting via the varexp::error exception.

	Reactivated most of the regression tests.

	Deactivated test cases for the moment.

	Removed the var_rc_t typedef and customized the function prototypes accordingly.

	- Removed the unused var_strerror() function. - Added more warning flags.

	- Removed var_strerror(). - Changed comments to C++ style.

	Removed Makefiles; we build with odin for the time being.

2001-12-29  Peter Simons  <simons@cryp.to>

	Cleaned the code up.

	The virtual destructor of our error class.

	Converted to exceptions for error reporting.

	Replaced tokenbuf_t code by tokenbuf_t class that makes use of constructors and destructors to track the resources.

	Cosmetic changes.

	Moved routines into varexp and varexp::internal namespace.

	Renamed include files to use the .hh suffix for C++.

	Converted code to C++.

	Chaged formatting to my favourite style.

	There is no need for handling force expand in num_exp(), thus the failed flag can go.

	Removed all test cases that make use of the force expand feature.

	Removed the force expand feature.

	Imported TODO file from OSSP var.

	Renamed expand-named-characters to unescape.

	Customized old regression tests to work with the new library.

	Imported code from the OSSP project into our repository in order to re-write it in C++.

2001-11-09  Peter Simons  <simons@cryp.to>

	Added make-based build system.

	When we use rc in the error message, we got to assign it.

	Initialize c in expand_simple_hex() to 0 to avoid compiler warning.

	Implemented padding operator.

	Fixed the grammar for the :p operator.

	Added padding operation to the specification.

	Implemented the transpose operator.

	Enhanced test case to verify that a '-' may also be the first character in the class.

	Added short text describing the problem we have with quoted pairs and multiple passes.

2001-11-06  Peter Simons  <simons@cryp.to>

	Changed the semantics of the :+ operator to match those of the :- operator. Apparently I misunderstood the descripion in the shell's manual page and got it wrong.

	Removed some notes that are no longer of interest.

	Updated grammar to reflect the current implementation.

	Removed the error_msg parameter from var_expand(). We don't support the :? operation anymore and hence we don't need that string pointer either. This also means that the grammar had to be updated and that the user-abort test case is gone.

	Disabled dmalloc stuff for the moment.

2001-11-05  Peter Simons  <simons@cryp.to>

	Moved include statements to internal.h.

	Added dmalloc support.

	Added dmalloc support.

	 - Fixed bug in the memory-allocation strategy: The buffers were one    byte too small if we're appending the zero byte.
	 - Include dmalloc.h.

	Unused file.

	Took out the printf-statement for the regex offsets, because on some platforms these apparently are long long values, what will make the program dump core.

	Fixed errorneous syntax.

	unsetenv(3) returns void und thus should not be called in an if statement.

	Removed debug output and unnecessary includes.

	Implemented the :o operation.

	Added test case for empty search string errors.

	Implemented plain text search-and-replace.

	Implemented regular expression search and replace without subexpression matching right now.

	Enhanced regression tests.

	Removed debug output.

	Rewrote expand6 to be modular. Now it can replace expand7 and pretty much anything else that might still come.

	Fixed a bug that occured when variable could not be expanded and force_expand was not set.

	Cleaned the parser up some more.

	Cleaned-up the parser.

2001-11-04  Peter Simons  <simons@cryp.to>

	Added preliminary search-and-replace support.

	Implemented :* operator.

	Implemented :? operator.

	Implemented :+ operator.

	Implemented command().

	Made sure free_tokenbuf() clears the buffer next to returning the memory to the system.

2001-11-03  Peter Simons  <simons@cryp.to>

	Cosmetic change in source formatting.

	Implemented the expression parser halfway through and added appropriate test cases.

	Enhanced append_to_tokenbuf() so that is handles tokenbuffers correctly, that do not live in an allocated buffer yet.

	Moved the undefined variable in the middle of the buffer.

	Added another test case, which uses the environment for variable retrieval.

	Added test case for force-expand.

	Das Expandieren simpler Variables funktioniert nun.

2001-10-21  Peter Simons  <simons@cryp.to>

	Added skeleton expand() routine.

	Moved expand_named_charaters and var_rc_t to the public header.

	Implemented expand_character_class() and the appropriate test case.

	Updated grammar.

	Removed unused includes.

2001-10-18  Peter Simons  <simons@cryp.to>

	Extended expand_named_characters() to use separate parameters for the source and for the destination pointer.

	Added helpful comments.

	Added the implementation of the expand_named_characters() routine and appropriate test cases.

	Added the build process for the library and the regression tests.

2001-10-17  Peter Simons  <simons@cryp.to>

	The old versions of the library function where removed in favor of the re-written ones.

	Habe die Grammatik auf den neusten Stand gebracht.

2001-10-16  Peter Simons  <simons@cryp.to>

	Wnsche von RSE eingearbeitet.

	Spec wurde nochmals berarbeitet und enthlt jetzt alle Features, die wir supporten wollen. Die Grammatik wurde noch nicht auf den neusten Stand gebracht.

	Prelimininary version of the library API.

2001-10-07  Peter Simons  <simons@cryp.to>

	Customized the library for on odin-based build system and moved the actual code into an extra module, so that we can define the destructor for variable lookup there.

	EBNF-Grammatik hinzugefgt.

2001-10-02  Peter Simons  <simons@cryp.to>

	Tabs wurden durch Blanks ersetzt.

	Habe nochmal mchtig aufgerumt.

	Habe einige Beispiele fr den Syntax hinzugefgt, um die Grammatik leichter erstellen zu knnen.

2001-10-01  Peter Simons  <simons@cryp.to>

	Nach Diskussion mit RSE sind noch einige Formen weggefallen, sowie einige Formen leicht verndert worden.

2001-09-28  Peter Simons  <simons@cryp.to>

	Started to write a correct grammar in EBNF notation.

	+ Dokumentation zur Wahl eines Escape-Zeichens, das jedes andere   Zeichen als "Literal" escapen kann. Die Form "$$" fr den Dollar   besteht unabhngig davon.
	+ Die Funktion soll ein Flag untersttzen, ber das man Anwhlen
	  kann, da nicht-expandierbare Variablen einfach wieder in die
	  Ausgabe kommen, um so mehrere Psse machen zu knnen.

	- ${parameter#word} wurde gestrichen.

	- ${parameter%word} wurde gestrichen.

	* Tippfehler in {parameter//pattern/string} korrigiert.

	+ ${parameter:y/ochars/nchars/} hinzugefgt.

2001-09-27  Peter Simons  <simons@cryp.to>

	List of TODO items for the variable expansion library.

1999-09-20  Peter Simons  <simons@cryp.to>

	Initial commit.
