Annotation of embedaddon/ntp/util/ntp-keygen-opts.c, revision 1.1.1.1

1.1       misho       1: /*  
                      2:  *  EDIT THIS FILE WITH CAUTION  (ntp-keygen-opts.c)
                      3:  *  
                      4:  *  It has been AutoGen-ed  December 24, 2011 at 06:34:40 PM by AutoGen 5.12
                      5:  *  From the definitions    ntp-keygen-opts.def
                      6:  *  and the template file   options
                      7:  *
                      8:  * Generated from AutoOpts 35:0:10 templates.
                      9:  *
                     10:  *  AutoOpts is a copyrighted work.  This source file is not encumbered
                     11:  *  by AutoOpts licensing, but is provided under the licensing terms chosen
                     12:  *  by the ntp-keygen author or copyright holder.  AutoOpts is
                     13:  *  licensed under the terms of the LGPL.  The redistributable library
                     14:  *  (``libopts'') is licensed under the terms of either the LGPL or, at the
                     15:  *  users discretion, the BSD license.  See the AutoOpts and/or libopts sources
                     16:  *  for details.
                     17:  *
                     18:  * This source file is copyrighted and licensed under the following terms:
                     19:  *
                     20:  *  see html/copyright.html
                     21:  *  
                     22:  */
                     23: 
                     24: #include <sys/types.h>
                     25: 
                     26: #include <limits.h>
                     27: #include <stdio.h>
                     28: #include <stdlib.h>
                     29: #include <errno.h>
                     30: #define OPTION_CODE_COMPILE 1
                     31: #include "ntp-keygen-opts.h"
                     32: 
                     33: #ifdef  __cplusplus
                     34: extern "C" {
                     35: #endif
                     36: extern FILE * option_usage_fp;
                     37: 
                     38: /* TRANSLATORS: choose the translation for option names wisely because you
                     39:                 cannot ever change your mind. */
                     40: static char const zCopyright[50] =
                     41: "ntp-keygen (ntp) 4.2.6p5\n\
                     42: see html/copyright.html\n";
                     43: static char const zLicenseDescrip[25] =
                     44: "see html/copyright.html\n";
                     45: 
                     46: extern tUsageProc optionUsage;
                     47: 
                     48: /*
                     49:  *  global included definitions
                     50:  */
                     51: #include <stdlib.h>
                     52: #ifdef __windows
                     53:   extern int atoi(const char*);
                     54: #else
                     55: # include <stdlib.h>
                     56: #endif
                     57: 
                     58: #ifndef NULL
                     59: #  define NULL 0
                     60: #endif
                     61: 
                     62: /*
                     63:  *  Certificate option description:
                     64:  */
                     65: #ifdef OPENSSL
                     66: static char const zCertificateText[] =
                     67:         "certificate scheme";
                     68: static char const zCertificate_NAME[]        = "CERTIFICATE";
                     69: static char const zCertificate_Name[]        = "certificate";
                     70: #define CERTIFICATE_FLAGS       (OPTST_DISABLED \
                     71:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                     72: 
                     73: #else   /* disable Certificate */
                     74: #define CERTIFICATE_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                     75: #define zCertificate_NAME      NULL
                     76: #define zCertificateText       NULL
                     77: #define zCertificate_Name      NULL
                     78: #endif  /* OPENSSL */
                     79: 
                     80: /*
                     81:  *  Debug_Level option description:
                     82:  */
                     83: static char const zDebug_LevelText[] =
                     84:         "Increase output debug message level";
                     85: static char const zDebug_Level_NAME[]        = "DEBUG_LEVEL";
                     86: static char const zDebug_Level_Name[]        = "debug-level";
                     87: #define DEBUG_LEVEL_FLAGS       (OPTST_DISABLED)
                     88: 
                     89: /*
                     90:  *  Set_Debug_Level option description:
                     91:  */
                     92: static char const zSet_Debug_LevelText[] =
                     93:         "Set the output debug message level";
                     94: static char const zSet_Debug_Level_NAME[]    = "SET_DEBUG_LEVEL";
                     95: static char const zSet_Debug_Level_Name[]    = "set-debug-level";
                     96: #define SET_DEBUG_LEVEL_FLAGS       (OPTST_DISABLED \
                     97:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                     98: 
                     99: /*
                    100:  *  Id_Key option description:
                    101:  */
                    102: #ifdef OPENSSL
                    103: static char const zId_KeyText[] =
                    104:         "Write IFF or GQ identity keys";
                    105: static char const zId_Key_NAME[]             = "ID_KEY";
                    106: static char const zId_Key_Name[]             = "id-key";
                    107: #define ID_KEY_FLAGS       (OPTST_DISABLED)
                    108: 
                    109: #else   /* disable Id_Key */
                    110: #define ID_KEY_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    111: #define zId_Key_NAME      NULL
                    112: #define zId_KeyText       NULL
                    113: #define zId_Key_Name      NULL
                    114: #endif  /* OPENSSL */
                    115: 
                    116: /*
                    117:  *  Gq_Params option description:
                    118:  */
                    119: #ifdef OPENSSL
                    120: static char const zGq_ParamsText[] =
                    121:         "Generate GQ parameters and keys";
                    122: static char const zGq_Params_NAME[]          = "GQ_PARAMS";
                    123: static char const zGq_Params_Name[]          = "gq-params";
                    124: #define GQ_PARAMS_FLAGS       (OPTST_DISABLED)
                    125: 
                    126: #else   /* disable Gq_Params */
                    127: #define GQ_PARAMS_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    128: #define zGq_Params_NAME      NULL
                    129: #define zGq_ParamsText       NULL
                    130: #define zGq_Params_Name      NULL
                    131: #endif  /* OPENSSL */
                    132: 
                    133: /*
                    134:  *  Host_Key option description:
                    135:  */
                    136: #ifdef OPENSSL
                    137: static char const zHost_KeyText[] =
                    138:         "generate RSA host key";
                    139: static char const zHost_Key_NAME[]           = "HOST_KEY";
                    140: static char const zHost_Key_Name[]           = "host-key";
                    141: #define HOST_KEY_FLAGS       (OPTST_DISABLED)
                    142: 
                    143: #else   /* disable Host_Key */
                    144: #define HOST_KEY_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    145: #define zHost_Key_NAME      NULL
                    146: #define zHost_KeyText       NULL
                    147: #define zHost_Key_Name      NULL
                    148: #endif  /* OPENSSL */
                    149: 
                    150: /*
                    151:  *  Iffkey option description:
                    152:  */
                    153: #ifdef OPENSSL
                    154: static char const zIffkeyText[] =
                    155:         "generate IFF parameters";
                    156: static char const zIffkey_NAME[]             = "IFFKEY";
                    157: static char const zIffkey_Name[]             = "iffkey";
                    158: #define IFFKEY_FLAGS       (OPTST_DISABLED)
                    159: 
                    160: #else   /* disable Iffkey */
                    161: #define IFFKEY_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    162: #define zIffkey_NAME      NULL
                    163: #define zIffkeyText       NULL
                    164: #define zIffkey_Name      NULL
                    165: #endif  /* OPENSSL */
                    166: 
                    167: /*
                    168:  *  Issuer_Name option description:
                    169:  */
                    170: #ifdef OPENSSL
                    171: static char const zIssuer_NameText[] =
                    172:         "set issuer name";
                    173: static char const zIssuer_Name_NAME[]        = "ISSUER_NAME";
                    174: static char const zIssuer_Name_Name[]        = "issuer-name";
                    175: #define ISSUER_NAME_FLAGS       (OPTST_DISABLED \
                    176:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    177: 
                    178: #else   /* disable Issuer_Name */
                    179: #define ISSUER_NAME_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    180: #define zIssuer_Name_NAME      NULL
                    181: #define zIssuer_NameText       NULL
                    182: #define zIssuer_Name_Name      NULL
                    183: #endif  /* OPENSSL */
                    184: 
                    185: /*
                    186:  *  Md5key option description:
                    187:  */
                    188: static char const zMd5keyText[] =
                    189:         "generate MD5 keys";
                    190: static char const zMd5key_NAME[]             = "MD5KEY";
                    191: static char const zMd5key_Name[]             = "md5key";
                    192: #define MD5KEY_FLAGS       (OPTST_DISABLED)
                    193: 
                    194: /*
                    195:  *  Modulus option description:
                    196:  */
                    197: #ifdef OPENSSL
                    198: static char const zModulusText[] =
                    199:         "modulus";
                    200: static char const zModulus_NAME[]            = "MODULUS";
                    201: static char const zModulus_Name[]            = "modulus";
                    202: #define MODULUS_FLAGS       (OPTST_DISABLED \
                    203:         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
                    204: 
                    205: #else   /* disable Modulus */
                    206: #define MODULUS_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    207: #define zModulus_NAME      NULL
                    208: #define zModulusText       NULL
                    209: #define zModulus_Name      NULL
                    210: #endif  /* OPENSSL */
                    211: 
                    212: /*
                    213:  *  Pvt_Cert option description:
                    214:  */
                    215: #ifdef OPENSSL
                    216: static char const zPvt_CertText[] =
                    217:         "generate PC private certificate";
                    218: static char const zPvt_Cert_NAME[]           = "PVT_CERT";
                    219: static char const zPvt_Cert_Name[]           = "pvt-cert";
                    220: #define PVT_CERT_FLAGS       (OPTST_DISABLED)
                    221: 
                    222: #else   /* disable Pvt_Cert */
                    223: #define PVT_CERT_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    224: #define zPvt_Cert_NAME      NULL
                    225: #define zPvt_CertText       NULL
                    226: #define zPvt_Cert_Name      NULL
                    227: #endif  /* OPENSSL */
                    228: 
                    229: /*
                    230:  *  Pvt_Passwd option description:
                    231:  */
                    232: #ifdef OPENSSL
                    233: static char const zPvt_PasswdText[] =
                    234:         "output private password";
                    235: static char const zPvt_Passwd_NAME[]         = "PVT_PASSWD";
                    236: static char const zPvt_Passwd_Name[]         = "pvt-passwd";
                    237: #define PVT_PASSWD_FLAGS       (OPTST_DISABLED \
                    238:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    239: 
                    240: #else   /* disable Pvt_Passwd */
                    241: #define PVT_PASSWD_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    242: #define zPvt_Passwd_NAME      NULL
                    243: #define zPvt_PasswdText       NULL
                    244: #define zPvt_Passwd_Name      NULL
                    245: #endif  /* OPENSSL */
                    246: 
                    247: /*
                    248:  *  Get_Pvt_Passwd option description:
                    249:  */
                    250: #ifdef OPENSSL
                    251: static char const zGet_Pvt_PasswdText[] =
                    252:         "input private password";
                    253: static char const zGet_Pvt_Passwd_NAME[]     = "GET_PVT_PASSWD";
                    254: static char const zGet_Pvt_Passwd_Name[]     = "get-pvt-passwd";
                    255: #define GET_PVT_PASSWD_FLAGS       (OPTST_DISABLED \
                    256:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    257: 
                    258: #else   /* disable Get_Pvt_Passwd */
                    259: #define GET_PVT_PASSWD_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    260: #define zGet_Pvt_Passwd_NAME      NULL
                    261: #define zGet_Pvt_PasswdText       NULL
                    262: #define zGet_Pvt_Passwd_Name      NULL
                    263: #endif  /* OPENSSL */
                    264: 
                    265: /*
                    266:  *  Sign_Key option description:
                    267:  */
                    268: #ifdef OPENSSL
                    269: static char const zSign_KeyText[] =
                    270:         "generate sign key (RSA or DSA)";
                    271: static char const zSign_Key_NAME[]           = "SIGN_KEY";
                    272: static char const zSign_Key_Name[]           = "sign-key";
                    273: #define SIGN_KEY_FLAGS       (OPTST_DISABLED \
                    274:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    275: 
                    276: #else   /* disable Sign_Key */
                    277: #define SIGN_KEY_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    278: #define zSign_Key_NAME      NULL
                    279: #define zSign_KeyText       NULL
                    280: #define zSign_Key_Name      NULL
                    281: #endif  /* OPENSSL */
                    282: 
                    283: /*
                    284:  *  Subject_Name option description:
                    285:  */
                    286: #ifdef OPENSSL
                    287: static char const zSubject_NameText[] =
                    288:         "set subject name";
                    289: static char const zSubject_Name_NAME[]       = "SUBJECT_NAME";
                    290: static char const zSubject_Name_Name[]       = "subject-name";
                    291: #define SUBJECT_NAME_FLAGS       (OPTST_DISABLED \
                    292:         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
                    293: 
                    294: #else   /* disable Subject_Name */
                    295: #define SUBJECT_NAME_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    296: #define zSubject_Name_NAME      NULL
                    297: #define zSubject_NameText       NULL
                    298: #define zSubject_Name_Name      NULL
                    299: #endif  /* OPENSSL */
                    300: 
                    301: /*
                    302:  *  Trusted_Cert option description:
                    303:  */
                    304: #ifdef OPENSSL
                    305: static char const zTrusted_CertText[] =
                    306:         "trusted certificate (TC scheme)";
                    307: static char const zTrusted_Cert_NAME[]       = "TRUSTED_CERT";
                    308: static char const zTrusted_Cert_Name[]       = "trusted-cert";
                    309: #define TRUSTED_CERT_FLAGS       (OPTST_DISABLED)
                    310: 
                    311: #else   /* disable Trusted_Cert */
                    312: #define TRUSTED_CERT_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    313: #define zTrusted_Cert_NAME      NULL
                    314: #define zTrusted_CertText       NULL
                    315: #define zTrusted_Cert_Name      NULL
                    316: #endif  /* OPENSSL */
                    317: 
                    318: /*
                    319:  *  Mv_Params option description:
                    320:  */
                    321: #ifdef OPENSSL
                    322: static char const zMv_ParamsText[] =
                    323:         "generate <num> MV parameters";
                    324: static char const zMv_Params_NAME[]          = "MV_PARAMS";
                    325: static char const zMv_Params_Name[]          = "mv-params";
                    326: #define MV_PARAMS_FLAGS       (OPTST_DISABLED \
                    327:         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
                    328: 
                    329: #else   /* disable Mv_Params */
                    330: #define MV_PARAMS_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    331: #define zMv_Params_NAME      NULL
                    332: #define zMv_ParamsText       NULL
                    333: #define zMv_Params_Name      NULL
                    334: #endif  /* OPENSSL */
                    335: 
                    336: /*
                    337:  *  Mv_Keys option description:
                    338:  */
                    339: #ifdef OPENSSL
                    340: static char const zMv_KeysText[] =
                    341:         "update <num> MV keys";
                    342: static char const zMv_Keys_NAME[]            = "MV_KEYS";
                    343: static char const zMv_Keys_Name[]            = "mv-keys";
                    344: #define MV_KEYS_FLAGS       (OPTST_DISABLED \
                    345:         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
                    346: 
                    347: #else   /* disable Mv_Keys */
                    348: #define MV_KEYS_FLAGS       (OPTST_OMITTED | OPTST_NO_INIT)
                    349: #define zMv_Keys_NAME      NULL
                    350: #define zMv_KeysText       NULL
                    351: #define zMv_Keys_Name      NULL
                    352: #endif  /* OPENSSL */
                    353: 
                    354: /*
                    355:  *  Help/More_Help/Version option descriptions:
                    356:  */
                    357: static char const zHelpText[]          = "Display extended usage information and exit";
                    358: static char const zHelp_Name[]         = "help";
                    359: #ifdef HAVE_WORKING_FORK
                    360: #define OPTST_MORE_HELP_FLAGS   (OPTST_IMM | OPTST_NO_INIT)
                    361: static char const zMore_Help_Name[]    = "more-help";
                    362: static char const zMore_HelpText[]     = "Extended usage information passed thru pager";
                    363: #else
                    364: #define OPTST_MORE_HELP_FLAGS   (OPTST_OMITTED | OPTST_NO_INIT)
                    365: #define zMore_Help_Name   NULL
                    366: #define zMore_HelpText    NULL
                    367: #endif
                    368: #ifdef NO_OPTIONAL_OPT_ARGS
                    369: #  define OPTST_VERSION_FLAGS   OPTST_IMM | OPTST_NO_INIT
                    370: #else
                    371: #  define OPTST_VERSION_FLAGS   OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                    372:                                 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT
                    373: #endif
                    374: 
                    375: static char const zVersionText[]       = "Output version information and exit";
                    376: static char const zVersion_Name[]      = "version";
                    377: static char const zSave_OptsText[]     = "Save the option state to a config file";
                    378: static char const zSave_Opts_Name[]    = "save-opts";
                    379: static char const zLoad_OptsText[]     = "Load options from a config file";
                    380: static char const zLoad_Opts_NAME[]    = "LOAD_OPTS";
                    381: static char const zNotLoad_Opts_Name[] = "no-load-opts";
                    382: static char const zNotLoad_Opts_Pfx[]  = "no";
                    383: #define zLoad_Opts_Name   (zNotLoad_Opts_Name + 3)
                    384: /*
                    385:  *  Declare option callback procedures
                    386:  */
                    387: #ifdef OPENSSL
                    388:   static tOptProc doOptModulus;
                    389: #else /* not OPENSSL */
                    390: # define doOptModulus NULL
                    391: #endif /* def/not OPENSSL */
                    392: #if defined(TEST_NTP_KEYGEN_OPTS)
                    393: /*
                    394:  *  Under test, omit argument processing, or call optionStackArg,
                    395:  *  if multiple copies are allowed.
                    396:  */
                    397: static tOptProc
                    398:     doUsageOpt;
                    399: 
                    400: /*
                    401:  *  #define map the "normal" callout procs to the test ones...
                    402:  */
                    403: #define SET_DEBUG_LEVEL_OPT_PROC optionStackArg
                    404: 
                    405: 
                    406: #else /* NOT defined TEST_NTP_KEYGEN_OPTS */
                    407: /*
                    408:  *  When not under test, there are different procs to use
                    409:  */
                    410: extern tOptProc
                    411:     optionBooleanVal,    optionNestedVal,     optionNumericVal,
                    412:     optionPagedUsage,    optionPrintVersion,  optionResetOpt,
                    413:     optionStackArg,      optionTimeDate,      optionTimeVal,
                    414:     optionUnstackArg,    optionVersionStderr;
                    415: static tOptProc
                    416:     doOptSet_Debug_Level, doUsageOpt;
                    417: 
                    418: /*
                    419:  *  #define map the "normal" callout procs
                    420:  */
                    421: #define SET_DEBUG_LEVEL_OPT_PROC doOptSet_Debug_Level
                    422: 
                    423: #define SET_DEBUG_LEVEL_OPT_PROC doOptSet_Debug_Level
                    424: #endif /* defined(TEST_NTP_KEYGEN_OPTS) */
                    425: #ifdef TEST_NTP_KEYGEN_OPTS
                    426: # define DOVERPROC optionVersionStderr
                    427: #else
                    428: # define DOVERPROC optionPrintVersion
                    429: #endif /* TEST_NTP_KEYGEN_OPTS */
                    430: 
                    431: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                    432:  *
                    433:  *  Define the Ntp_Keygen Option Descriptions.
                    434:  */
                    435: static tOptDesc optDesc[OPTION_CT] = {
                    436:   {  /* entry idx, value */ 0, VALUE_OPT_CERTIFICATE,
                    437:      /* equiv idx, value */ 0, VALUE_OPT_CERTIFICATE,
                    438:      /* equivalenced to  */ NO_EQUIVALENT,
                    439:      /* min, max, act ct */ 0, 1, 0,
                    440:      /* opt state flags  */ CERTIFICATE_FLAGS, 0,
                    441:      /* last opt argumnt */ { NULL },
                    442:      /* arg list/cookie  */ NULL,
                    443:      /* must/cannot opts */ NULL, NULL,
                    444:      /* option proc      */ NULL,
                    445:      /* desc, NAME, name */ zCertificateText, zCertificate_NAME, zCertificate_Name,
                    446:      /* disablement strs */ NULL, NULL },
                    447: 
                    448:   {  /* entry idx, value */ 1, VALUE_OPT_DEBUG_LEVEL,
                    449:      /* equiv idx, value */ 1, VALUE_OPT_DEBUG_LEVEL,
                    450:      /* equivalenced to  */ NO_EQUIVALENT,
                    451:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    452:      /* opt state flags  */ DEBUG_LEVEL_FLAGS, 0,
                    453:      /* last opt argumnt */ { NULL },
                    454:      /* arg list/cookie  */ NULL,
                    455:      /* must/cannot opts */ NULL, NULL,
                    456:      /* option proc      */ NULL,
                    457:      /* desc, NAME, name */ zDebug_LevelText, zDebug_Level_NAME, zDebug_Level_Name,
                    458:      /* disablement strs */ NULL, NULL },
                    459: 
                    460:   {  /* entry idx, value */ 2, VALUE_OPT_SET_DEBUG_LEVEL,
                    461:      /* equiv idx, value */ 2, VALUE_OPT_SET_DEBUG_LEVEL,
                    462:      /* equivalenced to  */ NO_EQUIVALENT,
                    463:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    464:      /* opt state flags  */ SET_DEBUG_LEVEL_FLAGS, 0,
                    465:      /* last opt argumnt */ { NULL },
                    466:      /* arg list/cookie  */ NULL,
                    467:      /* must/cannot opts */ NULL, NULL,
                    468:      /* option proc      */ SET_DEBUG_LEVEL_OPT_PROC,
                    469:      /* desc, NAME, name */ zSet_Debug_LevelText, zSet_Debug_Level_NAME, zSet_Debug_Level_Name,
                    470:      /* disablement strs */ NULL, NULL },
                    471: 
                    472:   {  /* entry idx, value */ 3, VALUE_OPT_ID_KEY,
                    473:      /* equiv idx, value */ 3, VALUE_OPT_ID_KEY,
                    474:      /* equivalenced to  */ NO_EQUIVALENT,
                    475:      /* min, max, act ct */ 0, 1, 0,
                    476:      /* opt state flags  */ ID_KEY_FLAGS, 0,
                    477:      /* last opt argumnt */ { NULL },
                    478:      /* arg list/cookie  */ NULL,
                    479:      /* must/cannot opts */ NULL, NULL,
                    480:      /* option proc      */ NULL,
                    481:      /* desc, NAME, name */ zId_KeyText, zId_Key_NAME, zId_Key_Name,
                    482:      /* disablement strs */ NULL, NULL },
                    483: 
                    484:   {  /* entry idx, value */ 4, VALUE_OPT_GQ_PARAMS,
                    485:      /* equiv idx, value */ 4, VALUE_OPT_GQ_PARAMS,
                    486:      /* equivalenced to  */ NO_EQUIVALENT,
                    487:      /* min, max, act ct */ 0, 1, 0,
                    488:      /* opt state flags  */ GQ_PARAMS_FLAGS, 0,
                    489:      /* last opt argumnt */ { NULL },
                    490:      /* arg list/cookie  */ NULL,
                    491:      /* must/cannot opts */ NULL, NULL,
                    492:      /* option proc      */ NULL,
                    493:      /* desc, NAME, name */ zGq_ParamsText, zGq_Params_NAME, zGq_Params_Name,
                    494:      /* disablement strs */ NULL, NULL },
                    495: 
                    496:   {  /* entry idx, value */ 5, VALUE_OPT_HOST_KEY,
                    497:      /* equiv idx, value */ 5, VALUE_OPT_HOST_KEY,
                    498:      /* equivalenced to  */ NO_EQUIVALENT,
                    499:      /* min, max, act ct */ 0, 1, 0,
                    500:      /* opt state flags  */ HOST_KEY_FLAGS, 0,
                    501:      /* last opt argumnt */ { NULL },
                    502:      /* arg list/cookie  */ NULL,
                    503:      /* must/cannot opts */ NULL, NULL,
                    504:      /* option proc      */ NULL,
                    505:      /* desc, NAME, name */ zHost_KeyText, zHost_Key_NAME, zHost_Key_Name,
                    506:      /* disablement strs */ NULL, NULL },
                    507: 
                    508:   {  /* entry idx, value */ 6, VALUE_OPT_IFFKEY,
                    509:      /* equiv idx, value */ 6, VALUE_OPT_IFFKEY,
                    510:      /* equivalenced to  */ NO_EQUIVALENT,
                    511:      /* min, max, act ct */ 0, 1, 0,
                    512:      /* opt state flags  */ IFFKEY_FLAGS, 0,
                    513:      /* last opt argumnt */ { NULL },
                    514:      /* arg list/cookie  */ NULL,
                    515:      /* must/cannot opts */ NULL, NULL,
                    516:      /* option proc      */ NULL,
                    517:      /* desc, NAME, name */ zIffkeyText, zIffkey_NAME, zIffkey_Name,
                    518:      /* disablement strs */ NULL, NULL },
                    519: 
                    520:   {  /* entry idx, value */ 7, VALUE_OPT_ISSUER_NAME,
                    521:      /* equiv idx, value */ 7, VALUE_OPT_ISSUER_NAME,
                    522:      /* equivalenced to  */ NO_EQUIVALENT,
                    523:      /* min, max, act ct */ 0, 1, 0,
                    524:      /* opt state flags  */ ISSUER_NAME_FLAGS, 0,
                    525:      /* last opt argumnt */ { NULL },
                    526:      /* arg list/cookie  */ NULL,
                    527:      /* must/cannot opts */ NULL, NULL,
                    528:      /* option proc      */ NULL,
                    529:      /* desc, NAME, name */ zIssuer_NameText, zIssuer_Name_NAME, zIssuer_Name_Name,
                    530:      /* disablement strs */ NULL, NULL },
                    531: 
                    532:   {  /* entry idx, value */ 8, VALUE_OPT_MD5KEY,
                    533:      /* equiv idx, value */ 8, VALUE_OPT_MD5KEY,
                    534:      /* equivalenced to  */ NO_EQUIVALENT,
                    535:      /* min, max, act ct */ 0, 1, 0,
                    536:      /* opt state flags  */ MD5KEY_FLAGS, 0,
                    537:      /* last opt argumnt */ { NULL },
                    538:      /* arg list/cookie  */ NULL,
                    539:      /* must/cannot opts */ NULL, NULL,
                    540:      /* option proc      */ NULL,
                    541:      /* desc, NAME, name */ zMd5keyText, zMd5key_NAME, zMd5key_Name,
                    542:      /* disablement strs */ NULL, NULL },
                    543: 
                    544:   {  /* entry idx, value */ 9, VALUE_OPT_MODULUS,
                    545:      /* equiv idx, value */ 9, VALUE_OPT_MODULUS,
                    546:      /* equivalenced to  */ NO_EQUIVALENT,
                    547:      /* min, max, act ct */ 0, 1, 0,
                    548:      /* opt state flags  */ MODULUS_FLAGS, 0,
                    549:      /* last opt argumnt */ { NULL },
                    550:      /* arg list/cookie  */ NULL,
                    551:      /* must/cannot opts */ NULL, NULL,
                    552:      /* option proc      */ doOptModulus,
                    553:      /* desc, NAME, name */ zModulusText, zModulus_NAME, zModulus_Name,
                    554:      /* disablement strs */ NULL, NULL },
                    555: 
                    556:   {  /* entry idx, value */ 10, VALUE_OPT_PVT_CERT,
                    557:      /* equiv idx, value */ 10, VALUE_OPT_PVT_CERT,
                    558:      /* equivalenced to  */ NO_EQUIVALENT,
                    559:      /* min, max, act ct */ 0, 1, 0,
                    560:      /* opt state flags  */ PVT_CERT_FLAGS, 0,
                    561:      /* last opt argumnt */ { NULL },
                    562:      /* arg list/cookie  */ NULL,
                    563:      /* must/cannot opts */ NULL, NULL,
                    564:      /* option proc      */ NULL,
                    565:      /* desc, NAME, name */ zPvt_CertText, zPvt_Cert_NAME, zPvt_Cert_Name,
                    566:      /* disablement strs */ NULL, NULL },
                    567: 
                    568:   {  /* entry idx, value */ 11, VALUE_OPT_PVT_PASSWD,
                    569:      /* equiv idx, value */ 11, VALUE_OPT_PVT_PASSWD,
                    570:      /* equivalenced to  */ NO_EQUIVALENT,
                    571:      /* min, max, act ct */ 0, 1, 0,
                    572:      /* opt state flags  */ PVT_PASSWD_FLAGS, 0,
                    573:      /* last opt argumnt */ { NULL },
                    574:      /* arg list/cookie  */ NULL,
                    575:      /* must/cannot opts */ NULL, NULL,
                    576:      /* option proc      */ NULL,
                    577:      /* desc, NAME, name */ zPvt_PasswdText, zPvt_Passwd_NAME, zPvt_Passwd_Name,
                    578:      /* disablement strs */ NULL, NULL },
                    579: 
                    580:   {  /* entry idx, value */ 12, VALUE_OPT_GET_PVT_PASSWD,
                    581:      /* equiv idx, value */ 12, VALUE_OPT_GET_PVT_PASSWD,
                    582:      /* equivalenced to  */ NO_EQUIVALENT,
                    583:      /* min, max, act ct */ 0, 1, 0,
                    584:      /* opt state flags  */ GET_PVT_PASSWD_FLAGS, 0,
                    585:      /* last opt argumnt */ { NULL },
                    586:      /* arg list/cookie  */ NULL,
                    587:      /* must/cannot opts */ NULL, NULL,
                    588:      /* option proc      */ NULL,
                    589:      /* desc, NAME, name */ zGet_Pvt_PasswdText, zGet_Pvt_Passwd_NAME, zGet_Pvt_Passwd_Name,
                    590:      /* disablement strs */ NULL, NULL },
                    591: 
                    592:   {  /* entry idx, value */ 13, VALUE_OPT_SIGN_KEY,
                    593:      /* equiv idx, value */ 13, VALUE_OPT_SIGN_KEY,
                    594:      /* equivalenced to  */ NO_EQUIVALENT,
                    595:      /* min, max, act ct */ 0, 1, 0,
                    596:      /* opt state flags  */ SIGN_KEY_FLAGS, 0,
                    597:      /* last opt argumnt */ { NULL },
                    598:      /* arg list/cookie  */ NULL,
                    599:      /* must/cannot opts */ NULL, NULL,
                    600:      /* option proc      */ NULL,
                    601:      /* desc, NAME, name */ zSign_KeyText, zSign_Key_NAME, zSign_Key_Name,
                    602:      /* disablement strs */ NULL, NULL },
                    603: 
                    604:   {  /* entry idx, value */ 14, VALUE_OPT_SUBJECT_NAME,
                    605:      /* equiv idx, value */ 14, VALUE_OPT_SUBJECT_NAME,
                    606:      /* equivalenced to  */ NO_EQUIVALENT,
                    607:      /* min, max, act ct */ 0, 1, 0,
                    608:      /* opt state flags  */ SUBJECT_NAME_FLAGS, 0,
                    609:      /* last opt argumnt */ { NULL },
                    610:      /* arg list/cookie  */ NULL,
                    611:      /* must/cannot opts */ NULL, NULL,
                    612:      /* option proc      */ NULL,
                    613:      /* desc, NAME, name */ zSubject_NameText, zSubject_Name_NAME, zSubject_Name_Name,
                    614:      /* disablement strs */ NULL, NULL },
                    615: 
                    616:   {  /* entry idx, value */ 15, VALUE_OPT_TRUSTED_CERT,
                    617:      /* equiv idx, value */ 15, VALUE_OPT_TRUSTED_CERT,
                    618:      /* equivalenced to  */ NO_EQUIVALENT,
                    619:      /* min, max, act ct */ 0, 1, 0,
                    620:      /* opt state flags  */ TRUSTED_CERT_FLAGS, 0,
                    621:      /* last opt argumnt */ { NULL },
                    622:      /* arg list/cookie  */ NULL,
                    623:      /* must/cannot opts */ NULL, NULL,
                    624:      /* option proc      */ NULL,
                    625:      /* desc, NAME, name */ zTrusted_CertText, zTrusted_Cert_NAME, zTrusted_Cert_Name,
                    626:      /* disablement strs */ NULL, NULL },
                    627: 
                    628:   {  /* entry idx, value */ 16, VALUE_OPT_MV_PARAMS,
                    629:      /* equiv idx, value */ 16, VALUE_OPT_MV_PARAMS,
                    630:      /* equivalenced to  */ NO_EQUIVALENT,
                    631:      /* min, max, act ct */ 0, 1, 0,
                    632:      /* opt state flags  */ MV_PARAMS_FLAGS, 0,
                    633:      /* last opt argumnt */ { NULL },
                    634:      /* arg list/cookie  */ NULL,
                    635:      /* must/cannot opts */ NULL, NULL,
                    636:      /* option proc      */ optionNumericVal,
                    637:      /* desc, NAME, name */ zMv_ParamsText, zMv_Params_NAME, zMv_Params_Name,
                    638:      /* disablement strs */ NULL, NULL },
                    639: 
                    640:   {  /* entry idx, value */ 17, VALUE_OPT_MV_KEYS,
                    641:      /* equiv idx, value */ 17, VALUE_OPT_MV_KEYS,
                    642:      /* equivalenced to  */ NO_EQUIVALENT,
                    643:      /* min, max, act ct */ 0, 1, 0,
                    644:      /* opt state flags  */ MV_KEYS_FLAGS, 0,
                    645:      /* last opt argumnt */ { NULL },
                    646:      /* arg list/cookie  */ NULL,
                    647:      /* must/cannot opts */ NULL, NULL,
                    648:      /* option proc      */ optionNumericVal,
                    649:      /* desc, NAME, name */ zMv_KeysText, zMv_Keys_NAME, zMv_Keys_Name,
                    650:      /* disablement strs */ NULL, NULL },
                    651: 
                    652:   {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
                    653:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    654:      /* equivalenced to  */ NO_EQUIVALENT,
                    655:      /* min, max, act ct */ 0, 1, 0,
                    656:      /* opt state flags  */ OPTST_VERSION_FLAGS, 0,
                    657:      /* last opt argumnt */ { NULL },
                    658:      /* arg list/cookie  */ NULL,
                    659:      /* must/cannot opts */ NULL, NULL,
                    660:      /* option proc      */ DOVERPROC,
                    661:      /* desc, NAME, name */ zVersionText, NULL, zVersion_Name,
                    662:      /* disablement strs */ NULL, NULL },
                    663: 
                    664: 
                    665: 
                    666:   {  /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
                    667:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    668:      /* equivalenced to  */ NO_EQUIVALENT,
                    669:      /* min, max, act ct */ 0, 1, 0,
                    670:      /* opt state flags  */ OPTST_IMM | OPTST_NO_INIT, 0,
                    671:      /* last opt argumnt */ { NULL },
                    672:      /* arg list/cookie  */ NULL,
                    673:      /* must/cannot opts */ NULL, NULL,
                    674:      /* option proc      */ doUsageOpt,
                    675:      /* desc, NAME, name */ zHelpText, NULL, zHelp_Name,
                    676:      /* disablement strs */ NULL, NULL },
                    677: 
                    678:   {  /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
                    679:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    680:      /* equivalenced to  */ NO_EQUIVALENT,
                    681:      /* min, max, act ct */ 0, 1, 0,
                    682:      /* opt state flags  */ OPTST_MORE_HELP_FLAGS, 0,
                    683:      /* last opt argumnt */ { NULL },
                    684:      /* arg list/cookie  */ NULL,
                    685:      /* must/cannot opts */ NULL,  NULL,
                    686:      /* option proc      */ optionPagedUsage,
                    687:      /* desc, NAME, name */ zMore_HelpText, NULL, zMore_Help_Name,
                    688:      /* disablement strs */ NULL, NULL },
                    689: 
                    690:   {  /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
                    691:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    692:      /* equivalenced to  */ NO_EQUIVALENT,
                    693:      /* min, max, act ct */ 0, 1, 0,
                    694:      /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
                    695:                           | OPTST_ARG_OPTIONAL | OPTST_NO_INIT, 0,
                    696:      /* last opt argumnt */ { NULL },
                    697:      /* arg list/cookie  */ NULL,
                    698:      /* must/cannot opts */ NULL,  NULL,
                    699:      /* option proc      */ NULL,
                    700:      /* desc, NAME, name */ zSave_OptsText, NULL, zSave_Opts_Name,
                    701:      /* disablement strs */ NULL, NULL },
                    702: 
                    703:   {  /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
                    704:      /* equiv idx value  */ NO_EQUIVALENT, 0,
                    705:      /* equivalenced to  */ NO_EQUIVALENT,
                    706:      /* min, max, act ct */ 0, NOLIMIT, 0,
                    707:      /* opt state flags  */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
                    708:                          | OPTST_DISABLE_IMM, 0,
                    709:      /* last opt argumnt */ { NULL },
                    710:      /* arg list/cookie  */ NULL,
                    711:      /* must/cannot opts */ NULL, NULL,
                    712:      /* option proc      */ optionLoadOpt,
                    713:      /* desc, NAME, name */ zLoad_OptsText, zLoad_Opts_NAME, zLoad_Opts_Name,
                    714:      /* disablement strs */ zNotLoad_Opts_Name, zNotLoad_Opts_Pfx }
                    715: };
                    716: 
                    717: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                    718:  *
                    719:  *  Define the Ntp_Keygen Option Environment
                    720:  */
                    721: static char const zPROGNAME[11] = "NTP_KEYGEN";
                    722: static char const zUsageTitle[114] =
                    723: "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.6p5\n\
                    724: USAGE:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n";
                    725: static char const zRcName[7] = ".ntprc";
                    726: static char const * const apzHomeList[3] = {
                    727:     "$HOME",
                    728:     ".",
                    729:     NULL };
                    730: 
                    731: static char const zBugsAddr[34]    = "http://bugs.ntp.org, bugs@ntp.org";
                    732: #define zExplain NULL
                    733: static char const zDetail[99] = "\n\
                    734: If there is no new host key, look for an existing one.  If one is not\n\
                    735: found, create it.\n";
                    736: static char const zFullVersion[] = NTP_KEYGEN_FULL_VERSION;
                    737: /* extracted from optcode.tlib near line 515 */
                    738: 
                    739: #if defined(ENABLE_NLS)
                    740: # define OPTPROC_BASE OPTPROC_TRANSLATE
                    741:   static tOptionXlateProc translate_option_strings;
                    742: #else
                    743: # define OPTPROC_BASE OPTPROC_NONE
                    744: # define translate_option_strings NULL
                    745: #endif /* ENABLE_NLS */
                    746: 
                    747: 
                    748: #define ntp_keygen_full_usage NULL
                    749: #define ntp_keygen_short_usage NULL
                    750: #ifndef  PKGDATADIR
                    751: # define PKGDATADIR ""
                    752: #endif
                    753: 
                    754: #ifndef  WITH_PACKAGER
                    755: # define ntp_keygen_packager_info NULL
                    756: #else
                    757: static char const ntp_keygen_packager_info[] =
                    758:     "Packaged by " WITH_PACKAGER
                    759: 
                    760: # ifdef WITH_PACKAGER_VERSION
                    761:         " ("WITH_PACKAGER_VERSION")"
                    762: # endif
                    763: 
                    764: # ifdef WITH_PACKAGER_BUG_REPORTS
                    765:     "\nReport ntp_keygen bugs to " WITH_PACKAGER_BUG_REPORTS
                    766: # endif
                    767:     "\n";
                    768: #endif
                    769: 
                    770: tOptions ntp_keygenOptions = {
                    771:     OPTIONS_STRUCT_VERSION,
                    772:     0, NULL,                    /* original argc + argv    */
                    773:     ( OPTPROC_BASE
                    774:     + OPTPROC_ERRSTOP
                    775:     + OPTPROC_SHORTOPT
                    776:     + OPTPROC_LONGOPT
                    777:     + OPTPROC_NO_REQ_OPT
                    778:     + OPTPROC_ENVIRON
                    779:     + OPTPROC_NO_ARGS
                    780:     + OPTPROC_MISUSE ),
                    781:     0, NULL,                    /* current option index, current option */
                    782:     NULL,         NULL,         zPROGNAME,
                    783:     zRcName,      zCopyright,   zLicenseDescrip,
                    784:     zFullVersion, apzHomeList,  zUsageTitle,
                    785:     zExplain,     zDetail,      optDesc,
                    786:     zBugsAddr,                  /* address to send bugs to */
                    787:     NULL, NULL,                 /* extensions/saved state  */
                    788:     optionUsage, /* usage procedure */
                    789:     translate_option_strings,   /* translation procedure */
                    790:     /*
                    791:      *  Indexes to special options
                    792:      */
                    793:     { INDEX_OPT_MORE_HELP, /* more-help option index */
                    794:       INDEX_OPT_SAVE_OPTS, /* save option index */
                    795:       NO_EQUIVALENT, /* '-#' option index */
                    796:       NO_EQUIVALENT /* index of default opt */
                    797:     },
                    798:     23 /* full option count */, 18 /* user option count */,
                    799:     ntp_keygen_full_usage, ntp_keygen_short_usage,
                    800:     NULL, NULL,
                    801:     PKGDATADIR, ntp_keygen_packager_info
                    802: };
                    803: 
                    804: /*
                    805:  *  Create the static procedure(s) declared above.
                    806:  */
                    807: static void
                    808: doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
                    809: {
                    810:     (void)pOptions;
                    811:     USAGE(NTP_KEYGEN_EXIT_SUCCESS);
                    812: }
                    813: 
                    814: #if ! defined(TEST_NTP_KEYGEN_OPTS)
                    815: 
                    816: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                    817:  *
                    818:  *   For the set-debug-level option.
                    819:  */
                    820: static void
                    821: doOptSet_Debug_Level(tOptions* pOptions, tOptDesc* pOptDesc)
                    822: {
                    823:     /* extracted from debug-opt.def, line 27 */
                    824: DESC(DEBUG_LEVEL).optOccCt = atoi( pOptDesc->pzLastArg );
                    825: }
                    826: #endif /* defined(TEST_NTP_KEYGEN_OPTS) */
                    827: 
                    828: /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                    829:  *
                    830:  *   For the modulus option, when OPENSSL is #define-d.
                    831:  */
                    832: #ifdef OPENSSL
                    833: static void
                    834: doOptModulus(tOptions* pOptions, tOptDesc* pOptDesc)
                    835: {
                    836:     static const struct {long const rmin, rmax;} rng[1] = {
                    837:         { 256, 2048 } };
                    838:     int  ix;
                    839: 
                    840:     if (pOptions <= OPTPROC_EMIT_LIMIT)
                    841:         goto emit_ranges;
                    842:     optionNumericVal(pOptions, pOptDesc);
                    843: 
                    844:     for (ix = 0; ix < 1; ix++) {
                    845:         if (pOptDesc->optArg.argInt < rng[ix].rmin)
                    846:             continue;  /* ranges need not be ordered. */
                    847:         if (pOptDesc->optArg.argInt == rng[ix].rmin)
                    848:             return;
                    849:         if (rng[ix].rmax == LONG_MIN)
                    850:             continue;
                    851:         if (pOptDesc->optArg.argInt <= rng[ix].rmax)
                    852:             return;
                    853:     }
                    854: 
                    855:     option_usage_fp = stderr;
                    856: 
                    857: emit_ranges:
                    858: 
                    859:     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
                    860: }
                    861: #endif /* defined OPENSSL */
                    862: /* extracted from optmain.tlib near line 128 */
                    863: 
                    864: #if defined(TEST_NTP_KEYGEN_OPTS) /* TEST MAIN PROCEDURE: */
                    865: 
                    866: extern void optionPutShell(tOptions*);
                    867: 
                    868: int
                    869: main(int argc, char ** argv)
                    870: {
                    871:     int res = NTP_KEYGEN_EXIT_SUCCESS;
                    872:     (void)optionProcess(&ntp_keygenOptions, argc, argv);
                    873:     optionPutShell(&ntp_keygenOptions);
                    874:     res = ferror(stdout);
                    875:     if (res != 0)
                    876:         fputs("output error writing to stdout\n", stderr);
                    877:     return res;
                    878: }
                    879: #endif  /* defined TEST_NTP_KEYGEN_OPTS */
                    880: /* extracted from optcode.tlib near line 666 */
                    881: 
                    882: #if ENABLE_NLS
                    883: #include <stdio.h>
                    884: #include <stdlib.h>
                    885: #include <string.h>
                    886: #include <unistd.h>
                    887: #include <autoopts/usage-txt.h>
                    888: 
                    889: static char* AO_gettext(char const* pz);
                    890: static void  coerce_it(void** s);
                    891: 
                    892: static char*
                    893: AO_gettext(char const* pz)
                    894: {
                    895:     char* pzRes;
                    896:     if (pz == NULL)
                    897:         return NULL;
                    898:     pzRes = _(pz);
                    899:     if (pzRes == pz)
                    900:         return pzRes;
                    901:     pzRes = strdup(pzRes);
                    902:     if (pzRes == NULL) {
                    903:         fputs(_("No memory for duping translated strings\n"), stderr);
                    904:         exit(NTP_KEYGEN_EXIT_FAILURE);
                    905:     }
                    906:     return pzRes;
                    907: }
                    908: 
                    909: static void coerce_it(void** s) { *s = AO_gettext(*s);
                    910: }
                    911: 
                    912: /*
                    913:  *  This invokes the translation code (e.g. gettext(3)).
                    914:  */
                    915: static void
                    916: translate_option_strings(void)
                    917: {
                    918:     tOptions * const pOpt = &ntp_keygenOptions;
                    919: 
                    920:     /*
                    921:      *  Guard against re-translation.  It won't work.  The strings will have
                    922:      *  been changed by the first pass through this code.  One shot only.
                    923:      */
                    924:     if (option_usage_text.field_ct != 0) {
                    925:         /*
                    926:          *  Do the translations.  The first pointer follows the field count
                    927:          *  field.  The field count field is the size of a pointer.
                    928:          */
                    929:         tOptDesc * pOD = pOpt->pOptDesc;
                    930:         char **    ppz = (char**)(void*)&(option_usage_text);
                    931:         int        ix  = option_usage_text.field_ct;
                    932: 
                    933:         do {
                    934:             ppz++;
                    935:             *ppz = AO_gettext(*ppz);
                    936:         } while (--ix > 0);
                    937: 
                    938:         coerce_it((void*)&(pOpt->pzCopyright));
                    939:         coerce_it((void*)&(pOpt->pzCopyNotice));
                    940:         coerce_it((void*)&(pOpt->pzFullVersion));
                    941:         coerce_it((void*)&(pOpt->pzUsageTitle));
                    942:         coerce_it((void*)&(pOpt->pzExplain));
                    943:         coerce_it((void*)&(pOpt->pzDetail));
                    944:         coerce_it((void*)&(pOpt->pzPackager));
                    945:         option_usage_text.field_ct = 0;
                    946: 
                    947:         for (ix = pOpt->optCt; ix > 0; ix--, pOD++)
                    948:             coerce_it((void*)&(pOD->pzText));
                    949:     }
                    950: 
                    951:     if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
                    952:         tOptDesc * pOD = pOpt->pOptDesc;
                    953:         int        ix;
                    954: 
                    955:         for (ix = pOpt->optCt; ix > 0; ix--, pOD++) {
                    956:             coerce_it((void*)&(pOD->pz_Name));
                    957:             coerce_it((void*)&(pOD->pz_DisableName));
                    958:             coerce_it((void*)&(pOD->pz_DisablePfx));
                    959:         }
                    960:         /* prevent re-translation */
                    961:         ntp_keygenOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
                    962:     }
                    963: }
                    964: 
                    965: #endif /* ENABLE_NLS */
                    966: 
                    967: #ifdef  __cplusplus
                    968: }
                    969: #endif
                    970: /* ntp-keygen-opts.c ends here */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>