Home | History | Annotate | Line # | Download | only in ntpsnmpd
ntpsnmpd-opts.c revision 1.1
      1 /*	$NetBSD: ntpsnmpd-opts.c,v 1.1 2009/12/13 16:56:34 kardel Exp $	*/
      2 
      3 /*
      4  *  EDIT THIS FILE WITH CAUTION  (ntpsnmpd-opts.c)
      5  *
      6  *  It has been AutoGen-ed  December 10, 2009 at 05:03:45 AM by AutoGen 5.10
      7  *  From the definitions    ntpsnmpd-opts.def
      8  *  and the template file   options
      9  *
     10  * Generated from AutoOpts 33:0:8 templates.
     11  */
     12 
     13 /*
     14  *  This file was produced by an AutoOpts template.  AutoOpts is a
     15  *  copyrighted work.  This source file is not encumbered by AutoOpts
     16  *  licensing, but is provided under the licensing terms chosen by the
     17  *  ntpsnmpd author or copyright holder.  AutoOpts is licensed under
     18  *  the terms of the LGPL.  The redistributable library (``libopts'') is
     19  *  licensed under the terms of either the LGPL or, at the users discretion,
     20  *  the BSD license.  See the AutoOpts and/or libopts sources for details.
     21  *
     22  * This source file is copyrighted and licensed under the following terms:
     23  *
     24  * ntpsnmpd copyright (c) 1970-2009 David L. Mills and/or others - all rights reserved
     25  *
     26  * see html/copyright.html
     27  */
     28 
     29 #include <sys/types.h>
     30 #include <limits.h>
     31 #include <stdio.h>
     32 #include <stdlib.h>
     33 
     34 #define OPTION_CODE_COMPILE 1
     35 #include "ntpsnmpd-opts.h"
     36 
     37 #ifdef  __cplusplus
     38 extern "C" {
     39 #endif
     40 
     41 /* TRANSLATORS: choose the translation for option names wisely because you
     42                 cannot ever change your mind. */
     43 tSCC zCopyright[] =
     44        "ntpsnmpd copyright (c) 1970-2009 David L. Mills and/or others, all rights reserved"
     45 /* extracted from ../include/copyright.def near line 8 */
     46 ;
     47 tSCC zCopyrightNotice[24] =
     48 "see html/copyright.html";
     49 
     50 extern tUsageProc optionUsage;
     51 
     52 #ifndef NULL
     53 #  define NULL 0
     54 #endif
     55 #ifndef EXIT_SUCCESS
     56 #  define  EXIT_SUCCESS 0
     57 #endif
     58 #ifndef EXIT_FAILURE
     59 #  define  EXIT_FAILURE 1
     60 #endif
     61 
     62 /*
     63  *  Nofork option description:
     64  */
     65 tSCC    zNoforkText[] =
     66         "Do not fork";
     67 tSCC    zNofork_NAME[]             = "NOFORK";
     68 tSCC    zNofork_Name[]             = "nofork";
     69 #define NOFORK_FLAGS       (OPTST_DISABLED)
     70 
     71 /*
     72  *  Syslog option description:
     73  */
     74 tSCC    zSyslogText[] =
     75         "Log to syslog()";
     76 tSCC    zSyslog_NAME[]             = "SYSLOG";
     77 tSCC    zSyslog_Name[]             = "syslog";
     78 #define SYSLOG_FLAGS       (OPTST_DISABLED)
     79 
     80 /*
     81  *  Help/More_Help/Version option descriptions:
     82  */
     83 tSCC zHelpText[]          = "Display extended usage information and exit";
     84 tSCC zHelp_Name[]         = "help";
     85 #ifdef HAVE_WORKING_FORK
     86 #define OPTST_MORE_HELP_FLAGS   (OPTST_IMM | OPTST_NO_INIT)
     87 tSCC zMore_Help_Name[]    = "more-help";
     88 tSCC zMore_HelpText[]     = "Extended usage information passed thru pager";
     89 #else
     90 #define OPTST_MORE_HELP_FLAGS   (OPTST_OMITTED | OPTST_NO_INIT)
     91 #define zMore_Help_Name   NULL
     92 #define zMore_HelpText    NULL
     93 #endif
     94 #ifdef NO_OPTIONAL_OPT_ARGS
     95 #  define OPTST_VERSION_FLAGS   OPTST_IMM | OPTST_NO_INIT
     96 #else
     97 #  define OPTST_VERSION_FLAGS   OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
     98                                 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT
     99 #endif
    100 
    101 tSCC zVersionText[]       = "Output version information and exit";
    102 tSCC zVersion_Name[]      = "version";
    103 tSCC zSave_OptsText[]     = "Save the option state to a config file";
    104 tSCC zSave_Opts_Name[]    = "save-opts";
    105 tSCC zLoad_OptsText[]     = "Load options from a config file";
    106 tSCC zLoad_Opts_NAME[]    = "LOAD_OPTS";
    107 tSCC zNotLoad_Opts_Name[] = "no-load-opts";
    108 tSCC zNotLoad_Opts_Pfx[]  = "no";
    109 #define zLoad_Opts_Name   (zNotLoad_Opts_Name + 3)
    110 /*
    111  *  Declare option callback procedures
    112  */
    113 #if defined(TEST_NTPSNMPD_OPTS)
    114 /*
    115  *  Under test, omit argument processing, or call optionStackArg,
    116  *  if multiple copies are allowed.
    117  */
    118 extern tOptProc
    119     optionPagedUsage, optionVersionStderr;
    120 static tOptProc
    121     doUsageOpt;
    122 
    123 #else /* NOT defined TEST_NTPSNMPD_OPTS */
    124 /*
    125  *  When not under test, there are different procs to use
    126  */
    127 extern tOptProc
    128     optionPagedUsage, optionPrintVersion;
    129 static tOptProc
    130     doUsageOpt;
    131 #endif /* defined(TEST_NTPSNMPD_OPTS) */
    132 #ifdef TEST_NTPSNMPD_OPTS
    133 # define DOVERPROC optionVersionStderr
    134 #else
    135 # define DOVERPROC optionPrintVersion
    136 #endif /* TEST_NTPSNMPD_OPTS */
    137 
    138 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    139  *
    140  *  Define the Ntpsnmpd Option Descriptions.
    141  */
    142 static tOptDesc optDesc[ OPTION_CT ] = {
    143   {  /* entry idx, value */ 0, VALUE_OPT_NOFORK,
    144      /* equiv idx, value */ 0, VALUE_OPT_NOFORK,
    145      /* equivalenced to  */ NO_EQUIVALENT,
    146      /* min, max, act ct */ 0, 1, 0,
    147      /* opt state flags  */ NOFORK_FLAGS, 0,
    148      /* last opt argumnt */ { NULL },
    149      /* arg list/cookie  */ NULL,
    150      /* must/cannot opts */ NULL, NULL,
    151      /* option proc      */ NULL,
    152      /* desc, NAME, name */ zNoforkText, zNofork_NAME, zNofork_Name,
    153      /* disablement strs */ NULL, NULL },
    154 
    155   {  /* entry idx, value */ 1, VALUE_OPT_SYSLOG,
    156      /* equiv idx, value */ 1, VALUE_OPT_SYSLOG,
    157      /* equivalenced to  */ NO_EQUIVALENT,
    158      /* min, max, act ct */ 0, 1, 0,
    159      /* opt state flags  */ SYSLOG_FLAGS, 0,
    160      /* last opt argumnt */ { NULL },
    161      /* arg list/cookie  */ NULL,
    162      /* must/cannot opts */ NULL, NULL,
    163      /* option proc      */ NULL,
    164      /* desc, NAME, name */ zSyslogText, zSyslog_NAME, zSyslog_Name,
    165      /* disablement strs */ NULL, NULL },
    166 
    167   {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
    168      /* equiv idx value  */ NO_EQUIVALENT, 0,
    169      /* equivalenced to  */ NO_EQUIVALENT,
    170      /* min, max, act ct */ 0, 1, 0,
    171      /* opt state flags  */ OPTST_VERSION_FLAGS, 0,
    172      /* last opt argumnt */ { NULL },
    173      /* arg list/cookie  */ NULL,
    174      /* must/cannot opts */ NULL, NULL,
    175      /* option proc      */ DOVERPROC,
    176      /* desc, NAME, name */ zVersionText, NULL, zVersion_Name,
    177      /* disablement strs */ NULL, NULL },
    178 
    179 
    180 
    181   {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
    182      /* equiv idx value  */ NO_EQUIVALENT, 0,
    183      /* equivalenced to  */ NO_EQUIVALENT,
    184      /* min, max, act ct */ 0, 1, 0,
    185      /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
    186      /* last opt argumnt */ { NULL },
    187      /* arg list/cookie  */ NULL,
    188      /* must/cannot opts */ NULL, NULL,
    189      /* option proc      */ doUsageOpt,
    190      /* desc, NAME, name */ zHelpText, NULL, zHelp_Name,
    191      /* disablement strs */ NULL, NULL },
    192 
    193   {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
    194      /* equiv idx value  */ NO_EQUIVALENT, 0,
    195      /* equivalenced to  */ NO_EQUIVALENT,
    196      /* min, max, act ct */ 0, 1, 0,
    197      /* opt state flags  */ OPTST_MORE_HELP_FLAGS, 0,
    198      /* last opt argumnt */ { NULL },
    199      /* arg list/cookie  */ NULL,
    200      /* must/cannot opts */ NULL,  NULL,
    201      /* option proc      */ optionPagedUsage,
    202      /* desc, NAME, name */ zMore_HelpText, NULL, zMore_Help_Name,
    203      /* disablement strs */ NULL, NULL },
    204 
    205   {  /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
    206      /* equiv idx value  */ NO_EQUIVALENT, 0,
    207      /* equivalenced to  */ NO_EQUIVALENT,
    208      /* min, max, act ct */ 0, 1, 0,
    209      /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
    210                           | OPTST_ARG_OPTIONAL | OPTST_NO_INIT, 0,
    211      /* last opt argumnt */ { NULL },
    212      /* arg list/cookie  */ NULL,
    213      /* must/cannot opts */ NULL,  NULL,
    214      /* option proc      */ NULL,
    215      /* desc, NAME, name */ zSave_OptsText, NULL, zSave_Opts_Name,
    216      /* disablement strs */ NULL, NULL },
    217 
    218   {  /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
    219      /* equiv idx value  */ NO_EQUIVALENT, 0,
    220      /* equivalenced to  */ NO_EQUIVALENT,
    221      /* min, max, act ct */ 0, NOLIMIT, 0,
    222      /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
    223 			  | OPTST_DISABLE_IMM, 0,
    224      /* last opt argumnt */ { NULL },
    225      /* arg list/cookie  */ NULL,
    226      /* must/cannot opts */ NULL, NULL,
    227      /* option proc      */ optionLoadOpt,
    228      /* desc, NAME, name */ zLoad_OptsText, zLoad_Opts_NAME, zLoad_Opts_Name,
    229      /* disablement strs */ zNotLoad_Opts_Name, zNotLoad_Opts_Pfx }
    230 };
    231 
    232 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    233  *
    234  *  Define the Ntpsnmpd Option Environment
    235  */
    236 tSCC   zPROGNAME[]   = "NTPSNMPD";
    237 tSCC   zUsageTitle[] =
    238 "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.6\n\
    239 USAGE:  %s [ -<flag> | --<name> ]...\n";
    240 tSCC   zRcName[]     = ".ntprc";
    241 tSCC*  apzHomeList[] = {
    242        "$HOME",
    243        ".",
    244        NULL };
    245 
    246 tSCC   zBugsAddr[]    = "http://bugs.ntp.org, bugs (at) ntp.org";
    247 #define zExplain NULL
    248 #define zDetail         NULL
    249 tSCC    zFullVersion[] = NTPSNMPD_FULL_VERSION;
    250 /* extracted from /usr/local/gnu/share/autogen/optcode.tpl near line 495 */
    251 
    252 #if defined(ENABLE_NLS)
    253 # define OPTPROC_BASE OPTPROC_TRANSLATE
    254   static tOptionXlateProc translate_option_strings;
    255 #else
    256 # define OPTPROC_BASE OPTPROC_NONE
    257 # define translate_option_strings NULL
    258 #endif /* ENABLE_NLS */
    259 
    260 
    261 #define ntpsnmpd_full_usage NULL
    262 #define ntpsnmpd_short_usage NULL
    263 tOptions ntpsnmpdOptions = {
    264     OPTIONS_STRUCT_VERSION,
    265     0, NULL,                    /* original argc + argv    */
    266     ( OPTPROC_BASE
    267     + OPTPROC_ERRSTOP
    268     + OPTPROC_SHORTOPT
    269     + OPTPROC_LONGOPT
    270     + OPTPROC_NO_REQ_OPT
    271     + OPTPROC_ENVIRON
    272     + OPTPROC_NO_ARGS ),
    273     0, NULL,                    /* current option index, current option */
    274     NULL,         NULL,         zPROGNAME,
    275     zRcName,      zCopyright,   zCopyrightNotice,
    276     zFullVersion, apzHomeList,  zUsageTitle,
    277     zExplain,     zDetail,      optDesc,
    278     zBugsAddr,                  /* address to send bugs to */
    279     NULL, NULL,                 /* extensions/saved state  */
    280     optionUsage,       /* usage procedure */
    281     translate_option_strings,   /* translation procedure */
    282     /*
    283      *  Indexes to special options
    284      */
    285     { INDEX_OPT_MORE_HELP, /* more-help option index */
    286       INDEX_OPT_SAVE_OPTS, /* save option index */
    287       NO_EQUIVALENT, /* '-#' option index */
    288       NO_EQUIVALENT /* index of default opt */
    289     },
    290     7 /* full option count */, 2 /* user option count */,
    291     ntpsnmpd_full_usage, ntpsnmpd_short_usage,
    292     NULL, NULL
    293 };
    294 
    295 /*
    296  *  Create the static procedure(s) declared above.
    297  */
    298 static void
    299 doUsageOpt(
    300     tOptions*   pOptions,
    301     tOptDesc*   pOptDesc )
    302 {
    303     (void)pOptions;
    304     USAGE( EXIT_SUCCESS );
    305 }
    306 /* extracted from /usr/local/gnu/share/autogen/optmain.tpl near line 109 */
    307 
    308 #if defined(TEST_NTPSNMPD_OPTS) /* TEST MAIN PROCEDURE: */
    309 
    310 extern void optionPutShell( tOptions* );
    311 
    312 int
    313 main(int argc, char** argv)
    314 {
    315     int res = EXIT_SUCCESS;
    316     (void)optionProcess( &ntpsnmpdOptions, argc, argv );
    317     optionPutShell( &ntpsnmpdOptions );
    318     return res;
    319 }
    320 #endif  /* defined TEST_NTPSNMPD_OPTS */
    321 /* extracted from /usr/local/gnu/share/autogen/optcode.tpl near line 627 */
    322 
    323 #if ENABLE_NLS
    324 #include <stdio.h>
    325 #include <stdlib.h>
    326 #include <string.h>
    327 #include <unistd.h>
    328 #include <autoopts/usage-txt.h>
    329 
    330 static char* AO_gettext( char const* pz );
    331 static void  coerce_it(void** s);
    332 
    333 static char*
    334 AO_gettext( char const* pz )
    335 {
    336     char* pzRes;
    337     if (pz == NULL)
    338         return NULL;
    339     pzRes = _(pz);
    340     if (pzRes == pz)
    341         return pzRes;
    342     pzRes = strdup( pzRes );
    343     if (pzRes == NULL) {
    344         fputs( _("No memory for duping translated strings\n"), stderr );
    345         exit( EXIT_FAILURE );
    346     }
    347     return pzRes;
    348 }
    349 
    350 static void coerce_it(void** s) { *s = AO_gettext(*s); }
    351 #define COERSION(_f) \
    352   coerce_it((void*)&(ntpsnmpdOptions._f))
    353 
    354 /*
    355  *  This invokes the translation code (e.g. gettext(3)).
    356  */
    357 static void
    358 translate_option_strings( void )
    359 {
    360     /*
    361      *  Guard against re-translation.  It won't work.  The strings will have
    362      *  been changed by the first pass through this code.  One shot only.
    363      */
    364     if (option_usage_text.field_ct != 0) {
    365 
    366         /*
    367          *  Do the translations.  The first pointer follows the field count
    368          *  field.  The field count field is the size of a pointer.
    369          */
    370         tOptDesc* pOD = ntpsnmpdOptions.pOptDesc;
    371         char**    ppz = (char**)(void*)&(option_usage_text);
    372         int       ix  = option_usage_text.field_ct;
    373 
    374         do {
    375             ppz++;
    376             *ppz = AO_gettext(*ppz);
    377         } while (--ix > 0);
    378 
    379         COERSION(pzCopyright);
    380         COERSION(pzCopyNotice);
    381         COERSION(pzFullVersion);
    382         COERSION(pzUsageTitle);
    383         COERSION(pzExplain);
    384         COERSION(pzDetail);
    385         option_usage_text.field_ct = 0;
    386 
    387         for (ix = ntpsnmpdOptions.optCt; ix > 0; ix--, pOD++)
    388             coerce_it((void*)&(pOD->pzText));
    389     }
    390 
    391     if ((ntpsnmpdOptions.fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
    392         tOptDesc* pOD = ntpsnmpdOptions.pOptDesc;
    393         int       ix;
    394 
    395         for (ix = ntpsnmpdOptions.optCt; ix > 0; ix--, pOD++) {
    396             coerce_it((void*)&(pOD->pz_Name));
    397             coerce_it((void*)&(pOD->pz_DisableName));
    398             coerce_it((void*)&(pOD->pz_DisablePfx));
    399         }
    400         /* prevent re-translation */
    401         ntpsnmpdOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
    402     }
    403 }
    404 
    405 #endif /* ENABLE_NLS */
    406 
    407 #ifdef  __cplusplus
    408 }
    409 #endif
    410 /* ntpsnmpd-opts.c ends here */
    411