/*
 *  DO NOT EDIT THIS FILE   (opts.c)
 *  
 *  It has been autogen-ed  Friday November  5, 1999 at 01:42:01 PM PST
 *  From the definitions    opts.def
 *  and the template file   ../autoopts/options.tpl
 */

static const char zCopyright[] =
       "getdefs copyright (c) 1999 Bruce Korb, all rights reserved";
static const char zCopyrightNotice[] =
       "getdefs is free software.\n"
       "\n"
       "You may redistribute it and/or modify it under the terms of the\n"
       "GNU General Public License, as published by the Free Software\n"
       "Foundation; either version 2, or (at your option) any later version.\n"
       "\n"
       "getdefs is distributed in the hope that it will be useful,\n"
       "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
       "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
       "See the GNU General Public License for more details.\n"
       "\n"
       "You should have received a copy of the GNU General Public License\n"
       "along with getdefs.  See the file \"COPYING\".  If not,\n"
       "write to:  The Free Software Foundation, Inc.,\n"
       "           59 Temple Place - Suite 330,\n"
       "           Boston,  MA  02111-1307, USA.";
#include "opts.h"

extern tUsageProc optionUsage;

#ifndef NULL
#  define NULL 0x0
#endif

#ifndef EXIT_SUCCESS
#  define  EXIT_SUCCESS 0
#  define  EXIT_FAILURE 1
#endif

/*
 *  Defs_To_Get option description:
 */
tSCC    zDefs_To_GetText[] =
       "Regexp to look for after the \"/*=\"";
tSCC    zDefs_To_Get_NAME[] =         "DEFS_TO_GET";
#define zNotDefs_To_Get_Pfx           (const char*)NULL
#define zNotDefs_To_Get_Name          (const char*)NULL
tSCC    zDefs_To_Get_Name[] =         "defs-to-get";

/*
 *  Ordering option description:
 */
tSCC    zOrderingText[] =
       "Alphabetize or use named file";
tSCC    zOrdering_NAME[] =            "ORDERING";
tSCC    zNotOrdering_Name[] =         "no-ordering";
tSCC    zNotOrdering_Pfx[] =          "no";
#define zOrdering_Name                (zNotOrdering_Name + 3)

/*
 *  Input option description:
 */
tSCC    zInputText[] =
       "Input file to search for defs";
tSCC    zInput_NAME[] =               "INPUT";
#define zNotInput_Pfx                 (const char*)NULL
#define zNotInput_Name                (const char*)NULL
tSCC    zInput_Name[] =               "input";

/*
 *  Subblock option description:
 */
tSCC    zSubblockText[] =
       "subblock definition names";
tSCC    zSubblock_NAME[] =            "SUBBLOCK";
#define zNotSubblock_Pfx              (const char*)NULL
#define zNotSubblock_Name             (const char*)NULL
tSCC    zSubblock_Name[] =            "subblock";

/*
 *  Filelist option description:
 */
tSCC    zFilelistText[] =
       "Insert source file names into defs";
tSCC    zFilelist_NAME[] =            "FILELIST";
#define zNotFilelist_Pfx              (const char*)NULL
#define zNotFilelist_Name             (const char*)NULL
tSCC    zFilelist_Name[] =            "filelist";

/*
 *  Doc_Insert option description:
 */
tSCC    zDoc_InsertText[] =
       "Definition insertion options";

/*
 *  Assign option description:
 */
tSCC    zAssignText[] =
       "Global assignments";
tSCC    zAssign_NAME[] =              "ASSIGN";
#define zNotAssign_Pfx                (const char*)NULL
#define zNotAssign_Name               (const char*)NULL
tSCC    zAssign_Name[] =              "assign";

/*
 *  Common_Assign option description:
 */
tSCC    zCommon_AssignText[] =
       "Assignments common to all blocks";
