AutoGen: 7.3.4.7 Option Argument Handling

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

#### 7.3.4.7 Option Argument Handling

AutoOpts will either specify or automatically generate callback procedures for options that take specialized arguments. The only option argument types that are not specialized are plain string arguments and no argument at all. For options that fall into one of those two categories, you may specify your own callback function, as specified below. If the option takes a string argument, then you may specify that the option is to be handled by the `libopts` library procedures `stackOptArg()` or `unstackOptArg()` (see below). Finally, `documentation` options (Special Option Handling) may also be marked as settable and have special callback functions (either `flag-code`, `extract-code`, or `call-proc`).

``flag-code'`

  statements to execute when the option is encountered. The generated procedure will look like this:

      static void
      doOpt<name>( tOptions* pOptions, tOptDesc* pOptDesc )
      {
      <flag_code>
      }

  Only certain fields within the `tOptions` and `tOptDesc` structures may be accessed. See section Data for Option Processing.

``extract-code'`

  This is effectively identical to `flag_code`, except that the source is kept in the output file instead of the definitions file. A long comment is used to demarcate the code. You must not modify that marker. Before regenerating the option code file, the old file is renamed from MUMBLE.c to MUMBLE.c.save. The template will be looking there for the text to copy into the new output file.

``call-proc'`

  external procedure to call when option is encountered. The calling sequence must conform to the sequence defined above for the generated procedure, `doOpt<name>`. It has the same restrictions regarding the fields within the structures passed in as arguments. See section Data for Option Processing.

``flag-proc'`

  Name of another option whose `flag_code` can be executed when this option is encountered.

``stack-arg'`

  Call a special library routine to stack the option's arguments. Special macros in the interface file are provided for determining how many of the options were found (`STACKCT_OPT(NAME)`) and to obtain a pointer to a list of pointers to the argument values (`STACKLST_OPT(NAME)`). Obviously, for a stackable argument, the `max` attribute needs to be set higher than `1`.

  If this stacked argument option has a disablement prefix, then the entire stack of arguments will be cleared by specifying the option with that disablement prefix.

``unstack-arg'`

  Call a special library routine to remove ("unstack") strings from a `stack-arg` option stack. This attribute must name the option that is to be "unstacked". Neither this option nor the stacked argument option it references may be equivalenced to another option.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated by Bruce Korb on July, 28 2005 using texi2html 1.76.