2006/03/26, v1.2.1 Whenever aargh obtains a file name from the XML file, it now expands environmental variables in that file name, using a syntax similar to that used by most UNIX shells. Variable names are preceded by a dollar sign, and optionally enclosed by curly braces. A leading tilde, if immediately followed by a slash, is expanded as $HOME.
Theoretically this feature may break existing XML files that include dollar signs, tildes, or backslashes in a file name. Any such breakage can be readily repaired by tinkering a bit with the XML.
2006/03/19, v1.2 Enable user to insert customized remarks into the comment block at the top of the header file, implementation file, or both. These remarks may be specified as any combination of literal text, references to external files, or copyright notices.
2006/02/26, v1.1.4 Enable user to specify a default value for an integer option. Also: upgrade the TinyXml release level to version 2.4.3.
2006/02/12, v1.1.3 Enable user to specify a default value for a string option. Also: fix a bug that sometimes caused #include directives to be written incorrectly.
2006/01/15, v1.1.2 Add the -v option for verbose mode. Accept a "linkage" attribute on a Validator element so that a validator function may be declared as extern "C++".
2006/01/08, v1.1.1 If the XML file does not specify file name extensions for the generated implementation file or header file, aargh will now apply default extensions: "c", "C", or "h". With this feature, you can use the same XML file to generate either C or C++. If you don't like the built-in defaults, you can specify other defaults from the aargh command line. For example, you can use "cpp" instead of "C", or "hpp" instead of "h". You can also change the defaults permanently by compiling aargh with appropriate macros defined -- see the readme.txt file for details.
2006/01/01, v1.1: Aargh can now generate C code as well as C++.
2005/11/05, v1.0.2: Changed the semantics of the new_argc and new_argv functions. Any existing application using these functions will need to be revised accordingly.
Originally, new_argv() returned a pointer p such that
p[ 0 ] was the first non-option argument on the command
line. If you use the more conventional argv, the subscript for the
first argument is 0 rather than 1.
Experience has shown that if an existing program already uses argc and argv, it's easier to adopt aargh's generated code if new_argc() and new_argv() behave more like the the original argc and argv.
I have changed aargh accordingly. Now, when new_argv() returns a
pointer p, p[ 1 ] points to the first
non-option argument. Note that p[ 0 ] will not be
very useful. It will point to the last option argument if there
is one, or to the command name otherwise.
Fortunately, since aargh is still pretty new, it's not likely that many existing applications will be affected.
2005/10/30, v1.0.1: Fixed a couple of bugs:
2005/09/25, v1.0: Initial release.