diff options
Diffstat (limited to 'util/ntp-keygen-opts.c')
-rw-r--r-- | util/ntp-keygen-opts.c | 636 |
1 files changed, 281 insertions, 355 deletions
diff --git a/util/ntp-keygen-opts.c b/util/ntp-keygen-opts.c index cb242c07ae14..c60210bae116 100644 --- a/util/ntp-keygen-opts.c +++ b/util/ntp-keygen-opts.c @@ -1,44 +1,48 @@ /* * EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.c) * - * It has been AutoGen-ed Tuesday December 8, 2009 at 08:14:56 AM EST + * It has been AutoGen-ed December 24, 2011 at 06:34:40 PM by AutoGen 5.12 * From the definitions ntp-keygen-opts.def * and the template file options * - * Generated from AutoOpts 29:0:4 templates. - */ - -/* - * This file was produced by an AutoOpts template. AutoOpts is a - * copyrighted work. This source file is not encumbered by AutoOpts - * licensing, but is provided under the licensing terms chosen by the - * ntp-keygen author or copyright holder. AutoOpts is licensed under - * the terms of the LGPL. The redistributable library (``libopts'') is - * licensed under the terms of either the LGPL or, at the users discretion, - * the BSD license. See the AutoOpts and/or libopts sources for details. + * Generated from AutoOpts 35:0:10 templates. * - * This source file is copyrighted and licensed under the following terms: + * AutoOpts is a copyrighted work. This source file is not encumbered + * by AutoOpts licensing, but is provided under the licensing terms chosen + * by the ntp-keygen author or copyright holder. AutoOpts is + * licensed under the terms of the LGPL. The redistributable library + * (``libopts'') is licensed under the terms of either the LGPL or, at the + * users discretion, the BSD license. See the AutoOpts and/or libopts sources + * for details. * - * ntp-keygen copyright 1970-2009 David L. Mills and/or others - all rights reserved + * This source file is copyrighted and licensed under the following terms: * - * see html/copyright.html + * see html/copyright.html + * */ +#include <sys/types.h> #include <limits.h> #include <stdio.h> +#include <stdlib.h> +#include <errno.h> #define OPTION_CODE_COMPILE 1 #include "ntp-keygen-opts.h" #ifdef __cplusplus extern "C" { #endif -tSCC zCopyright[] = - "ntp-keygen copyright (c) 1970-2009 David L. Mills and/or others, all rights reserved"; -tSCC zCopyrightNotice[] = - -/* extracted from ../include/copyright.def near line 8 */ -"see html/copyright.html"; +extern FILE * option_usage_fp; + +/* TRANSLATORS: choose the translation for option names wisely because you + cannot ever change your mind. */ +static char const zCopyright[50] = +"ntp-keygen (ntp) 4.2.6p5\n\ +see html/copyright.html\n"; +static char const zLicenseDescrip[25] = +"see html/copyright.html\n"; + extern tUsageProc optionUsage; /* @@ -54,83 +58,58 @@ extern tUsageProc optionUsage; #ifndef NULL # define NULL 0 #endif -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif + /* * Certificate option description: */ #ifdef OPENSSL -tSCC zCertificateText[] = +static char const zCertificateText[] = "certificate scheme"; -tSCC zCertificate_NAME[] = "CERTIFICATE"; -tSCC zCertificate_Name[] = "certificate"; +static char const zCertificate_NAME[] = "CERTIFICATE"; +static char const zCertificate_Name[] = "certificate"; #define CERTIFICATE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) #else /* disable Certificate */ -#define VALUE_OPT_CERTIFICATE NO_EQUIVALENT #define CERTIFICATE_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zCertificateText NULL #define zCertificate_NAME NULL +#define zCertificateText NULL #define zCertificate_Name NULL #endif /* OPENSSL */ /* * Debug_Level option description: */ -#ifdef DEBUG -tSCC zDebug_LevelText[] = +static char const zDebug_LevelText[] = "Increase output debug message level"; -tSCC zDebug_Level_NAME[] = "DEBUG_LEVEL"; -tSCC zDebug_Level_Name[] = "debug-level"; +static char const zDebug_Level_NAME[] = "DEBUG_LEVEL"; +static char const zDebug_Level_Name[] = "debug-level"; #define DEBUG_LEVEL_FLAGS (OPTST_DISABLED) -#else /* disable Debug_Level */ -#define VALUE_OPT_DEBUG_LEVEL NO_EQUIVALENT -#define DEBUG_LEVEL_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zDebug_LevelText NULL -#define zDebug_Level_NAME NULL -#define zDebug_Level_Name NULL -#endif /* DEBUG */ - /* * Set_Debug_Level option description: */ -#ifdef DEBUG -tSCC zSet_Debug_LevelText[] = +static char const zSet_Debug_LevelText[] = "Set the output debug message level"; -tSCC zSet_Debug_Level_NAME[] = "SET_DEBUG_LEVEL"; -tSCC zSet_Debug_Level_Name[] = "set-debug-level"; +static char const zSet_Debug_Level_NAME[] = "SET_DEBUG_LEVEL"; +static char const zSet_Debug_Level_Name[] = "set-debug-level"; #define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) -#else /* disable Set_Debug_Level */ -#define VALUE_OPT_SET_DEBUG_LEVEL NO_EQUIVALENT -#define SET_DEBUG_LEVEL_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zSet_Debug_LevelText NULL -#define zSet_Debug_Level_NAME NULL -#define zSet_Debug_Level_Name NULL -#endif /* DEBUG */ - /* * Id_Key option description: */ #ifdef OPENSSL -tSCC zId_KeyText[] = - "Write identity keys"; -tSCC zId_Key_NAME[] = "ID_KEY"; -tSCC zId_Key_Name[] = "id-key"; +static char const zId_KeyText[] = + "Write IFF or GQ identity keys"; +static char const zId_Key_NAME[] = "ID_KEY"; +static char const zId_Key_Name[] = "id-key"; #define ID_KEY_FLAGS (OPTST_DISABLED) #else /* disable Id_Key */ -#define VALUE_OPT_ID_KEY NO_EQUIVALENT #define ID_KEY_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zId_KeyText NULL #define zId_Key_NAME NULL +#define zId_KeyText NULL #define zId_Key_Name NULL #endif /* OPENSSL */ @@ -138,53 +117,33 @@ tSCC zId_Key_Name[] = "id-key"; * Gq_Params option description: */ #ifdef OPENSSL -tSCC zGq_ParamsText[] = +static char const zGq_ParamsText[] = "Generate GQ parameters and keys"; -tSCC zGq_Params_NAME[] = "GQ_PARAMS"; -tSCC zGq_Params_Name[] = "gq-params"; +static char const zGq_Params_NAME[] = "GQ_PARAMS"; +static char const zGq_Params_Name[] = "gq-params"; #define GQ_PARAMS_FLAGS (OPTST_DISABLED) #else /* disable Gq_Params */ -#define VALUE_OPT_GQ_PARAMS NO_EQUIVALENT #define GQ_PARAMS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zGq_ParamsText NULL #define zGq_Params_NAME NULL +#define zGq_ParamsText NULL #define zGq_Params_Name NULL #endif /* OPENSSL */ /* - * Gq_Keys option description: - */ -#ifdef OPENSSL -tSCC zGq_KeysText[] = - "update GQ keys"; -tSCC zGq_Keys_NAME[] = "GQ_KEYS"; -tSCC zGq_Keys_Name[] = "gq-keys"; -#define GQ_KEYS_FLAGS (OPTST_DISABLED) - -#else /* disable Gq_Keys */ -#define VALUE_OPT_GQ_KEYS NO_EQUIVALENT -#define GQ_KEYS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zGq_KeysText NULL -#define zGq_Keys_NAME NULL -#define zGq_Keys_Name NULL -#endif /* OPENSSL */ - -/* * Host_Key option description: */ #ifdef OPENSSL -tSCC zHost_KeyText[] = +static char const zHost_KeyText[] = "generate RSA host key"; -tSCC zHost_Key_NAME[] = "HOST_KEY"; -tSCC zHost_Key_Name[] = "host-key"; +static char const zHost_Key_NAME[] = "HOST_KEY"; +static char const zHost_Key_Name[] = "host-key"; #define HOST_KEY_FLAGS (OPTST_DISABLED) #else /* disable Host_Key */ -#define VALUE_OPT_HOST_KEY NO_EQUIVALENT #define HOST_KEY_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zHost_KeyText NULL #define zHost_Key_NAME NULL +#define zHost_KeyText NULL #define zHost_Key_Name NULL #endif /* OPENSSL */ @@ -192,17 +151,16 @@ tSCC zHost_Key_Name[] = "host-key"; * Iffkey option description: */ #ifdef OPENSSL -tSCC zIffkeyText[] = +static char const zIffkeyText[] = "generate IFF parameters"; -tSCC zIffkey_NAME[] = "IFFKEY"; -tSCC zIffkey_Name[] = "iffkey"; +static char const zIffkey_NAME[] = "IFFKEY"; +static char const zIffkey_Name[] = "iffkey"; #define IFFKEY_FLAGS (OPTST_DISABLED) #else /* disable Iffkey */ -#define VALUE_OPT_IFFKEY NO_EQUIVALENT #define IFFKEY_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zIffkeyText NULL #define zIffkey_NAME NULL +#define zIffkeyText NULL #define zIffkey_Name NULL #endif /* OPENSSL */ @@ -210,45 +168,44 @@ tSCC zIffkey_Name[] = "iffkey"; * Issuer_Name option description: */ #ifdef OPENSSL -tSCC zIssuer_NameText[] = +static char const zIssuer_NameText[] = "set issuer name"; -tSCC zIssuer_Name_NAME[] = "ISSUER_NAME"; -tSCC zIssuer_Name_Name[] = "issuer-name"; -#define ISSUER_NAME_FLAGS (OPTST_DISABLED) +static char const zIssuer_Name_NAME[] = "ISSUER_NAME"; +static char const zIssuer_Name_Name[] = "issuer-name"; +#define ISSUER_NAME_FLAGS (OPTST_DISABLED \ + | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) #else /* disable Issuer_Name */ -#define VALUE_OPT_ISSUER_NAME NO_EQUIVALENT #define ISSUER_NAME_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zIssuer_NameText NULL #define zIssuer_Name_NAME NULL +#define zIssuer_NameText NULL #define zIssuer_Name_Name NULL #endif /* OPENSSL */ /* * Md5key option description: */ -tSCC zMd5keyText[] = +static char const zMd5keyText[] = "generate MD5 keys"; -tSCC zMd5key_NAME[] = "MD5KEY"; -tSCC zMd5key_Name[] = "md5key"; +static char const zMd5key_NAME[] = "MD5KEY"; +static char const zMd5key_Name[] = "md5key"; #define MD5KEY_FLAGS (OPTST_DISABLED) /* * Modulus option description: */ #ifdef OPENSSL -tSCC zModulusText[] = +static char const zModulusText[] = "modulus"; -tSCC zModulus_NAME[] = "MODULUS"; -tSCC zModulus_Name[] = "modulus"; +static char const zModulus_NAME[] = "MODULUS"; +static char const zModulus_Name[] = "modulus"; #define MODULUS_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) #else /* disable Modulus */ -#define VALUE_OPT_MODULUS NO_EQUIVALENT #define MODULUS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zModulusText NULL #define zModulus_NAME NULL +#define zModulusText NULL #define zModulus_Name NULL #endif /* OPENSSL */ @@ -256,17 +213,16 @@ tSCC zModulus_Name[] = "modulus"; * Pvt_Cert option description: */ #ifdef OPENSSL -tSCC zPvt_CertText[] = +static char const zPvt_CertText[] = "generate PC private certificate"; -tSCC zPvt_Cert_NAME[] = "PVT_CERT"; -tSCC zPvt_Cert_Name[] = "pvt-cert"; +static char const zPvt_Cert_NAME[] = "PVT_CERT"; +static char const zPvt_Cert_Name[] = "pvt-cert"; #define PVT_CERT_FLAGS (OPTST_DISABLED) #else /* disable Pvt_Cert */ -#define VALUE_OPT_PVT_CERT NO_EQUIVALENT #define PVT_CERT_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zPvt_CertText NULL #define zPvt_Cert_NAME NULL +#define zPvt_CertText NULL #define zPvt_Cert_Name NULL #endif /* OPENSSL */ @@ -274,18 +230,17 @@ tSCC zPvt_Cert_Name[] = "pvt-cert"; * Pvt_Passwd option description: */ #ifdef OPENSSL -tSCC zPvt_PasswdText[] = +static char const zPvt_PasswdText[] = "output private password"; -tSCC zPvt_Passwd_NAME[] = "PVT_PASSWD"; -tSCC zPvt_Passwd_Name[] = "pvt-passwd"; +static char const zPvt_Passwd_NAME[] = "PVT_PASSWD"; +static char const zPvt_Passwd_Name[] = "pvt-passwd"; #define PVT_PASSWD_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) #else /* disable Pvt_Passwd */ -#define VALUE_OPT_PVT_PASSWD NO_EQUIVALENT #define PVT_PASSWD_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zPvt_PasswdText NULL #define zPvt_Passwd_NAME NULL +#define zPvt_PasswdText NULL #define zPvt_Passwd_Name NULL #endif /* OPENSSL */ @@ -293,18 +248,17 @@ tSCC zPvt_Passwd_Name[] = "pvt-passwd"; * Get_Pvt_Passwd option description: */ #ifdef OPENSSL -tSCC zGet_Pvt_PasswdText[] = +static char const zGet_Pvt_PasswdText[] = "input private password"; -tSCC zGet_Pvt_Passwd_NAME[] = "GET_PVT_PASSWD"; -tSCC zGet_Pvt_Passwd_Name[] = "get-pvt-passwd"; +static char const zGet_Pvt_Passwd_NAME[] = "GET_PVT_PASSWD"; +static char const zGet_Pvt_Passwd_Name[] = "get-pvt-passwd"; #define GET_PVT_PASSWD_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) #else /* disable Get_Pvt_Passwd */ -#define VALUE_OPT_GET_PVT_PASSWD NO_EQUIVALENT #define GET_PVT_PASSWD_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zGet_Pvt_PasswdText NULL #define zGet_Pvt_Passwd_NAME NULL +#define zGet_Pvt_PasswdText NULL #define zGet_Pvt_Passwd_Name NULL #endif /* OPENSSL */ @@ -312,18 +266,17 @@ tSCC zGet_Pvt_Passwd_Name[] = "get-pvt-passwd"; * Sign_Key option description: */ #ifdef OPENSSL -tSCC zSign_KeyText[] = +static char const zSign_KeyText[] = "generate sign key (RSA or DSA)"; -tSCC zSign_Key_NAME[] = "SIGN_KEY"; -tSCC zSign_Key_Name[] = "sign-key"; +static char const zSign_Key_NAME[] = "SIGN_KEY"; +static char const zSign_Key_Name[] = "sign-key"; #define SIGN_KEY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) #else /* disable Sign_Key */ -#define VALUE_OPT_SIGN_KEY NO_EQUIVALENT #define SIGN_KEY_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zSign_KeyText NULL #define zSign_Key_NAME NULL +#define zSign_KeyText NULL #define zSign_Key_Name NULL #endif /* OPENSSL */ @@ -331,18 +284,17 @@ tSCC zSign_Key_Name[] = "sign-key"; * Subject_Name option description: */ #ifdef OPENSSL -tSCC zSubject_NameText[] = +static char const zSubject_NameText[] = "set subject name"; -tSCC zSubject_Name_NAME[] = "SUBJECT_NAME"; -tSCC zSubject_Name_Name[] = "subject-name"; +static char const zSubject_Name_NAME[] = "SUBJECT_NAME"; +static char const zSubject_Name_Name[] = "subject-name"; #define SUBJECT_NAME_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) #else /* disable Subject_Name */ -#define VALUE_OPT_SUBJECT_NAME NO_EQUIVALENT #define SUBJECT_NAME_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zSubject_NameText NULL #define zSubject_Name_NAME NULL +#define zSubject_NameText NULL #define zSubject_Name_Name NULL #endif /* OPENSSL */ @@ -350,17 +302,16 @@ tSCC zSubject_Name_Name[] = "subject-name"; * Trusted_Cert option description: */ #ifdef OPENSSL -tSCC zTrusted_CertText[] = +static char const zTrusted_CertText[] = "trusted certificate (TC scheme)"; -tSCC zTrusted_Cert_NAME[] = "TRUSTED_CERT"; -tSCC zTrusted_Cert_Name[] = "trusted-cert"; +static char const zTrusted_Cert_NAME[] = "TRUSTED_CERT"; +static char const zTrusted_Cert_Name[] = "trusted-cert"; #define TRUSTED_CERT_FLAGS (OPTST_DISABLED) #else /* disable Trusted_Cert */ -#define VALUE_OPT_TRUSTED_CERT NO_EQUIVALENT #define TRUSTED_CERT_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zTrusted_CertText NULL #define zTrusted_Cert_NAME NULL +#define zTrusted_CertText NULL #define zTrusted_Cert_Name NULL #endif /* OPENSSL */ @@ -368,18 +319,17 @@ tSCC zTrusted_Cert_Name[] = "trusted-cert"; * Mv_Params option description: */ #ifdef OPENSSL -tSCC zMv_ParamsText[] = +static char const zMv_ParamsText[] = "generate <num> MV parameters"; -tSCC zMv_Params_NAME[] = "MV_PARAMS"; -tSCC zMv_Params_Name[] = "mv-params"; +static char const zMv_Params_NAME[] = "MV_PARAMS"; +static char const zMv_Params_Name[] = "mv-params"; #define MV_PARAMS_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) #else /* disable Mv_Params */ -#define VALUE_OPT_MV_PARAMS NO_EQUIVALENT #define MV_PARAMS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zMv_ParamsText NULL #define zMv_Params_NAME NULL +#define zMv_ParamsText NULL #define zMv_Params_Name NULL #endif /* OPENSSL */ @@ -387,77 +337,65 @@ tSCC zMv_Params_Name[] = "mv-params"; * Mv_Keys option description: */ #ifdef OPENSSL -tSCC zMv_KeysText[] = +static char const zMv_KeysText[] = "update <num> MV keys"; -tSCC zMv_Keys_NAME[] = "MV_KEYS"; -tSCC zMv_Keys_Name[] = "mv-keys"; +static char const zMv_Keys_NAME[] = "MV_KEYS"; +static char const zMv_Keys_Name[] = "mv-keys"; #define MV_KEYS_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) #else /* disable Mv_Keys */ -#define VALUE_OPT_MV_KEYS NO_EQUIVALENT #define MV_KEYS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) -#define zMv_KeysText NULL #define zMv_Keys_NAME NULL +#define zMv_KeysText NULL #define zMv_Keys_Name NULL #endif /* OPENSSL */ /* * 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"; - -/* - * Save/Load_Opts option description: - */ -tSCC zSave_OptsText[] = "Save the option state to a config file"; -tSCC zSave_Opts_Name[] = "save-opts"; - -tSCC zLoad_OptsText[] = "Load options from a config file"; -tSCC zLoad_Opts_NAME[] = "LOAD_OPTS"; +static char const zHelpText[] = "Display extended usage information and exit"; +static char const zHelp_Name[] = "help"; +#ifdef HAVE_WORKING_FORK +#define OPTST_MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT) +static char const zMore_Help_Name[] = "more-help"; +static char const zMore_HelpText[] = "Extended usage information passed thru pager"; +#else +#define OPTST_MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) +#define zMore_Help_Name NULL +#define zMore_HelpText NULL +#endif +#ifdef NO_OPTIONAL_OPT_ARGS +# define OPTST_VERSION_FLAGS OPTST_IMM | OPTST_NO_INIT +#else +# define OPTST_VERSION_FLAGS OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \ + OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT +#endif -tSCC zNotLoad_Opts_Name[] = "no-load-opts"; -tSCC zNotLoad_Opts_Pfx[] = "no"; +static char const zVersionText[] = "Output version information and exit"; +static char const zVersion_Name[] = "version"; +static char const zSave_OptsText[] = "Save the option state to a config file"; +static char const zSave_Opts_Name[] = "save-opts"; +static char const zLoad_OptsText[] = "Load options from a config file"; +static char const zLoad_Opts_NAME[] = "LOAD_OPTS"; +static char const zNotLoad_Opts_Name[] = "no-load-opts"; +static char const zNotLoad_Opts_Pfx[] = "no"; #define zLoad_Opts_Name (zNotLoad_Opts_Name + 3) /* * Declare option callback procedures */ -#ifdef DEBUG - static tOptProc doOptSet_Debug_Level; -#else /* not DEBUG */ -# define doOptSet_Debug_Level NULL -#endif /* def/not DEBUG */ #ifdef OPENSSL static tOptProc doOptModulus; #else /* not OPENSSL */ # define doOptModulus NULL #endif /* def/not OPENSSL */ -#ifdef OPENSSL - extern tOptProc optionNumericVal; -#else /* not OPENSSL */ -# define optionNumericVal NULL -#endif /* def/not OPENSSL */ -#ifdef OPENSSL - extern tOptProc optionNumericVal; -#else /* not OPENSSL */ -# define optionNumericVal NULL -#endif /* def/not OPENSSL */ #if defined(TEST_NTP_KEYGEN_OPTS) /* * Under test, omit argument processing, or call optionStackArg, * if multiple copies are allowed. */ -extern tOptProc - optionNumericVal, optionPagedUsage, optionVersionStderr; static tOptProc - doOptModulus, doUsageOpt; + doUsageOpt; /* * #define map the "normal" callout procs to the test ones... @@ -470,9 +408,12 @@ static tOptProc * When not under test, there are different procs to use */ extern tOptProc - optionPagedUsage, optionPrintVersion; + optionBooleanVal, optionNestedVal, optionNumericVal, + optionPagedUsage, optionPrintVersion, optionResetOpt, + optionStackArg, optionTimeDate, optionTimeVal, + optionUnstackArg, optionVersionStderr; static tOptProc - doUsageOpt; + doOptSet_Debug_Level, doUsageOpt; /* * #define map the "normal" callout procs @@ -491,7 +432,7 @@ static tOptProc * * Define the Ntp_Keygen Option Descriptions. */ -static tOptDesc optDesc[ OPTION_CT ] = { +static tOptDesc optDesc[OPTION_CT] = { { /* entry idx, value */ 0, VALUE_OPT_CERTIFICATE, /* equiv idx, value */ 0, VALUE_OPT_CERTIFICATE, /* equivalenced to */ NO_EQUIVALENT, @@ -552,20 +493,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zGq_ParamsText, zGq_Params_NAME, zGq_Params_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 5, VALUE_OPT_GQ_KEYS, - /* equiv idx, value */ 5, VALUE_OPT_GQ_KEYS, - /* equivalenced to */ NO_EQUIVALENT, - /* min, max, act ct */ 0, 1, 0, - /* opt state flags */ GQ_KEYS_FLAGS, 0, - /* last opt argumnt */ { NULL }, - /* arg list/cookie */ NULL, - /* must/cannot opts */ NULL, NULL, - /* option proc */ NULL, - /* desc, NAME, name */ zGq_KeysText, zGq_Keys_NAME, zGq_Keys_Name, - /* disablement strs */ NULL, NULL }, - - { /* entry idx, value */ 6, VALUE_OPT_HOST_KEY, - /* equiv idx, value */ 6, VALUE_OPT_HOST_KEY, + { /* entry idx, value */ 5, VALUE_OPT_HOST_KEY, + /* equiv idx, value */ 5, VALUE_OPT_HOST_KEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ HOST_KEY_FLAGS, 0, @@ -576,8 +505,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zHost_KeyText, zHost_Key_NAME, zHost_Key_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 7, VALUE_OPT_IFFKEY, - /* equiv idx, value */ 7, VALUE_OPT_IFFKEY, + { /* entry idx, value */ 6, VALUE_OPT_IFFKEY, + /* equiv idx, value */ 6, VALUE_OPT_IFFKEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ IFFKEY_FLAGS, 0, @@ -588,8 +517,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zIffkeyText, zIffkey_NAME, zIffkey_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 8, VALUE_OPT_ISSUER_NAME, - /* equiv idx, value */ 8, VALUE_OPT_ISSUER_NAME, + { /* entry idx, value */ 7, VALUE_OPT_ISSUER_NAME, + /* equiv idx, value */ 7, VALUE_OPT_ISSUER_NAME, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ ISSUER_NAME_FLAGS, 0, @@ -600,8 +529,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zIssuer_NameText, zIssuer_Name_NAME, zIssuer_Name_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 9, VALUE_OPT_MD5KEY, - /* equiv idx, value */ 9, VALUE_OPT_MD5KEY, + { /* entry idx, value */ 8, VALUE_OPT_MD5KEY, + /* equiv idx, value */ 8, VALUE_OPT_MD5KEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MD5KEY_FLAGS, 0, @@ -612,8 +541,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zMd5keyText, zMd5key_NAME, zMd5key_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 10, VALUE_OPT_MODULUS, - /* equiv idx, value */ 10, VALUE_OPT_MODULUS, + { /* entry idx, value */ 9, VALUE_OPT_MODULUS, + /* equiv idx, value */ 9, VALUE_OPT_MODULUS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MODULUS_FLAGS, 0, @@ -624,8 +553,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zModulusText, zModulus_NAME, zModulus_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 11, VALUE_OPT_PVT_CERT, - /* equiv idx, value */ 11, VALUE_OPT_PVT_CERT, + { /* entry idx, value */ 10, VALUE_OPT_PVT_CERT, + /* equiv idx, value */ 10, VALUE_OPT_PVT_CERT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PVT_CERT_FLAGS, 0, @@ -636,8 +565,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zPvt_CertText, zPvt_Cert_NAME, zPvt_Cert_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 12, VALUE_OPT_PVT_PASSWD, - /* equiv idx, value */ 12, VALUE_OPT_PVT_PASSWD, + { /* entry idx, value */ 11, VALUE_OPT_PVT_PASSWD, + /* equiv idx, value */ 11, VALUE_OPT_PVT_PASSWD, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PVT_PASSWD_FLAGS, 0, @@ -648,8 +577,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zPvt_PasswdText, zPvt_Passwd_NAME, zPvt_Passwd_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 13, VALUE_OPT_GET_PVT_PASSWD, - /* equiv idx, value */ 13, VALUE_OPT_GET_PVT_PASSWD, + { /* entry idx, value */ 12, VALUE_OPT_GET_PVT_PASSWD, + /* equiv idx, value */ 12, VALUE_OPT_GET_PVT_PASSWD, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ GET_PVT_PASSWD_FLAGS, 0, @@ -660,8 +589,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zGet_Pvt_PasswdText, zGet_Pvt_Passwd_NAME, zGet_Pvt_Passwd_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 14, VALUE_OPT_SIGN_KEY, - /* equiv idx, value */ 14, VALUE_OPT_SIGN_KEY, + { /* entry idx, value */ 13, VALUE_OPT_SIGN_KEY, + /* equiv idx, value */ 13, VALUE_OPT_SIGN_KEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SIGN_KEY_FLAGS, 0, @@ -672,8 +601,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zSign_KeyText, zSign_Key_NAME, zSign_Key_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 15, VALUE_OPT_SUBJECT_NAME, - /* equiv idx, value */ 15, VALUE_OPT_SUBJECT_NAME, + { /* entry idx, value */ 14, VALUE_OPT_SUBJECT_NAME, + /* equiv idx, value */ 14, VALUE_OPT_SUBJECT_NAME, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SUBJECT_NAME_FLAGS, 0, @@ -684,8 +613,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zSubject_NameText, zSubject_Name_NAME, zSubject_Name_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 16, VALUE_OPT_TRUSTED_CERT, - /* equiv idx, value */ 16, VALUE_OPT_TRUSTED_CERT, + { /* entry idx, value */ 15, VALUE_OPT_TRUSTED_CERT, + /* equiv idx, value */ 15, VALUE_OPT_TRUSTED_CERT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ TRUSTED_CERT_FLAGS, 0, @@ -696,8 +625,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zTrusted_CertText, zTrusted_Cert_NAME, zTrusted_Cert_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 17, VALUE_OPT_MV_PARAMS, - /* equiv idx, value */ 17, VALUE_OPT_MV_PARAMS, + { /* entry idx, value */ 16, VALUE_OPT_MV_PARAMS, + /* equiv idx, value */ 16, VALUE_OPT_MV_PARAMS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MV_PARAMS_FLAGS, 0, @@ -708,8 +637,8 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zMv_ParamsText, zMv_Params_NAME, zMv_Params_Name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 18, VALUE_OPT_MV_KEYS, - /* equiv idx, value */ 18, VALUE_OPT_MV_KEYS, + { /* entry idx, value */ 17, VALUE_OPT_MV_KEYS, + /* equiv idx, value */ 17, VALUE_OPT_MV_KEYS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MV_KEYS_FLAGS, 0, @@ -720,18 +649,11 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zMv_KeysText, zMv_Keys_NAME, zMv_Keys_Name, /* disablement strs */ NULL, NULL }, -#ifdef NO_OPTIONAL_OPT_ARGS -# define VERSION_OPT_FLAGS OPTST_IMM | OPTST_NO_INIT -#else -# define VERSION_OPT_FLAGS OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \ - OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT -#endif - { /* 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 */ VERSION_OPT_FLAGS, 0, + /* opt state flags */ OPTST_VERSION_FLAGS, 0, /* last opt argumnt */ { NULL }, /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, @@ -739,7 +661,6 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* desc, NAME, name */ zVersionText, NULL, zVersion_Name, /* disablement strs */ NULL, NULL }, -#undef VERSION_OPT_FLAGS { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP, @@ -758,7 +679,7 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* equiv idx value */ NO_EQUIVALENT, 0, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, - /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0, + /* opt state flags */ OPTST_MORE_HELP_FLAGS, 0, /* last opt argumnt */ { NULL }, /* arg list/cookie */ NULL, /* must/cannot opts */ NULL, NULL, @@ -783,7 +704,7 @@ static tOptDesc optDesc[ OPTION_CT ] = { /* equiv idx value */ NO_EQUIVALENT, 0, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, - /* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) \ + /* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | OPTST_DISABLE_IMM, 0, /* last opt argumnt */ { NULL }, /* arg list/cookie */ NULL, @@ -797,23 +718,23 @@ static tOptDesc optDesc[ OPTION_CT ] = { * * Define the Ntp_Keygen Option Environment */ -tSCC zPROGNAME[] = "NTP_KEYGEN"; -tSCC zUsageTitle[] = -"ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.4p8\n\ +static char const zPROGNAME[11] = "NTP_KEYGEN"; +static char const zUsageTitle[114] = +"ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.6p5\n\ USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"; -tSCC zRcName[] = ".ntprc"; -tSCC* apzHomeList[] = { - "$HOME", - ".", - NULL }; +static char const zRcName[7] = ".ntprc"; +static char const * const apzHomeList[3] = { + "$HOME", + ".", + NULL }; -tSCC zBugsAddr[] = "http://bugs.ntp.org, bugs@ntp.org"; +static char const zBugsAddr[34] = "http://bugs.ntp.org, bugs@ntp.org"; #define zExplain NULL -tSCC zDetail[] = "\n\ -If there is no new host key, look for an existing one.\n\ -If one is not found, create it.\n"; -tSCC zFullVersion[] = NTP_KEYGEN_FULL_VERSION; -/* extracted from /usr/local/gnu/autogen-5.9.1/share/autogen/optcode.tpl near line 408 */ +static char const zDetail[99] = "\n\ +If there is no new host key, look for an existing one. If one is not\n\ +found, create it.\n"; +static char const zFullVersion[] = NTP_KEYGEN_FULL_VERSION; +/* extracted from optcode.tlib near line 515 */ #if defined(ENABLE_NLS) # define OPTPROC_BASE OPTPROC_TRANSLATE @@ -823,6 +744,29 @@ tSCC zFullVersion[] = NTP_KEYGEN_FULL_VERSION; # define translate_option_strings NULL #endif /* ENABLE_NLS */ + +#define ntp_keygen_full_usage NULL +#define ntp_keygen_short_usage NULL +#ifndef PKGDATADIR +# define PKGDATADIR "" +#endif + +#ifndef WITH_PACKAGER +# define ntp_keygen_packager_info NULL +#else +static char const ntp_keygen_packager_info[] = + "Packaged by " WITH_PACKAGER + +# ifdef WITH_PACKAGER_VERSION + " ("WITH_PACKAGER_VERSION")" +# endif + +# ifdef WITH_PACKAGER_BUG_REPORTS + "\nReport ntp_keygen bugs to " WITH_PACKAGER_BUG_REPORTS +# endif + "\n"; +#endif + tOptions ntp_keygenOptions = { OPTIONS_STRUCT_VERSION, 0, NULL, /* original argc + argv */ @@ -833,127 +777,107 @@ tOptions ntp_keygenOptions = { + OPTPROC_NO_REQ_OPT + OPTPROC_ENVIRON + OPTPROC_NO_ARGS - + OPTPROC_HAS_IMMED ), + + OPTPROC_MISUSE ), 0, NULL, /* current option index, current option */ NULL, NULL, zPROGNAME, - zRcName, zCopyright, zCopyrightNotice, + zRcName, zCopyright, zLicenseDescrip, zFullVersion, apzHomeList, zUsageTitle, zExplain, zDetail, optDesc, zBugsAddr, /* address to send bugs to */ NULL, NULL, /* extensions/saved state */ - optionUsage, /* usage procedure */ + optionUsage, /* usage procedure */ translate_option_strings, /* translation procedure */ /* * Indexes to special options */ - { INDEX_OPT_MORE_HELP, - INDEX_OPT_SAVE_OPTS, - NO_EQUIVALENT /* index of '-#' option */, + { INDEX_OPT_MORE_HELP, /* more-help option index */ + INDEX_OPT_SAVE_OPTS, /* save option index */ + NO_EQUIVALENT, /* '-#' option index */ NO_EQUIVALENT /* index of default opt */ }, - 24 /* full option count */, 19 /* user option count */ + 23 /* full option count */, 18 /* user option count */, + ntp_keygen_full_usage, ntp_keygen_short_usage, + NULL, NULL, + PKGDATADIR, ntp_keygen_packager_info }; /* * Create the static procedure(s) declared above. */ static void -doUsageOpt( - tOptions* pOptions, - tOptDesc* pOptDesc ) +doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc) { - USAGE( EXIT_SUCCESS ); + (void)pOptions; + USAGE(NTP_KEYGEN_EXIT_SUCCESS); } #if ! defined(TEST_NTP_KEYGEN_OPTS) -/* * * * * * * +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * For the set-debug-level option, when DEBUG is #define-d. + * For the set-debug-level option. */ -#ifdef DEBUG static void -doOptSet_Debug_Level( - tOptions* pOptions, - tOptDesc* pOptDesc ) +doOptSet_Debug_Level(tOptions* pOptions, tOptDesc* pOptDesc) { - /* extracted from ../include/debug-opt.def, line 29 */ + /* extracted from debug-opt.def, line 27 */ DESC(DEBUG_LEVEL).optOccCt = atoi( pOptDesc->pzLastArg ); } -#endif /* defined DEBUG */ - #endif /* defined(TEST_NTP_KEYGEN_OPTS) */ -/* * * * * * * +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * For the modulus option, when OPENSSL is #define-d. */ #ifdef OPENSSL static void -doOptModulus( - tOptions* pOptions, - tOptDesc* pOptDesc ) +doOptModulus(tOptions* pOptions, tOptDesc* pOptDesc) { - static const struct {const int rmin, rmax;} rng[ 1 ] = { + static const struct {long const rmin, rmax;} rng[1] = { { 256, 2048 } }; - int val; - int ix; - char const* pzIndent = "\t\t\t\t "; - extern FILE* option_usage_fp; + int ix; - if (pOptDesc == NULL) /* usage is requesting range list - option_usage_fp has already been set */ + if (pOptions <= OPTPROC_EMIT_LIMIT) goto emit_ranges; + optionNumericVal(pOptions, pOptDesc); - val = atoi( pOptDesc->optArg.argString ); for (ix = 0; ix < 1; ix++) { - if (val < rng[ix].rmin) + if (pOptDesc->optArg.argInt < rng[ix].rmin) continue; /* ranges need not be ordered. */ - if (val == rng[ix].rmin) - goto valid_return; - if (rng[ix].rmax == INT_MIN) + if (pOptDesc->optArg.argInt == rng[ix].rmin) + return; + if (rng[ix].rmax == LONG_MIN) continue; - if (val <= rng[ix].rmax) - goto valid_return; + if (pOptDesc->optArg.argInt <= rng[ix].rmax) + return; } option_usage_fp = stderr; - fprintf(stderr, _("%s error: %s option value ``%s''is out of range.\n"), - pOptions->pzProgName, pOptDesc->pz_Name, pOptDesc->optArg.argString); - pzIndent = "\t"; - - emit_ranges: - fprintf( option_usage_fp, _("%sit must lie in the range: %d to %d\n"), - pzIndent, rng[0].rmin, rng[0].rmax ); - if (pOptDesc == NULL) - return; - - USAGE( EXIT_FAILURE ); - /* NOTREACHED */ - return; - - valid_return: - pOptDesc->optArg.argInt = val; + +emit_ranges: + + optionShowRange(pOptions, pOptDesc, (void *)rng, 1); } #endif /* defined OPENSSL */ - -/* extracted from /usr/local/gnu/autogen-5.9.1/share/autogen/optmain.tpl near line 92 */ +/* extracted from optmain.tlib near line 128 */ #if defined(TEST_NTP_KEYGEN_OPTS) /* TEST MAIN PROCEDURE: */ +extern void optionPutShell(tOptions*); + int -main( int argc, char** argv ) +main(int argc, char ** argv) { - int res = EXIT_SUCCESS; - (void)optionProcess( &ntp_keygenOptions, argc, argv ); - { - void optionPutShell( tOptions* ); - optionPutShell( &ntp_keygenOptions ); - } + int res = NTP_KEYGEN_EXIT_SUCCESS; + (void)optionProcess(&ntp_keygenOptions, argc, argv); + optionPutShell(&ntp_keygenOptions); + res = ferror(stdout); + if (res != 0) + fputs("output error writing to stdout\n", stderr); return res; } #endif /* defined TEST_NTP_KEYGEN_OPTS */ -/* extracted from /usr/local/gnu/autogen-5.9.1/share/autogen/optcode.tpl near line 514 */ +/* extracted from optcode.tlib near line 666 */ #if ENABLE_NLS #include <stdio.h> @@ -962,11 +886,11 @@ main( int argc, char** argv ) #include <unistd.h> #include <autoopts/usage-txt.h> -static char* AO_gettext( char const* pz ); +static char* AO_gettext(char const* pz); static void coerce_it(void** s); static char* -AO_gettext( char const* pz ) +AO_gettext(char const* pz) { char* pzRes; if (pz == NULL) @@ -974,66 +898,68 @@ AO_gettext( char const* pz ) pzRes = _(pz); if (pzRes == pz) return pzRes; - pzRes = strdup( pzRes ); + pzRes = strdup(pzRes); if (pzRes == NULL) { - fputs( _("No memory for duping translated strings\n"), stderr ); - exit( EXIT_FAILURE ); + fputs(_("No memory for duping translated strings\n"), stderr); + exit(NTP_KEYGEN_EXIT_FAILURE); } return pzRes; } -static void coerce_it(void** s) { *s = AO_gettext(*s); } -#define COERSION(_f) \ - coerce_it((void*)&(ntp_keygenOptions._f)) +static void coerce_it(void** s) { *s = AO_gettext(*s); +} /* * This invokes the translation code (e.g. gettext(3)). */ static void -translate_option_strings( void ) +translate_option_strings(void) { + tOptions * const pOpt = &ntp_keygenOptions; + /* * 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; + if (option_usage_text.field_ct != 0) { + /* + * Do the translations. The first pointer follows the field count + * field. The field count field is the size of a pointer. + */ + tOptDesc * pOD = pOpt->pOptDesc; + char ** ppz = (char**)(void*)&(option_usage_text); + int ix = option_usage_text.field_ct; do { ppz++; *ppz = AO_gettext(*ppz); } while (--ix > 0); + + coerce_it((void*)&(pOpt->pzCopyright)); + coerce_it((void*)&(pOpt->pzCopyNotice)); + coerce_it((void*)&(pOpt->pzFullVersion)); + coerce_it((void*)&(pOpt->pzUsageTitle)); + coerce_it((void*)&(pOpt->pzExplain)); + coerce_it((void*)&(pOpt->pzDetail)); + coerce_it((void*)&(pOpt->pzPackager)); + option_usage_text.field_ct = 0; + + for (ix = pOpt->optCt; ix > 0; ix--, pOD++) + coerce_it((void*)&(pOD->pzText)); } - option_usage_text.field_ct = 0; - - { - tOptDesc* pOD = ntp_keygenOptions.pOptDesc; - int ix = ntp_keygenOptions.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++; + + if ((pOpt->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) { + tOptDesc * pOD = pOpt->pOptDesc; + int ix; + + for (ix = pOpt->optCt; ix > 0; ix--, pOD++) { + coerce_it((void*)&(pOD->pz_Name)); + coerce_it((void*)&(pOD->pz_DisableName)); + coerce_it((void*)&(pOD->pz_DisablePfx)); } + /* prevent re-translation */ + ntp_keygenOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT; } - COERSION(pzCopyright); - COERSION(pzCopyNotice); - COERSION(pzFullVersion); - COERSION(pzUsageTitle); - COERSION(pzExplain); - COERSION(pzDetail); } #endif /* ENABLE_NLS */ |