tSCC    zCommon_Assign_NAME[] =       "COMMON_ASSIGN";
#define zNotCommon_Assign_Pfx         (const char*)NULL
#define zNotCommon_Assign_Name        (const char*)NULL
tSCC    zCommon_Assign_Name[] =       "common-assign";

/*
 *  Copy option description:
 */
tSCC    zCopyText[] =
       "File(s) to copy into definitions";
tSCC    zCopy_NAME[] =                "COPY";
#define zNotCopy_Pfx                  (const char*)NULL
#define zNotCopy_Name                 (const char*)NULL
tSCC    zCopy_Name[] =                "copy";

/*
 *  Srcfile option description:
 */
tSCC    zSrcfileText[] =
       "Insert source file name into each def";
tSCC    zSrcfile_NAME[] =             "SRCFILE";
#define zNotSrcfile_Pfx               (const char*)NULL
#define zNotSrcfile_Name              (const char*)NULL
tSCC    zSrcfile_Name[] =             "srcfile";

/*
 *  Linenum option description:
 */
tSCC    zLinenumText[] =
       "Insert source line number into each def";
tSCC    zLinenum_NAME[] =             "LINENUM";
#define zNotLinenum_Pfx               (const char*)NULL
#define zNotLinenum_Name              (const char*)NULL
tSCC    zLinenum_Name[] =             "linenum";

/*
 *  Doc_Output option description:
 */
tSCC    zDoc_OutputText[] =
       "Definition output disposition options:";

/*
 *  Output option description:
 */
tSCC    zOutputText[] =
       "Output file to open";
tSCC    zOutput_NAME[] =              "OUTPUT";
#define zNotOutput_Pfx                (const char*)NULL
#define zNotOutput_Name               (const char*)NULL
tSCC    zOutput_Name[] =              "output";

/*
 *  Autogen option description:
 */
tSCC    zAutogenText[] =
       "Invoke AutoGen with defs";
tSCC    zAutogen_NAME[] =             "AUTOGEN";
tSCC    zNotAutogen_Name[] =          "no-autogen";
tSCC    zNotAutogen_Pfx[] =           "no";
#define zAutogen_Name                 (zNotAutogen_Name + 3)

/*
 *  Template option description:
 */
tSCC    zTemplateText[] =
       "Template Name";
tSCC    zTemplate_NAME[] =            "TEMPLATE";
#define zNotTemplate_Pfx              (const char*)NULL
#define zNotTemplate_Name             (const char*)NULL
tSCC    zTemplate_Name[] =            "template";

/*
 *  Agarg option description with
 *  "Must also have options" and "Incompatible options":
 */
tSCC    zAgargText[] =
       "AutoGen Argument";
tSCC    zAgarg_NAME[] =               "AGARG";
#define zNotAgarg_Pfx                 (const char*)NULL
#define zNotAgarg_Name                (const char*)NULL
tSCC    zAgarg_Name[] =               "agarg";
static const int
    aAgargCantList[] = {
    INDEX_OPT_OUTPUT, NO_EQUIVALENT};

/*
 *  Base_Name option description with
 *  "Must also have options" and "Incompatible options":
 */
tSCC    zBase_NameText[] =
       "Base name for output file(s)";
tSCC    zBase_Name_NAME[] =           "BASE_NAME";
#define zNotBase_Name_Pfx             (const char*)NULL
#define zNotBase_Name_Name            (const char*)NULL
tSCC    zBase_Name_Name[] =           "base-name";
static const int
    aBase_NameCantList[] = {
    INDEX_OPT_OUTPUT, NO_EQUIVALENT};
/*
 *  Help option description:
 */
tSCC zHelpText[]  = "Display usage information and exit";
tSCC zHelp_Name[] = "help";

/*
 *  More_Help option description:
 */
tSCC zMore_HelpText[]  = "Extended usage information passed thru pager";
tSCC zMore_Help_Name[] = "more-help";

/*
 *  Version option description:
 */
