| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 | /*   -*- buffer-read-only: t -*- vi: set ro: *   *  DO NOT EDIT THIS FILE   (genshell.c) *   *  It has been AutoGen-ed  Sunday April  9, 2006 at 11:49:19 AM PDT *  From the definitions    genshell.def *  and the template file   options */#define OPTION_CODE_COMPILE 1#include "genshell.h"#ifdef  __cplusplusextern "C" {#endiftSCC zCopyright[] =       "genshellopt copyright (c) 1999-2006 Bruce Korb, all rights reserved";tSCC zCopyrightNotice[] =       "genshellopt is free software; you can redistribute it and/or\n\modify it under the terms of the GNU Lesser General Public\n\License as published by the Free Software Foundation; either\n\version 2.1 of the License, or (at your option) any later version.\n\n\genshellopt 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.  See the GNU\n\Lesser General Public License for more details.\n\n\You should have received a copy of the GNU Lesser General Public\n\License along with genshellopt.  If not, write to:\n\\tThe Free Software Foundation, Inc.,\n\\t51 Franklin Street, Fifth Floor\n\\tBoston, MA  02110-1301, USA.";extern tUsageProc genshelloptUsage;#ifndef NULL#  define NULL 0#endif#ifndef EXIT_SUCCESS#  define  EXIT_SUCCESS 0#endif#ifndef EXIT_FAILURE#  define  EXIT_FAILURE 1#endif/* *  Script option description: */tSCC    zScriptText[] =        "Output Script File";tSCC    zScript_NAME[]             = "SCRIPT";tSCC    zScript_Name[]             = "script";#define SCRIPT_FLAGS       (OPTST_DISABLED \	| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))/* *  Shell option description: */tSCC    zShellText[] =        "Shell name (follows \"#!\" magic)";tSCC    zShell_NAME[]              = "SHELL";tSCC    zNotShell_Name[]           = "no-shell";tSCC    zNotShell_Pfx[]            = "no";#define zShell_Name                  (zNotShell_Name + 3)#define SHELL_FLAGS       (OPTST_INITENABLED \	| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))/* *  Help/More_Help/Version option descriptions: */tSCC zHelpText[]       = "Display usage information and exit";tSCC zHelp_Name[]      = "help";tSCC zMore_HelpText[]  = "Extended usage information passed thru pager";tSCC zMore_Help_Name[] = "more-help";tSCC zVersionText[]    = "Output version information and exit";tSCC zVersion_Name[]   = "version";/* *  Declare option callback procedures */extern tOptProc    optionPagedUsage, optionPrintVersion;static tOptProc    doUsageOpt;/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  Define the Genshellopt Option Descriptions. */static tOptDesc optDesc[ OPTION_CT ] = {  {  /* entry idx, value */ 0, VALUE_OPT_SCRIPT,     /* equiv idx, value */ 0, VALUE_OPT_SCRIPT,     /* equivalenced to  */ NO_EQUIVALENT,     /* min, max, act ct */ 0, 1, 0,     /* opt state flags  */ SCRIPT_FLAGS, 0,     /* last opt argumnt */ NULL,     /* arg list/cookie  */ NULL,     /* must/cannot opts */ NULL, NULL,     /* option proc      */ NULL,     /* desc, NAME, name */ zScriptText, zScript_NAME, zScript_Name,     /* disablement strs */ NULL, NULL },  {  /* entry idx, value */ 1, VALUE_OPT_SHELL,     /* equiv idx, value */ 1, VALUE_OPT_SHELL,     /* equivalenced to  */ NO_EQUIVALENT,     /* min, max, act ct */ 0, 1, 0,     /* opt state flags  */ SHELL_FLAGS, 0,     /* last opt argumnt */ NULL,     /* arg list/cookie  */ NULL,     /* must/cannot opts */ NULL, NULL,     /* option proc      */ NULL,     /* desc, NAME, name */ zShellText, zShell_NAME, zShell_Name,     /* disablement strs */ zNotShell_Name, zNotShell_Pfx },  {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,     /* equiv idx value  */ NO_EQUIVALENT, 0,     /* equivalenced to  */ NO_EQUIVALENT,     /* min, max, act ct */ 0, 1, 0,     /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)                          | OPTST_ARG_OPTIONAL, 0,     /* last opt argumnt */ NULL,     /* arg list/cookie  */ NULL,     /* must/cannot opts */ NULL, NULL,     /* option proc      */ optionPrintVersion,     /* desc, NAME, name */ zVersionText, NULL, zVersion_Name,     /* disablement strs */ NULL, NULL },  {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,     /* equiv idx value  */ NO_EQUIVALENT, 0,     /* equivalenced to  */ NO_EQUIVALENT,     /* min, max, act ct */ 0, 1, 0,     /* opt state flags  */ OPTST_IMM, 0,     /* last opt argumnt */ NULL,     /* arg list/cookie  */ NULL,     /* must/cannot opts */ NULL, NULL,     /* option proc      */ doUsageOpt,     /* desc, NAME, name */ zHelpText, NULL, zHelp_Name,     /* disablement strs */ NULL, NULL },  {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,     /* equiv idx value  */ NO_EQUIVALENT, 0,     /* equivalenced to  */ NO_EQUIVALENT,     /* min, max, act ct */ 0, 1, 0,     /* opt state flags  */ OPTST_IMM, 0,     /* last opt argumnt */ NULL,     /* arg list/cookie  */ NULL,     /* must/cannot opts */ NULL,  NULL,     /* option proc      */ optionPagedUsage,     /* desc, NAME, name */ zMore_HelpText, NULL, zMore_Help_Name,     /* disablement strs */ NULL, NULL }};/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  Define the Genshellopt Option Environment */tSCC   zPROGNAME[]   = "GENSHELLOPT";tSCC   zUsageTitle[] ="genshellopt - Generate Shell Option Processing Script - Ver. 1\n\USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n";#define zRcName     NULL#define apzHomeList NULLtSCC   zBugsAddr[]    = "autogen-users@lists.sf.net";tSCC   zExplain[]     = "\n\Note that `shell' is only useful if the output file does not already\n\exist.  If it does, then the shell name and optional first argument\n\will be extracted from the script file.\n";tSCC    zDetail[]     = "\n\If the script file already exists and contains Automated Option Processing\n\text, the second line of the file through the ending tag will be replaced\n\by the newly generated text.  The first `#!' line will be regenerated.\n";tSCC    zFullVersion[] = GENSHELLOPT_FULL_VERSION;/* extracted from optcode near line 321 */#if defined(ENABLE_NLS)# define OPTPROC_BASE OPTPROC_TRANSLATE  static tOptionXlateProc translate_option_strings;#else# define OPTPROC_BASE OPTPROC_NONE# define translate_option_strings NULL#endif /* ENABLE_NLS */tOptions genshelloptOptions = {    OPTIONS_STRUCT_VERSION,    0, NULL,                    /* original argc + argv    */    ( OPTPROC_BASE    + OPTPROC_ERRSTOP    + OPTPROC_SHORTOPT    + OPTPROC_LONGOPT    + OPTPROC_NO_REQ_OPT    + OPTPROC_NEGATIONS    + OPTPROC_NO_ARGS ),    0, NULL,                    /* current option index, current option */    NULL,         NULL,         zPROGNAME,    zRcName,      zCopyright,   zCopyrightNotice,    zFullVersion, apzHomeList,  zUsageTitle,    zExplain,     zDetail,      optDesc,    zBugsAddr,                  /* address to send bugs to */    NULL, NULL,                 /* extensions/saved state  */    genshelloptUsage,       /* usage procedure */    translate_option_strings,   /* translation procedure */    /*     *  Indexes to special options     */    { INDEX_OPT_MORE_HELP,       0 /* no option state saving */,      NO_EQUIVALENT /* index of '-#' option */,      NO_EQUIVALENT /* index of default opt */    },    OPTION_CT, 2 /* user option count */};/* *  Create the static procedure(s) declared above. */static voiddoUsageOpt(    tOptions*   pOptions,    tOptDesc*   pOptDesc ){    USAGE( EXIT_SUCCESS );}/* extracted from optcode near line 418 */#if ENABLE_NLS#include <stdio.h>#include <string.h>#include <unistd.h>#include <autoopts/usage-txt.h>static char*AO_gettext( const char* pz ){    char* pzRes;    if (pz == NULL)        return NULL;    pzRes = _(pz);    if (pzRes == pz)        return pzRes;    pzRes = strdup( pzRes );    if (pzRes == NULL) {        fputs( _("No memory for duping translated strings\n"), stderr );        exit( EXIT_FAILURE );    }    return pzRes;}/* *  This invokes the translation code (e.g. gettext(3)). */static voidtranslate_option_strings( void ){    /*     *  Guard against re-translation.  It won't work.  The strings will have     *  been changed by the first pass through this code.  One shot only.     */    if (option_usage_text.field_ct == 0)        return;    /*     *  Do the translations.  The first pointer follows the field count field.     *  The field count field is the size of a pointer.     */    {        char** ppz = (char**)(void*)&(option_usage_text);        int    ix  = option_usage_text.field_ct;        do {            ppz++;            *ppz = AO_gettext(*ppz);        } while (--ix > 0);    }    option_usage_text.field_ct = 0;    {        tOptDesc* pOD = genshelloptOptions.pOptDesc;        int       ix  = genshelloptOptions.optCt;        for (;;) {            pOD->pzText           = AO_gettext(pOD->pzText);            pOD->pz_NAME          = AO_gettext(pOD->pz_NAME);            pOD->pz_Name          = AO_gettext(pOD->pz_Name);            pOD->pz_DisableName   = AO_gettext(pOD->pz_DisableName);            pOD->pz_DisablePfx    = AO_gettext(pOD->pz_DisablePfx);            if (--ix <= 0)                break;            pOD++;        }    }    genshelloptOptions.pzCopyright   = AO_gettext(genshelloptOptions.pzCopyright);    genshelloptOptions.pzCopyNotice  = AO_gettext(genshelloptOptions.pzCopyNotice);    genshelloptOptions.pzFullVersion = AO_gettext(genshelloptOptions.pzFullVersion);    genshelloptOptions.pzUsageTitle  = AO_gettext(genshelloptOptions.pzUsageTitle);    genshelloptOptions.pzExplain     = AO_gettext(genshelloptOptions.pzExplain);    genshelloptOptions.pzDetail      = AO_gettext(genshelloptOptions.pzDetail);}#endif /* ENABLE_NLS */#ifdef  __cplusplus}#endif
 |