7.1 AutoOpts Features 
AutoOpts supports option processing; option state saving; and
program documentation with innumerable features.  Here, we list
a few obvious ones and some important ones, but the full list is
really defined by all the attributes defined in the Option Definitions
section.
- 
POSIX-compliant short (flag) option processing.
- 
GNU-style long options processing.  Long options
are recognized without case sensitivity, and they may be abbreviated.
- 
Environment variable initializations, See section environment variable presets.
- 
Initialization from configuration files (aka RC or INI files), and
saving the option state back into one, See section configuration file presets.
- 
Config files may be partitioned.  One config file may be used by several
programs by partitioning it with lines containing,
"[PROGRAM_NAME]", See section configuration file presets.
- 
Options may be marked as dis-abledwith a disablement prefix.
Such options may default to either an enabled or a disabled state.  You
may also provide an enablement prefix, too, e.g.,--allow-mumbleand--prevent-mumble.
- 
Verify that required options are present between the minimum and
maximum number of times on the command line.
- 
Verify that conflicting options do not appear together, and that options
that require the presence of other options are, in fact, used in the
presence of other options.
- 
Provides a callable routine to parse
a text string as if it were from one of the rc/ini/config files,
hereafter referred to as a configuration file.
- 
--helpand--versionare automatically supported.--more-helpwill page the generated help.
- 
By adding a `doc' and `arg-name' attributes to each option,
AutoGen will also be able to produce a man page and the `invoking'
section of a texinfo document.
- 
Insert the option processing state into Scheme-defined variables.
Thus, Guile based applications that are linked with private
main()routines can take advantage of all of AutoOpts' functionality.
- 
Various forms of main procedures can be added to the output,
See section Generating main procedures.  There are four basic forms:
- 
A program that processes the arguments and writes to standard out
portable shell commands containing the digested options.
- 
A program that will generate portable shell commands to parse the defined
options.  The expectation is that this result will be copied into a
shell script and used there.
- 
A "for-each" main that will invoke a named function once for either
each non-option argument on the command line or, if there are none,
then once for each non-blank, non-comment input line read from stdin.
- 
A main procedure of your own design.  Its code can be supplied in the
option description template or by incorporating another template.
 
- 
Library suppliers can specify command line options that their
client programs will accept.  They specify option definitions
that get #include-d into the client option definitions
and they specify an "anchor" option that has a callback and must be invoked.
That will give the library access to the option state for their options.
- 
The generated usage text can be emitted in either AutoOpts standard
format (maximizing the information about each option), or GNU-ish
normal form.  The default form is selected by either specifying or not
specifying the gnu-usageattribute (see section Program Information Attributes).
This can be overridden by the user himself with theAUTOOPTS_USAGEenvironment variable.  If it exists and is set
to the stringgnu, it will force GNU-ish style format; if it is
set to the stringautoopts, it will force AutoOpts standard
format; otherwise, it will have no effect.
- 
If you compile with ENABLE_NLSdefined and_()defined to
a localization function such asgettext(3GNU), then the option
processing code will be localizable (see section Internationalizing AutoOpts).
- 
Intermingled option processing.  AutoOpts options may be intermingled with
command line operands and options processed with other parsing techniques.
This is accomplished by setting the allow-errors(see section Program Description Attributes) attribute.  When processing reaches a point
whereoptionProcess(see section optionProcess) needs to be called
again, the current option can be set withRESTART_OPT(n)(see section RESTART_OPT( n ) - Resume Option Processing) before callingoptionProcess.See: See section Options for Library Code.
 
- 
library options.  An AutoOpt-ed library may export its options for use in
an AutoOpt-ed program.  This is done by providing an option definition file
that client programs #includeinto their own option definitions.
See "AutoOpt-ed Library for AutoOpt-ed Program" (see section AutoOpt-ed Library for AutoOpt-ed Program)
for more details.
 
  This document was generated by Bruce Korb on January, 27 2007 using texi2html 1.76.