tSCC zVersionText[]  = "Output version information and exit";
tSCC zVersion_Name[] = "version";
/*
 *  These are always callable, whether
 *  TEST_GETDEFS_OPTS is defined or not
 */
static tOptProc doUsageOpt;
extern tOptProc doVersion;
extern tOptProc doPagedUsage;

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Define the Getdefs Option Descriptions.
 */
static tOptDesc optDesc[ OPTION_CT ] = {
  {  /* entry idx, value */ 0, VALUE_OPT_DEFS_TO_GET,
     /* equiv idx, value */ 0, VALUE_OPT_DEFS_TO_GET,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zDefs_To_GetText,  zDefs_To_Get_NAME,
                            zDefs_To_Get_Name,
     /* disablement strs */ zNotDefs_To_Get_Name, zNotDefs_To_Get_Pfx },

  {  /* entry idx, value */ 1, VALUE_OPT_ORDERING,
     /* equiv idx, value */ 1, VALUE_OPT_ORDERING,
     /* option argument  */ ARG_MAY,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLEOK | OPTST_INITENABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zOrderingText,  zOrdering_NAME,
                            zOrdering_Name,
     /* disablement strs */ zNotOrdering_Name, zNotOrdering_Pfx },

  {  /* entry idx, value */ 2, VALUE_OPT_INPUT,
     /* equiv idx, value */ 2, VALUE_OPT_INPUT,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 1, NOLIMIT, 0,
     /* opt state flags  */ OPTST_STACKED | OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ stackOptArg,
     /* desc, NAME, name */ zInputText,  zInput_NAME,
                            zInput_Name,
     /* disablement strs */ zNotInput_Name, zNotInput_Pfx },

  {  /* entry idx, value */ 3, VALUE_OPT_SUBBLOCK,
     /* equiv idx, value */ 3, VALUE_OPT_SUBBLOCK,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, NOLIMIT, 0,
     /* opt state flags  */ OPTST_STACKED | OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ stackOptArg,
     /* desc, NAME, name */ zSubblockText,  zSubblock_NAME,
                            zSubblock_Name,
     /* disablement strs */ zNotSubblock_Name, zNotSubblock_Pfx },

  {  /* entry idx, value */ 4, VALUE_OPT_FILELIST,
     /* equiv idx, value */ 4, VALUE_OPT_FILELIST,
     /* option argument  */ ARG_MAY,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zFilelistText,  zFilelist_NAME,
                            zFilelist_Name,
     /* disablement strs */ zNotFilelist_Name, zNotFilelist_Pfx },

  {  /* entry idx, value */ 0, 0,
     /* equiv idx, value */ 0, 0,
     /* option argument  */ ARG_NONE,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 0, 0,
     /* opt state flags  */ OPTST_DOCUMENT | OPTST_NO_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL,  (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zDoc_InsertText, (const char*)NULL,
                            (const char*)NULL,
     /* disablement strs */ (const char*)NULL, (const char*)NULL },

  {  /* entry idx, value */ 6, VALUE_OPT_ASSIGN,
     /* equiv idx, value */ 6, VALUE_OPT_ASSIGN,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, NOLIMIT, 0,
     /* opt state flags  */ OPTST_STACKED | OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ stackOptArg,
     /* desc, NAME, name */ zAssignText,  zAssign_NAME,
                            zAssign_Name,
     /* disablement strs */ zNotAssign_Name, zNotAssign_Pfx },

  {  /* entry idx, value */ 7, VALUE_OPT_COMMON_ASSIGN,
     /* equiv idx, value */ 7, VALUE_OPT_COMMON_ASSIGN,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, NOLIMIT, 0,
     /* opt state flags  */ OPTST_STACKED | OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ stackOptArg,
     /* desc, NAME, name */ zCommon_AssignText,  zCommon_Assign_NAME,
                            zCommon_Assign_Name,
     /* disablement strs */ zNotCommon_Assign_Name, zNotCommon_Assign_Pfx },

  {  /* entry idx, value */ 8, VALUE_OPT_COPY,
     /* equiv idx, value */ 8, VALUE_OPT_COPY,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, NOLIMIT, 0,
     /* opt state flags  */ OPTST_STACKED | OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ stackOptArg,
     /* desc, NAME, name */ zCopyText,  zCopy_NAME,
                            zCopy_Name,
     /* disablement strs */ zNotCopy_Name, zNotCopy_Pfx },

  {  /* entry idx, value */ 9, VALUE_OPT_SRCFILE,
     /* equiv idx, value */ 9, VALUE_OPT_SRCFILE,
     /* option argument  */ ARG_MAY,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zSrcfileText,  zSrcfile_NAME,
                            zSrcfile_Name,
     /* disablement strs */ zNotSrcfile_Name, zNotSrcfile_Pfx },

  {  /* entry idx, value */ 10, VALUE_OPT_LINENUM,
     /* equiv idx, value */ 10, VALUE_OPT_LINENUM,
     /* option argument  */ ARG_MAY,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zLinenumText,  zLinenum_NAME,
                            zLinenum_Name,
     /* disablement strs */ zNotLinenum_Name, zNotLinenum_Pfx },

  {  /* entry idx, value */ 0, 0,
     /* equiv idx, value */ 0, 0,
     /* option argument  */ ARG_NONE,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 0, 0,
     /* opt state flags  */ OPTST_DOCUMENT | OPTST_NO_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL,  (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zDoc_OutputText, (const char*)NULL,
                            (const char*)NULL,
     /* disablement strs */ (const char*)NULL, (const char*)NULL },

  {  /* entry idx, value */ 12, VALUE_OPT_OUTPUT,
     /* equiv idx, value */ ~0, ~0,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ INDEX_OPT_AUTOGEN,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zOutputText,  zOutput_NAME,
                            zOutput_Name,
     /* disablement strs */ zNotOutput_Name, zNotOutput_Pfx },

  {  /* entry idx, value */ 13, VALUE_OPT_AUTOGEN,
     /* equiv idx, value */ NO_EQUIVALENT, 0,
     /* option argument  */ ARG_MAY,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLEOK | OPTST_INITENABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zAutogenText,  zAutogen_NAME,
                            zAutogen_Name,
     /* disablement strs */ zNotAutogen_Name, zNotAutogen_Pfx },

  {  /* entry idx, value */ 14, VALUE_OPT_TEMPLATE,
     /* equiv idx, value */ 14, VALUE_OPT_TEMPLATE,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, (const int*)NULL,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zTemplateText,  zTemplate_NAME,
                            zTemplate_Name,
     /* disablement strs */ zNotTemplate_Name, zNotTemplate_Pfx },

  {  /* entry idx, value */ 15, VALUE_OPT_AGARG,
     /* equiv idx, value */ 15, VALUE_OPT_AGARG,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, NOLIMIT, 0,
     /* opt state flags  */ OPTST_STACKED | OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, aAgargCantList,
     /* option proc      */ stackOptArg,
     /* desc, NAME, name */ zAgargText,  zAgarg_NAME,
                            zAgarg_Name,
     /* disablement strs */ zNotAgarg_Name, zNotAgarg_Pfx },

  {  /* entry idx, value */ 16, VALUE_OPT_BASE_NAME,
     /* equiv idx, value */ 16, VALUE_OPT_BASE_NAME,
     /* option argument  */ ARG_MUST,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max, act ct */ 0, 1, 0,
     /* opt state flags  */ OPTST_DISABLED | OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL, aBase_NameCantList,
     /* option proc      */ (tpOptProc)NULL,
     /* desc, NAME, name */ zBase_NameText,  zBase_Name_NAME,
                            zBase_Name_Name,
     /* disablement strs */ zNotBase_Name_Name, zNotBase_Name_Pfx },

  {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
     /* equiv idx value  */ NO_EQUIVALENT, 0,
     /* option argument  */ ARG_MAY,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max act ct  */ 0, 1, 0,
     /* opt state flags  */ OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL,  (const int*)NULL,
     /* option proc      */ doVersion,
     /* desc, NAME, name */ zVersionText,      (const char*)NULL,
                            zVersion_Name,
     /* disablement strs */ (const char*)NULL, (const char*)NULL },

  {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
     /* equiv idx value  */ NO_EQUIVALENT, 0,
     /* option argument  */ ARG_NONE,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max act ct  */ 0, 1, 0,
     /* opt state flags  */ OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL,  (const int*)NULL,
     /* option proc      */ doUsageOpt,
     /* desc, NAME, name */ zHelpText,         (const char*)NULL,
                            zHelp_Name,
     /* disablement strs */ (const char*)NULL, (const char*)NULL },

  {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
     /* equiv idx value  */ NO_EQUIVALENT, 0,
     /* option argument  */ ARG_NONE,
     /* equivalenced to  */ NO_EQUIVALENT,
     /* min, max act ct  */ 0, 1, 0,
     /* opt state flags  */ OPTST_INIT,
     /* last opt argumnt */ (char*)NULL,
     /* arg list/cookie  */ (void*)NULL,
     /* must/cannot opts */ (const int*)NULL,  (const int*)NULL,
     /* option proc      */ doPagedUsage,
     /* desc, NAME, name */ zMore_HelpText,    (const char*)NULL,
                            zMore_Help_Name,
     /* disablement strs */ (const char*)NULL, (const char*)NULL }
};

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Define the Getdefs Option Environment
 */
tSCC   zPROGNAME[]   = "GETDEFS";
tSCC   zUsageTitle[] = GETDEFS_FULL_VERSION 
    "\nUSAGE:  %s [<option-name>[ =<value>]] ...\n";
#define zRcName     (tCC*)NULL
#define apzHomeList (tCC**)NULL
#define zExplain (const char*)NULL

tSCC    zDetail[]     = "\n"
       "This program extracts AutoGen definitions from a list of source files.\n"
       "Definitions are delimited by `/*=<entry-type> <entry-name>\\n' and `=*/\\n'.\n"
       "From that, this program creates a definition of the following form:\n"
       "\n"
       "    #line nnn \"source-file-name\"\n"
       "    entry_type = {\n"
       "        name = entry_name;\n"
       "        ...\n"
       "    };\n"
       "\n"
       "The ellipsis '...' is filled in by text found between the two delimiters,\n"
       "with everything up through the first sequence of asterisks deleted\n"
       "on every line." "\n";

#define zDetailFile (const char*)NULL
extern  tUsageProc optionUsage;
tSCC    zFullVersion[] = GETDEFS_FULL_VERSION;

tOptions getdefsOptions = {
    OPTIONS_STRUCT_VERSION,
    (char*)NULL,    (char*)NULL,    zPROGNAME,
    zRcName,        zCopyright,     zCopyrightNotice,
    zFullVersion,   apzHomeList,    zUsageTitle,
    zExplain,       zDetail,        zDetailFile,
    optionUsage,
    ( OPTPROC_NONE
    + OPTPROC_ERRSTOP
    + OPTPROC_DISABLEOK
    + OPTPROC_NEGATIONS
    + OPTPROC_NO_ARGS ),
    0, (char*)NULL,
    { INDEX_OPT_MORE_HELP,
       0 /* no option state saving */,
      NO_EQUIVALENT /* no '-#' option */,
      2 /* index of default opt */ },
    OPTION_CT, 17,
    optDesc
};

/*
 *  Create the static procedure(s) declared above.
 */
    static void
doUsageOpt( tOptions*  pOpts, tOptDesc* pOD )
{
    USAGE( EXIT_SUCCESS );
}

