Changes since 5.6.4 includes:
* Fixed a small timing hole where the read from the read end of the output
pipe of the server shell can fail. (The read is retried.)
* Added a macro for testing mmap failure to accommodate a picky compiler.
* The minor version number is being bumped. There is a new (albeit tiny)
feature being added to the syntax. See the doc on the pseudo-macro.
* Fixed a bug wherein out-of-order definitions could get mistyped causing
various catastrophic results.
* Definition and license text files were mmap-ed in without checking for
the size being a multiple of a page. strlen() would seg fault.
Horrible, horrible design of mmap!
* disable autoopts/test/getopt.test unless autoopts has been fully installed.
(It requires getopt.tpl which requires a fully installed environment.)
* several other usability improvements to the tear off library.
* template shell code may now use a shell function "die" that will print
an error message and shoot down the master autogen process.
* the tear-off/add-in libopts library will now specify that the
"options.h" header is to be installed.
* realpath(3C) usage in libopts has been cleaned up. It is now only used
if PATH_MAX is defined for the platform. canonicalize_file_name(3C) is
used where available.
AutoOpts:
* The listing of enumerated option arguments is a bit more concise.
* Options may be handled twice: once during the immediate phase and
again during the "normal" processing phase.
* If environment variable "rc" processing is enabled, then the
"${PROGNAME}" environment variable will be processed - tokenizing it
and processing it as a list of command line options. It may not
contain any command line operands.
* a new main procedure type: each-or-stdin This will fopen() each
command line operand and pass the FILE* pointer to the callout procedure.
If there are no operands, then stdin is passed.
* main() procedures can be specified more consistently
AutoGen:
* The '$$' expansion in locating the program will now use "realpath(3C)".
This way, if a program is installed in /opt/whatever/bin/program
and you run it via a symlink, '$$' will resolve to /opt/whatever/bin.
* exist and not-exist selection macros -- the CASE macro can now
select a clause based on value existence. Previously, you could detect
an empty string and you then had to use the ``(exist? "name")'' function.
* fixed tpl-file-line so that "%2$d" works for the format.
* Added (emit) function that directly emits its args into output
* keyword lists are columnized in usage text
* distributed subdirectories no longer depend on also being built.
getdefs (an AutoGen support utility):
* With "listed" attributes, if you quote an entry, then the scanning code
has to push the scan forward to the next entry so we don't wind up with
a spurious empty entry!!
Changes since 5.5.3:
* AutoFSM was enhanced with the notion of a "noop" transition handling
* fmemopen() is now used (when possible) for anonymous output (diversions)
* The Guile function (chdir "...") is now wrapped so AutoGen can adapt
* the definitions parser now uses a FSM parser instead of YACC
* AutoOpt-ed programs can now have internationalized usage text
* Templates have been added for using getopt(3) or getopt_long(3GNU)
to parse options (in lieu of libopts).
* better docs on partitioned ini (rc) files
Changes since 5.5.2 include:
* AutoOpts' usage procedure has been enhanced to produce either AutoOpts
standard usage or usage that looks more like current GNU practices.
The latter provides less information and help.
* I32LPx behavior has improved. Don't think I can call it "industrial
strength" just yet, tho.
New in 5.5.2 - February, 2003
* Fixes for FreeBSD weirdisms with sed, dlopen(), and the Guile library
* stash offsets in uintptr_t types so this thing works when
sizeof(void*) != sizeof(off_t)
* still more configury fixes. It will never, ever end.
New in 5.5 - December 15, 2002
* The FOR macro will now accept a list of values, as in:
[= FOR v IN one, "two , part" three =]
* snprintfv-0.99f was fully incorporated, saving 300K of distribution
space and a lot of configure time.
* The 'dne' function will accept "-d" as the first argument in order
to suppress the date from the output.
New in 5.4.8 - December 10, 2002
* Freed AutoOpts from libguile. It was never really dependent.
* new snprintfv library incorporated
AutoGen is a tool designed for generating program files that contain
repetitive text with varied substitutions. Its goal is to simplify the
maintenance of programs that contain large amounts of repetitious text.
This is especially valuable if there are several blocks of such text that
must be kept synchronized.