ntpdc-opts.c revision 182007
1/* 2 * EDIT THIS FILE WITH CAUTION (ntpdc-opts.c) 3 * 4 * It has been AutoGen-ed Sunday August 17, 2008 at 05:26:25 AM EDT 5 * From the definitions ntpdc-opts.def 6 * and the template file options 7 * 8 * Generated from AutoOpts 29:0:4 templates. 9 */ 10 11/* 12 * This file was produced by an AutoOpts template. AutoOpts is a 13 * copyrighted work. This source file is not encumbered by AutoOpts 14 * licensing, but is provided under the licensing terms chosen by the 15 * ntpdc author or copyright holder. AutoOpts is licensed under 16 * the terms of the LGPL. The redistributable library (``libopts'') is 17 * licensed under the terms of either the LGPL or, at the users discretion, 18 * the BSD license. See the AutoOpts and/or libopts sources for details. 19 * 20 * This source file is copyrighted and licensed under the following terms: 21 * 22 * ntpdc copyright 1970-2008 David L. Mills and/or others - all rights reserved 23 * 24 * see html/copyright.html 25 */ 26 27 28#include <limits.h> 29 30#define OPTION_CODE_COMPILE 1 31#include "ntpdc-opts.h" 32 33#ifdef __cplusplus 34extern "C" { 35#endif 36tSCC zCopyright[] = 37 "ntpdc copyright (c) 1970-2008 David L. Mills and/or others, all rights reserved"; 38tSCC zCopyrightNotice[] = 39 40/* extracted from ../include/copyright.def near line 8 */ 41"see html/copyright.html"; 42extern tUsageProc optionUsage; 43 44/* 45 * global included definitions 46 */ 47#ifdef __windows 48 extern int atoi(const char*); 49#else 50# include <stdlib.h> 51#endif 52 53#ifndef NULL 54# define NULL 0 55#endif 56#ifndef EXIT_SUCCESS 57# define EXIT_SUCCESS 0 58#endif 59#ifndef EXIT_FAILURE 60# define EXIT_FAILURE 1 61#endif 62/* 63 * Ipv4 option description: 64 */ 65tSCC zIpv4Text[] = 66 "Force IPv4 DNS name resolution"; 67tSCC zIpv4_NAME[] = "IPV4"; 68tSCC zIpv4_Name[] = "ipv4"; 69#define IPV4_FLAGS (OPTST_DISABLED) 70 71/* 72 * Ipv6 option description: 73 */ 74tSCC zIpv6Text[] = 75 "Force IPv6 DNS name resolution"; 76tSCC zIpv6_NAME[] = "IPV6"; 77tSCC zIpv6_Name[] = "ipv6"; 78#define IPV6_FLAGS (OPTST_DISABLED) 79 80/* 81 * Command option description: 82 */ 83tSCC zCommandText[] = 84 "run a command and exit"; 85tSCC zCommand_NAME[] = "COMMAND"; 86tSCC zCommand_Name[] = "command"; 87#define COMMAND_FLAGS (OPTST_DISABLED | OPTST_STACKED \ 88 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) 89 90/* 91 * Listpeers option description with 92 * "Must also have options" and "Incompatible options": 93 */ 94tSCC zListpeersText[] = 95 "Print a list of the peers"; 96tSCC zListpeers_NAME[] = "LISTPEERS"; 97tSCC zListpeers_Name[] = "listpeers"; 98static const int 99 aListpeersCantList[] = { 100 INDEX_OPT_COMMAND, NO_EQUIVALENT }; 101#define LISTPEERS_FLAGS (OPTST_DISABLED) 102 103/* 104 * Peers option description with 105 * "Must also have options" and "Incompatible options": 106 */ 107tSCC zPeersText[] = 108 "Print a list of the peers"; 109tSCC zPeers_NAME[] = "PEERS"; 110tSCC zPeers_Name[] = "peers"; 111static const int 112 aPeersCantList[] = { 113 INDEX_OPT_COMMAND, NO_EQUIVALENT }; 114#define PEERS_FLAGS (OPTST_DISABLED) 115 116/* 117 * Showpeers option description with 118 * "Must also have options" and "Incompatible options": 119 */ 120tSCC zShowpeersText[] = 121 "Show a list of the peers"; 122tSCC zShowpeers_NAME[] = "SHOWPEERS"; 123tSCC zShowpeers_Name[] = "showpeers"; 124static const int 125 aShowpeersCantList[] = { 126 INDEX_OPT_COMMAND, NO_EQUIVALENT }; 127#define SHOWPEERS_FLAGS (OPTST_DISABLED) 128 129/* 130 * Interactive option description with 131 * "Must also have options" and "Incompatible options": 132 */ 133tSCC zInteractiveText[] = 134 "Force ntpq to operate in interactive mode"; 135tSCC zInteractive_NAME[] = "INTERACTIVE"; 136tSCC zInteractive_Name[] = "interactive"; 137static const int 138 aInteractiveCantList[] = { 139 INDEX_OPT_COMMAND, 140 INDEX_OPT_LISTPEERS, 141 INDEX_OPT_PEERS, 142 INDEX_OPT_SHOWPEERS, NO_EQUIVALENT }; 143#define INTERACTIVE_FLAGS (OPTST_DISABLED) 144 145/* 146 * Debug_Level option description: 147 */ 148#ifdef DEBUG 149tSCC zDebug_LevelText[] = 150 "Increase output debug message level"; 151tSCC zDebug_Level_NAME[] = "DEBUG_LEVEL"; 152tSCC zDebug_Level_Name[] = "debug-level"; 153#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED) 154 155#else /* disable Debug_Level */ 156#define VALUE_OPT_DEBUG_LEVEL NO_EQUIVALENT 157#define DEBUG_LEVEL_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) 158#define zDebug_LevelText NULL 159#define zDebug_Level_NAME NULL 160#define zDebug_Level_Name NULL 161#endif /* DEBUG */ 162 163/* 164 * Set_Debug_Level option description: 165 */ 166#ifdef DEBUG 167tSCC zSet_Debug_LevelText[] = 168 "Set the output debug message level"; 169tSCC zSet_Debug_Level_NAME[] = "SET_DEBUG_LEVEL"; 170tSCC zSet_Debug_Level_Name[] = "set-debug-level"; 171#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \ 172 | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) 173 174#else /* disable Set_Debug_Level */ 175#define VALUE_OPT_SET_DEBUG_LEVEL NO_EQUIVALENT 176#define SET_DEBUG_LEVEL_FLAGS (OPTST_OMITTED | OPTST_NO_INIT) 177#define zSet_Debug_LevelText NULL 178#define zSet_Debug_Level_NAME NULL 179#define zSet_Debug_Level_Name NULL 180#endif /* DEBUG */ 181 182/* 183 * Numeric option description: 184 */ 185tSCC zNumericText[] = 186 "numeric host addresses"; 187tSCC zNumeric_NAME[] = "NUMERIC"; 188tSCC zNumeric_Name[] = "numeric"; 189#define NUMERIC_FLAGS (OPTST_DISABLED) 190 191/* 192 * Help/More_Help/Version option descriptions: 193 */ 194tSCC zHelpText[] = "Display usage information and exit"; 195tSCC zHelp_Name[] = "help"; 196 197tSCC zMore_HelpText[] = "Extended usage information passed thru pager"; 198tSCC zMore_Help_Name[] = "more-help"; 199 200tSCC zVersionText[] = "Output version information and exit"; 201tSCC zVersion_Name[] = "version"; 202 203/* 204 * Save/Load_Opts option description: 205 */ 206tSCC zSave_OptsText[] = "Save the option state to a config file"; 207tSCC zSave_Opts_Name[] = "save-opts"; 208 209tSCC zLoad_OptsText[] = "Load options from a config file"; 210tSCC zLoad_Opts_NAME[] = "LOAD_OPTS"; 211 212tSCC zNotLoad_Opts_Name[] = "no-load-opts"; 213tSCC zNotLoad_Opts_Pfx[] = "no"; 214#define zLoad_Opts_Name (zNotLoad_Opts_Name + 3) 215/* 216 * Declare option callback procedures 217 */ 218#ifdef DEBUG 219 static tOptProc doOptSet_Debug_Level; 220#else /* not DEBUG */ 221# define doOptSet_Debug_Level NULL 222#endif /* def/not DEBUG */ 223#if defined(TEST_NTPDC_OPTS) 224/* 225 * Under test, omit argument processing, or call optionStackArg, 226 * if multiple copies are allowed. 227 */ 228extern tOptProc 229 optionPagedUsage, optionStackArg, optionVersionStderr; 230static tOptProc 231 doUsageOpt; 232 233/* 234 * #define map the "normal" callout procs to the test ones... 235 */ 236#define SET_DEBUG_LEVEL_OPT_PROC optionStackArg 237 238 239#else /* NOT defined TEST_NTPDC_OPTS */ 240/* 241 * When not under test, there are different procs to use 242 */ 243extern tOptProc 244 optionPagedUsage, optionPrintVersion, optionStackArg; 245static tOptProc 246 doUsageOpt; 247 248/* 249 * #define map the "normal" callout procs 250 */ 251#define SET_DEBUG_LEVEL_OPT_PROC doOptSet_Debug_Level 252 253#define SET_DEBUG_LEVEL_OPT_PROC doOptSet_Debug_Level 254#endif /* defined(TEST_NTPDC_OPTS) */ 255#ifdef TEST_NTPDC_OPTS 256# define DOVERPROC optionVersionStderr 257#else 258# define DOVERPROC optionPrintVersion 259#endif /* TEST_NTPDC_OPTS */ 260 261/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 262 * 263 * Define the Ntpdc Option Descriptions. 264 */ 265static tOptDesc optDesc[ OPTION_CT ] = { 266 { /* entry idx, value */ 0, VALUE_OPT_IPV4, 267 /* equiv idx, value */ NO_EQUIVALENT, 0, 268 /* equivalenced to */ NO_EQUIVALENT, 269 /* min, max, act ct */ 0, 1, 0, 270 /* opt state flags */ IPV4_FLAGS, 0, 271 /* last opt argumnt */ { NULL }, 272 /* arg list/cookie */ NULL, 273 /* must/cannot opts */ NULL, NULL, 274 /* option proc */ NULL, 275 /* desc, NAME, name */ zIpv4Text, zIpv4_NAME, zIpv4_Name, 276 /* disablement strs */ NULL, NULL }, 277 278 { /* entry idx, value */ 1, VALUE_OPT_IPV6, 279 /* equiv idx, value */ NOLIMIT, NOLIMIT, 280 /* equivalenced to */ INDEX_OPT_IPV4, 281 /* min, max, act ct */ 0, 1, 0, 282 /* opt state flags */ IPV6_FLAGS, 0, 283 /* last opt argumnt */ { NULL }, 284 /* arg list/cookie */ NULL, 285 /* must/cannot opts */ NULL, NULL, 286 /* option proc */ NULL, 287 /* desc, NAME, name */ zIpv6Text, zIpv6_NAME, zIpv6_Name, 288 /* disablement strs */ NULL, NULL }, 289 290 { /* entry idx, value */ 2, VALUE_OPT_COMMAND, 291 /* equiv idx, value */ 2, VALUE_OPT_COMMAND, 292 /* equivalenced to */ NO_EQUIVALENT, 293 /* min, max, act ct */ 0, NOLIMIT, 0, 294 /* opt state flags */ COMMAND_FLAGS, 0, 295 /* last opt argumnt */ { NULL }, 296 /* arg list/cookie */ NULL, 297 /* must/cannot opts */ NULL, NULL, 298 /* option proc */ optionStackArg, 299 /* desc, NAME, name */ zCommandText, zCommand_NAME, zCommand_Name, 300 /* disablement strs */ NULL, NULL }, 301 302 { /* entry idx, value */ 3, VALUE_OPT_LISTPEERS, 303 /* equiv idx, value */ 3, VALUE_OPT_LISTPEERS, 304 /* equivalenced to */ NO_EQUIVALENT, 305 /* min, max, act ct */ 0, 1, 0, 306 /* opt state flags */ LISTPEERS_FLAGS, 0, 307 /* last opt argumnt */ { NULL }, 308 /* arg list/cookie */ NULL, 309 /* must/cannot opts */ NULL, aListpeersCantList, 310 /* option proc */ NULL, 311 /* desc, NAME, name */ zListpeersText, zListpeers_NAME, zListpeers_Name, 312 /* disablement strs */ NULL, NULL }, 313 314 { /* entry idx, value */ 4, VALUE_OPT_PEERS, 315 /* equiv idx, value */ 4, VALUE_OPT_PEERS, 316 /* equivalenced to */ NO_EQUIVALENT, 317 /* min, max, act ct */ 0, 1, 0, 318 /* opt state flags */ PEERS_FLAGS, 0, 319 /* last opt argumnt */ { NULL }, 320 /* arg list/cookie */ NULL, 321 /* must/cannot opts */ NULL, aPeersCantList, 322 /* option proc */ NULL, 323 /* desc, NAME, name */ zPeersText, zPeers_NAME, zPeers_Name, 324 /* disablement strs */ NULL, NULL }, 325 326 { /* entry idx, value */ 5, VALUE_OPT_SHOWPEERS, 327 /* equiv idx, value */ 5, VALUE_OPT_SHOWPEERS, 328 /* equivalenced to */ NO_EQUIVALENT, 329 /* min, max, act ct */ 0, 1, 0, 330 /* opt state flags */ SHOWPEERS_FLAGS, 0, 331 /* last opt argumnt */ { NULL }, 332 /* arg list/cookie */ NULL, 333 /* must/cannot opts */ NULL, aShowpeersCantList, 334 /* option proc */ NULL, 335 /* desc, NAME, name */ zShowpeersText, zShowpeers_NAME, zShowpeers_Name, 336 /* disablement strs */ NULL, NULL }, 337 338 { /* entry idx, value */ 6, VALUE_OPT_INTERACTIVE, 339 /* equiv idx, value */ 6, VALUE_OPT_INTERACTIVE, 340 /* equivalenced to */ NO_EQUIVALENT, 341 /* min, max, act ct */ 0, 1, 0, 342 /* opt state flags */ INTERACTIVE_FLAGS, 0, 343 /* last opt argumnt */ { NULL }, 344 /* arg list/cookie */ NULL, 345 /* must/cannot opts */ NULL, aInteractiveCantList, 346 /* option proc */ NULL, 347 /* desc, NAME, name */ zInteractiveText, zInteractive_NAME, zInteractive_Name, 348 /* disablement strs */ NULL, NULL }, 349 350 { /* entry idx, value */ 7, VALUE_OPT_DEBUG_LEVEL, 351 /* equiv idx, value */ 7, VALUE_OPT_DEBUG_LEVEL, 352 /* equivalenced to */ NO_EQUIVALENT, 353 /* min, max, act ct */ 0, NOLIMIT, 0, 354 /* opt state flags */ DEBUG_LEVEL_FLAGS, 0, 355 /* last opt argumnt */ { NULL }, 356 /* arg list/cookie */ NULL, 357 /* must/cannot opts */ NULL, NULL, 358 /* option proc */ NULL, 359 /* desc, NAME, name */ zDebug_LevelText, zDebug_Level_NAME, zDebug_Level_Name, 360 /* disablement strs */ NULL, NULL }, 361 362 { /* entry idx, value */ 8, VALUE_OPT_SET_DEBUG_LEVEL, 363 /* equiv idx, value */ 8, VALUE_OPT_SET_DEBUG_LEVEL, 364 /* equivalenced to */ NO_EQUIVALENT, 365 /* min, max, act ct */ 0, NOLIMIT, 0, 366 /* opt state flags */ SET_DEBUG_LEVEL_FLAGS, 0, 367 /* last opt argumnt */ { NULL }, 368 /* arg list/cookie */ NULL, 369 /* must/cannot opts */ NULL, NULL, 370 /* option proc */ SET_DEBUG_LEVEL_OPT_PROC, 371 /* desc, NAME, name */ zSet_Debug_LevelText, zSet_Debug_Level_NAME, zSet_Debug_Level_Name, 372 /* disablement strs */ NULL, NULL }, 373 374 { /* entry idx, value */ 9, VALUE_OPT_NUMERIC, 375 /* equiv idx, value */ 9, VALUE_OPT_NUMERIC, 376 /* equivalenced to */ NO_EQUIVALENT, 377 /* min, max, act ct */ 0, 1, 0, 378 /* opt state flags */ NUMERIC_FLAGS, 0, 379 /* last opt argumnt */ { NULL }, 380 /* arg list/cookie */ NULL, 381 /* must/cannot opts */ NULL, NULL, 382 /* option proc */ NULL, 383 /* desc, NAME, name */ zNumericText, zNumeric_NAME, zNumeric_Name, 384 /* disablement strs */ NULL, NULL }, 385 386#ifdef NO_OPTIONAL_OPT_ARGS 387# define VERSION_OPT_FLAGS OPTST_IMM | OPTST_NO_INIT 388#else 389# define VERSION_OPT_FLAGS OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \ 390 OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT 391#endif 392 393 { /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION, 394 /* equiv idx value */ NO_EQUIVALENT, 0, 395 /* equivalenced to */ NO_EQUIVALENT, 396 /* min, max, act ct */ 0, 1, 0, 397 /* opt state flags */ VERSION_OPT_FLAGS, 0, 398 /* last opt argumnt */ { NULL }, 399 /* arg list/cookie */ NULL, 400 /* must/cannot opts */ NULL, NULL, 401 /* option proc */ DOVERPROC, 402 /* desc, NAME, name */ zVersionText, NULL, zVersion_Name, 403 /* disablement strs */ NULL, NULL }, 404 405#undef VERSION_OPT_FLAGS 406 407 408 { /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP, 409 /* equiv idx value */ NO_EQUIVALENT, 0, 410 /* equivalenced to */ NO_EQUIVALENT, 411 /* min, max, act ct */ 0, 1, 0, 412 /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0, 413 /* last opt argumnt */ { NULL }, 414 /* arg list/cookie */ NULL, 415 /* must/cannot opts */ NULL, NULL, 416 /* option proc */ doUsageOpt, 417 /* desc, NAME, name */ zHelpText, NULL, zHelp_Name, 418 /* disablement strs */ NULL, NULL }, 419 420 { /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP, 421 /* equiv idx value */ NO_EQUIVALENT, 0, 422 /* equivalenced to */ NO_EQUIVALENT, 423 /* min, max, act ct */ 0, 1, 0, 424 /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0, 425 /* last opt argumnt */ { NULL }, 426 /* arg list/cookie */ NULL, 427 /* must/cannot opts */ NULL, NULL, 428 /* option proc */ optionPagedUsage, 429 /* desc, NAME, name */ zMore_HelpText, NULL, zMore_Help_Name, 430 /* disablement strs */ NULL, NULL }, 431 432 { /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS, 433 /* equiv idx value */ NO_EQUIVALENT, 0, 434 /* equivalenced to */ NO_EQUIVALENT, 435 /* min, max, act ct */ 0, 1, 0, 436 /* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) 437 | OPTST_ARG_OPTIONAL | OPTST_NO_INIT, 0, 438 /* last opt argumnt */ { NULL }, 439 /* arg list/cookie */ NULL, 440 /* must/cannot opts */ NULL, NULL, 441 /* option proc */ NULL, 442 /* desc, NAME, name */ zSave_OptsText, NULL, zSave_Opts_Name, 443 /* disablement strs */ NULL, NULL }, 444 445 { /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS, 446 /* equiv idx value */ NO_EQUIVALENT, 0, 447 /* equivalenced to */ NO_EQUIVALENT, 448 /* min, max, act ct */ 0, NOLIMIT, 0, 449 /* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) \ 450 | OPTST_DISABLE_IMM, 0, 451 /* last opt argumnt */ { NULL }, 452 /* arg list/cookie */ NULL, 453 /* must/cannot opts */ NULL, NULL, 454 /* option proc */ optionLoadOpt, 455 /* desc, NAME, name */ zLoad_OptsText, zLoad_Opts_NAME, zLoad_Opts_Name, 456 /* disablement strs */ zNotLoad_Opts_Name, zNotLoad_Opts_Pfx } 457}; 458 459/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 460 * 461 * Define the Ntpdc Option Environment 462 */ 463tSCC zPROGNAME[] = "NTPDC"; 464tSCC zUsageTitle[] = 465"ntpdc - vendor-specific NTP query program - Ver. 4.2.4p5\n\ 466USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"; 467tSCC zRcName[] = ".ntprc"; 468tSCC* apzHomeList[] = { 469 "$HOME", 470 ".", 471 NULL }; 472 473tSCC zBugsAddr[] = "http://bugs.ntp.isc.org, bugs@ntp.org"; 474#define zExplain NULL 475tSCC zDetail[] = "\n\ 476The\n\ 477[= prog-name =]\n\ 478utility program is used to query an NTP daemon about its\n\ 479current state and to request changes in that state.\n\ 480It uses NTP mode 7 control message formats described in the source code.\n\ 481The program may\n\ 482be run either in interactive mode or controlled using command line\n\ 483arguments.\n\ 484Extensive state and statistics information is available\n\ 485through the\n\ 486[= prog-name =]\n\ 487interface.\n\ 488In addition, nearly all the\n\ 489configuration options which can be specified at startup using\n\ 490ntpd's configuration file may also be specified at run time using\n\ 491[= prog-name =] .\n"; 492tSCC zFullVersion[] = NTPDC_FULL_VERSION; 493/* extracted from /usr/local/gnu/share/autogen/optcode.tpl near line 408 */ 494 495#if defined(ENABLE_NLS) 496# define OPTPROC_BASE OPTPROC_TRANSLATE 497 static tOptionXlateProc translate_option_strings; 498#else 499# define OPTPROC_BASE OPTPROC_NONE 500# define translate_option_strings NULL 501#endif /* ENABLE_NLS */ 502 503tOptions ntpdcOptions = { 504 OPTIONS_STRUCT_VERSION, 505 0, NULL, /* original argc + argv */ 506 ( OPTPROC_BASE 507 + OPTPROC_ERRSTOP 508 + OPTPROC_SHORTOPT 509 + OPTPROC_LONGOPT 510 + OPTPROC_NO_REQ_OPT 511 + OPTPROC_ENVIRON 512 + OPTPROC_HAS_IMMED ), 513 0, NULL, /* current option index, current option */ 514 NULL, NULL, zPROGNAME, 515 zRcName, zCopyright, zCopyrightNotice, 516 zFullVersion, apzHomeList, zUsageTitle, 517 zExplain, zDetail, optDesc, 518 zBugsAddr, /* address to send bugs to */ 519 NULL, NULL, /* extensions/saved state */ 520 optionUsage, /* usage procedure */ 521 translate_option_strings, /* translation procedure */ 522 /* 523 * Indexes to special options 524 */ 525 { INDEX_OPT_MORE_HELP, 526 INDEX_OPT_SAVE_OPTS, 527 NO_EQUIVALENT /* index of '-#' option */, 528 NO_EQUIVALENT /* index of default opt */ 529 }, 530 15 /* full option count */, 10 /* user option count */ 531}; 532 533/* 534 * Create the static procedure(s) declared above. 535 */ 536static void 537doUsageOpt( 538 tOptions* pOptions, 539 tOptDesc* pOptDesc ) 540{ 541 USAGE( EXIT_SUCCESS ); 542} 543 544#if ! defined(TEST_NTPDC_OPTS) 545 546/* * * * * * * 547 * 548 * For the set-debug-level option, when DEBUG is #define-d. 549 */ 550#ifdef DEBUG 551static void 552doOptSet_Debug_Level( 553 tOptions* pOptions, 554 tOptDesc* pOptDesc ) 555{ 556 /* extracted from ../include/debug-opt.def, line 29 */ 557DESC(DEBUG_LEVEL).optOccCt = atoi( pOptDesc->pzLastArg ); 558} 559#endif /* defined DEBUG */ 560 561#endif /* defined(TEST_NTPDC_OPTS) */ 562 563/* extracted from /usr/local/gnu/share/autogen/optmain.tpl near line 92 */ 564 565#if defined(TEST_NTPDC_OPTS) /* TEST MAIN PROCEDURE: */ 566 567int 568main( int argc, char** argv ) 569{ 570 int res = EXIT_SUCCESS; 571 (void)optionProcess( &ntpdcOptions, argc, argv ); 572 { 573 void optionPutShell( tOptions* ); 574 optionPutShell( &ntpdcOptions ); 575 } 576 return res; 577} 578#endif /* defined TEST_NTPDC_OPTS */ 579/* extracted from /usr/local/gnu/share/autogen/optcode.tpl near line 514 */ 580 581#if ENABLE_NLS 582#include <stdio.h> 583#include <stdlib.h> 584#include <string.h> 585#include <unistd.h> 586#include <autoopts/usage-txt.h> 587 588static char* AO_gettext( char const* pz ); 589static void coerce_it(void** s); 590 591static char* 592AO_gettext( char const* pz ) 593{ 594 char* pzRes; 595 if (pz == NULL) 596 return NULL; 597 pzRes = _(pz); 598 if (pzRes == pz) 599 return pzRes; 600 pzRes = strdup( pzRes ); 601 if (pzRes == NULL) { 602 fputs( _("No memory for duping translated strings\n"), stderr ); 603 exit( EXIT_FAILURE ); 604 } 605 return pzRes; 606} 607 608static void coerce_it(void** s) { *s = AO_gettext(*s); } 609#define COERSION(_f) \ 610 coerce_it((void*)&(ntpdcOptions._f)) 611 612/* 613 * This invokes the translation code (e.g. gettext(3)). 614 */ 615static void 616translate_option_strings( void ) 617{ 618 /* 619 * Guard against re-translation. It won't work. The strings will have 620 * been changed by the first pass through this code. One shot only. 621 */ 622 if (option_usage_text.field_ct == 0) 623 return; 624 /* 625 * Do the translations. The first pointer follows the field count field. 626 * The field count field is the size of a pointer. 627 */ 628 { 629 char** ppz = (char**)(void*)&(option_usage_text); 630 int ix = option_usage_text.field_ct; 631 632 do { 633 ppz++; 634 *ppz = AO_gettext(*ppz); 635 } while (--ix > 0); 636 } 637 option_usage_text.field_ct = 0; 638 639 { 640 tOptDesc* pOD = ntpdcOptions.pOptDesc; 641 int ix = ntpdcOptions.optCt; 642 643 for (;;) { 644 pOD->pzText = AO_gettext(pOD->pzText); 645 pOD->pz_NAME = AO_gettext(pOD->pz_NAME); 646 pOD->pz_Name = AO_gettext(pOD->pz_Name); 647 pOD->pz_DisableName = AO_gettext(pOD->pz_DisableName); 648 pOD->pz_DisablePfx = AO_gettext(pOD->pz_DisablePfx); 649 if (--ix <= 0) 650 break; 651 pOD++; 652 } 653 } 654 COERSION(pzCopyright); 655 COERSION(pzCopyNotice); 656 COERSION(pzFullVersion); 657 COERSION(pzUsageTitle); 658 COERSION(pzExplain); 659 COERSION(pzDetail); 660} 661 662#endif /* ENABLE_NLS */ 663 664#ifdef __cplusplus 665} 666#endif 667/* ntpdc-opts.c ends here */ 668