[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU AutoGen 5.6 released

From: Bruce Korb
Subject: GNU AutoGen 5.6 released
Date: Sat, 28 Feb 2004 09:49:07 -0800

AutoGen is a tool designed to simplify the creation and maintenance of
programs that contain large amounts of repetitious text.  It is
especially valuable in programs that have several blocks of text that
must be kept synchronized.

One common example is the problem of maintaining the code required
for processing program options.  Processing options requires a minimum
of four different constructs be kept in proper order generally in
different places in your program.  You need at least:

  1. The flag character in the flag string,
  2. code to process the flag when it is encountered,
  3. a global state variable or two, and
  4. a line in the usage text.

AutoGen provides a general framework for handling this and similar
programming tasks.

Noteworthy changes since the last info-gnu announcement:

* "fmemopen" is now used for anonymous file output (aka an M4 type
  "diversion").  This functions on systems that support either
  "fopencookie(3GNU)" or "funopen(3BSD)".

* The Guile/Scheme function ``(chdir "xxx")'' is wrapped.  AutoGen
  needs to know if the current directory has changed.

* The definitions parser was rewritten as a FSM parser.  This removes
  the limitation of several hundred definitions of the same name
  (i.e. an array of values was limited to several hundred entries).

* The AutoOpts code now produces internationalizable output.  This
  means your long option names and usage text may be localized.  If
  you localize the program name, that will _also_ get printed localized.

* There is now an AutoOpts template for producing code that uses
  either getopt(3C) or getopt_long(3GNU).  AutoOpts features that depend
  upon libopts will not work, but your generated code would not
  depend upon the libopts external library either.  You still get
  generated man pages and texinfo "invoking" chapters.  See: and
  (the latter works until section numbers change in my doc)

* Lots of obscure polishing. :-)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]