221
305
init_args_info (args_info);
224
struct cmdline_parser_params *
225
cmdline_parser_params_init()
309
cmdline_parser_params_init(struct cmdline_parser_params *params)
227
struct cmdline_parser_params *params =
228
(struct cmdline_parser_params *)malloc(sizeof(struct cmdline_parser_params));
232
313
params->override = 0;
233
params->initialize = 0;
234
params->check_required = 0;
314
params->initialize = 1;
315
params->check_required = 1;
235
316
params->check_ambiguity = 0;
317
params->print_errors = 1;
321
struct cmdline_parser_params *
322
cmdline_parser_params_create(void)
324
struct cmdline_parser_params *params =
325
(struct cmdline_parser_params *)malloc(sizeof(struct cmdline_parser_params));
326
cmdline_parser_params_init(params);
331
free_string_field (char **s)
242
342
cmdline_parser_release (struct gengetopt_args_info *args_info)
245
if (args_info->input_arg)
247
free (args_info->input_arg); /* free previous argument */
248
args_info->input_arg = 0;
250
if (args_info->input_orig)
252
free (args_info->input_orig); /* free previous argument */
253
args_info->input_orig = 0;
255
if (args_info->func_name_arg)
257
free (args_info->func_name_arg); /* free previous argument */
258
args_info->func_name_arg = 0;
260
if (args_info->func_name_orig)
262
free (args_info->func_name_orig); /* free previous argument */
263
args_info->func_name_orig = 0;
265
if (args_info->arg_struct_name_arg)
267
free (args_info->arg_struct_name_arg); /* free previous argument */
268
args_info->arg_struct_name_arg = 0;
270
if (args_info->arg_struct_name_orig)
272
free (args_info->arg_struct_name_orig); /* free previous argument */
273
args_info->arg_struct_name_orig = 0;
275
if (args_info->file_name_arg)
277
free (args_info->file_name_arg); /* free previous argument */
278
args_info->file_name_arg = 0;
280
if (args_info->file_name_orig)
282
free (args_info->file_name_orig); /* free previous argument */
283
args_info->file_name_orig = 0;
285
if (args_info->output_dir_arg)
287
free (args_info->output_dir_arg); /* free previous argument */
288
args_info->output_dir_arg = 0;
290
if (args_info->output_dir_orig)
292
free (args_info->output_dir_orig); /* free previous argument */
293
args_info->output_dir_orig = 0;
295
if (args_info->c_extension_arg)
297
free (args_info->c_extension_arg); /* free previous argument */
298
args_info->c_extension_arg = 0;
300
if (args_info->c_extension_orig)
302
free (args_info->c_extension_orig); /* free previous argument */
303
args_info->c_extension_orig = 0;
305
if (args_info->header_extension_arg)
307
free (args_info->header_extension_arg); /* free previous argument */
308
args_info->header_extension_arg = 0;
310
if (args_info->header_extension_orig)
312
free (args_info->header_extension_orig); /* free previous argument */
313
args_info->header_extension_orig = 0;
315
if (args_info->unamed_opts_arg)
317
free (args_info->unamed_opts_arg); /* free previous argument */
318
args_info->unamed_opts_arg = 0;
320
if (args_info->unamed_opts_orig)
322
free (args_info->unamed_opts_orig); /* free previous argument */
323
args_info->unamed_opts_orig = 0;
325
if (args_info->show_required_arg)
327
free (args_info->show_required_arg); /* free previous argument */
328
args_info->show_required_arg = 0;
330
if (args_info->show_required_orig)
332
free (args_info->show_required_orig); /* free previous argument */
333
args_info->show_required_orig = 0;
335
if (args_info->set_package_arg)
337
free (args_info->set_package_arg); /* free previous argument */
338
args_info->set_package_arg = 0;
340
if (args_info->set_package_orig)
342
free (args_info->set_package_orig); /* free previous argument */
343
args_info->set_package_orig = 0;
345
if (args_info->set_version_arg)
347
free (args_info->set_version_arg); /* free previous argument */
348
args_info->set_version_arg = 0;
350
if (args_info->set_version_orig)
352
free (args_info->set_version_orig); /* free previous argument */
353
args_info->set_version_orig = 0;
345
free_string_field (&(args_info->input_arg));
346
free_string_field (&(args_info->input_orig));
347
free_string_field (&(args_info->func_name_arg));
348
free_string_field (&(args_info->func_name_orig));
349
free_string_field (&(args_info->arg_struct_name_arg));
350
free_string_field (&(args_info->arg_struct_name_orig));
351
free_string_field (&(args_info->file_name_arg));
352
free_string_field (&(args_info->file_name_orig));
353
free_string_field (&(args_info->output_dir_arg));
354
free_string_field (&(args_info->output_dir_orig));
355
free_string_field (&(args_info->c_extension_arg));
356
free_string_field (&(args_info->c_extension_orig));
357
free_string_field (&(args_info->header_extension_arg));
358
free_string_field (&(args_info->header_extension_orig));
359
free_string_field (&(args_info->unamed_opts_arg));
360
free_string_field (&(args_info->unamed_opts_orig));
361
free_string_field (&(args_info->show_required_arg));
362
free_string_field (&(args_info->show_required_orig));
363
free_string_field (&(args_info->set_package_arg));
364
free_string_field (&(args_info->set_package_orig));
365
free_string_field (&(args_info->set_version_arg));
366
free_string_field (&(args_info->set_version_orig));
356
370
clear_given (args_info);
375
write_into_file(FILE *outfile, const char *opt, const char *arg, char *values[])
378
fprintf(outfile, "%s=\"%s\"\n", opt, arg);
380
fprintf(outfile, "%s\n", opt);
386
cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info)
392
fprintf (stderr, "%s: cannot dump options to stream\n", CMDLINE_PARSER_PACKAGE);
396
if (args_info->help_given)
397
write_into_file(outfile, "help", 0, 0 );
398
if (args_info->detailed_help_given)
399
write_into_file(outfile, "detailed-help", 0, 0 );
400
if (args_info->version_given)
401
write_into_file(outfile, "version", 0, 0 );
402
if (args_info->input_given)
403
write_into_file(outfile, "input", args_info->input_orig, 0);
404
if (args_info->func_name_given)
405
write_into_file(outfile, "func-name", args_info->func_name_orig, 0);
406
if (args_info->arg_struct_name_given)
407
write_into_file(outfile, "arg-struct-name", args_info->arg_struct_name_orig, 0);
408
if (args_info->file_name_given)
409
write_into_file(outfile, "file-name", args_info->file_name_orig, 0);
410
if (args_info->output_dir_given)
411
write_into_file(outfile, "output-dir", args_info->output_dir_orig, 0);
412
if (args_info->c_extension_given)
413
write_into_file(outfile, "c-extension", args_info->c_extension_orig, 0);
414
if (args_info->header_extension_given)
415
write_into_file(outfile, "header-extension", args_info->header_extension_orig, 0);
416
if (args_info->long_help_given)
417
write_into_file(outfile, "long-help", 0, 0 );
418
if (args_info->default_optional_given)
419
write_into_file(outfile, "default-optional", 0, 0 );
420
if (args_info->unamed_opts_given)
421
write_into_file(outfile, "unamed-opts", args_info->unamed_opts_orig, 0);
422
if (args_info->conf_parser_given)
423
write_into_file(outfile, "conf-parser", 0, 0 );
424
if (args_info->string_parser_given)
425
write_into_file(outfile, "string-parser", 0, 0 );
426
if (args_info->include_getopt_given)
427
write_into_file(outfile, "include-getopt", 0, 0 );
428
if (args_info->no_handle_help_given)
429
write_into_file(outfile, "no-handle-help", 0, 0 );
430
if (args_info->no_help_given)
431
write_into_file(outfile, "no-help", 0, 0 );
432
if (args_info->no_handle_version_given)
433
write_into_file(outfile, "no-handle-version", 0, 0 );
434
if (args_info->no_version_given)
435
write_into_file(outfile, "no-version", 0, 0 );
436
if (args_info->no_handle_error_given)
437
write_into_file(outfile, "no-handle-error", 0, 0 );
438
if (args_info->show_required_given)
439
write_into_file(outfile, "show-required", args_info->show_required_orig, 0);
440
if (args_info->gen_version_given)
441
write_into_file(outfile, "gen-version", 0, 0 );
442
if (args_info->set_package_given)
443
write_into_file(outfile, "set-package", args_info->set_package_orig, 0);
444
if (args_info->set_version_given)
445
write_into_file(outfile, "set-version", args_info->set_version_orig, 0);
446
if (args_info->show_help_given)
447
write_into_file(outfile, "show-help", 0, 0 );
448
if (args_info->show_full_help_given)
449
write_into_file(outfile, "show-full-help", 0, 0 );
450
if (args_info->show_detailed_help_given)
451
write_into_file(outfile, "show-detailed-help", 0, 0 );
452
if (args_info->show_version_given)
453
write_into_file(outfile, "show-version", 0, 0 );
360
461
cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
370
471
return EXIT_FAILURE;
373
if (args_info->help_given) {
374
fprintf(outfile, "%s\n", "help");
376
if (args_info->version_given) {
377
fprintf(outfile, "%s\n", "version");
379
if (args_info->input_given) {
380
if (args_info->input_orig) {
381
fprintf(outfile, "%s=\"%s\"\n", "input", args_info->input_orig);
383
fprintf(outfile, "%s\n", "input");
386
if (args_info->func_name_given) {
387
if (args_info->func_name_orig) {
388
fprintf(outfile, "%s=\"%s\"\n", "func-name", args_info->func_name_orig);
390
fprintf(outfile, "%s\n", "func-name");
393
if (args_info->arg_struct_name_given) {
394
if (args_info->arg_struct_name_orig) {
395
fprintf(outfile, "%s=\"%s\"\n", "arg-struct-name", args_info->arg_struct_name_orig);
397
fprintf(outfile, "%s\n", "arg-struct-name");
400
if (args_info->file_name_given) {
401
if (args_info->file_name_orig) {
402
fprintf(outfile, "%s=\"%s\"\n", "file-name", args_info->file_name_orig);
404
fprintf(outfile, "%s\n", "file-name");
407
if (args_info->output_dir_given) {
408
if (args_info->output_dir_orig) {
409
fprintf(outfile, "%s=\"%s\"\n", "output-dir", args_info->output_dir_orig);
411
fprintf(outfile, "%s\n", "output-dir");
414
if (args_info->c_extension_given) {
415
if (args_info->c_extension_orig) {
416
fprintf(outfile, "%s=\"%s\"\n", "c-extension", args_info->c_extension_orig);
418
fprintf(outfile, "%s\n", "c-extension");
421
if (args_info->header_extension_given) {
422
if (args_info->header_extension_orig) {
423
fprintf(outfile, "%s=\"%s\"\n", "header-extension", args_info->header_extension_orig);
425
fprintf(outfile, "%s\n", "header-extension");
428
if (args_info->long_help_given) {
429
fprintf(outfile, "%s\n", "long-help");
431
if (args_info->default_optional_given) {
432
fprintf(outfile, "%s\n", "default-optional");
434
if (args_info->unamed_opts_given) {
435
if (args_info->unamed_opts_orig) {
436
fprintf(outfile, "%s=\"%s\"\n", "unamed-opts", args_info->unamed_opts_orig);
438
fprintf(outfile, "%s\n", "unamed-opts");
441
if (args_info->conf_parser_given) {
442
fprintf(outfile, "%s\n", "conf-parser");
444
if (args_info->string_parser_given) {
445
fprintf(outfile, "%s\n", "string-parser");
447
if (args_info->include_getopt_given) {
448
fprintf(outfile, "%s\n", "include-getopt");
450
if (args_info->no_handle_help_given) {
451
fprintf(outfile, "%s\n", "no-handle-help");
453
if (args_info->no_handle_version_given) {
454
fprintf(outfile, "%s\n", "no-handle-version");
456
if (args_info->no_handle_error_given) {
457
fprintf(outfile, "%s\n", "no-handle-error");
459
if (args_info->show_required_given) {
460
if (args_info->show_required_orig) {
461
fprintf(outfile, "%s=\"%s\"\n", "show-required", args_info->show_required_orig);
463
fprintf(outfile, "%s\n", "show-required");
466
if (args_info->gen_version_given) {
467
fprintf(outfile, "%s\n", "gen-version");
469
if (args_info->set_package_given) {
470
if (args_info->set_package_orig) {
471
fprintf(outfile, "%s=\"%s\"\n", "set-package", args_info->set_package_orig);
473
fprintf(outfile, "%s\n", "set-package");
476
if (args_info->set_version_given) {
477
if (args_info->set_version_orig) {
478
fprintf(outfile, "%s=\"%s\"\n", "set-version", args_info->set_version_orig);
480
fprintf(outfile, "%s\n", "set-version");
483
if (args_info->show_help_given) {
484
fprintf(outfile, "%s\n", "show-help");
486
if (args_info->show_full_help_given) {
487
fprintf(outfile, "%s\n", "show-full-help");
489
if (args_info->show_version_given) {
490
fprintf(outfile, "%s\n", "show-version");
474
i = cmdline_parser_dump(outfile, args_info);
493
475
fclose (outfile);
630
714
case 'h': /* Print help and exit. */
631
if (local_args_info.help_given || (check_ambiguity && args_info->help_given))
633
fprintf (stderr, "%s: `--help' (`-h') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
636
if (args_info->help_given && ! override)
638
local_args_info.help_given = 1;
639
args_info->help_given = 1;
718
0 , &(args_info->help_given),
719
&(local_args_info.help_given), optarg, 0, 0, ARG_NO,
720
check_ambiguity, override, 0, 0,
640
724
cmdline_parser_free (&local_args_info);
643
728
case 'V': /* Print version and exit. */
644
if (local_args_info.version_given || (check_ambiguity && args_info->version_given))
646
fprintf (stderr, "%s: `--version' (`-V') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
649
if (args_info->version_given && ! override)
651
local_args_info.version_given = 1;
652
args_info->version_given = 1;
732
0 , &(args_info->version_given),
733
&(local_args_info.version_given), optarg, 0, 0, ARG_NO,
734
check_ambiguity, override, 0, 0,
653
738
cmdline_parser_free (&local_args_info);
656
742
case 'i': /* input file (default std input). */
657
if (local_args_info.input_given || (check_ambiguity && args_info->input_given))
659
fprintf (stderr, "%s: `--input' (`-i') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
662
if (args_info->input_given && ! override)
664
local_args_info.input_given = 1;
665
args_info->input_given = 1;
666
if (args_info->input_arg)
667
free (args_info->input_arg); /* free previous string */
668
args_info->input_arg = gengetopt_strdup (optarg);
669
if (args_info->input_orig)
670
free (args_info->input_orig); /* free previous string */
671
args_info->input_orig = gengetopt_strdup (optarg);
745
if (update_arg( (void *)&(args_info->input_arg),
746
&(args_info->input_orig), &(args_info->input_given),
747
&(local_args_info.input_given), optarg, 0, 0, ARG_STRING,
748
check_ambiguity, override, 0, 0,
674
754
case 'f': /* name of generated function. */
675
if (local_args_info.func_name_given || (check_ambiguity && args_info->func_name_given))
677
fprintf (stderr, "%s: `--func-name' (`-f') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
680
if (args_info->func_name_given && ! override)
682
local_args_info.func_name_given = 1;
683
args_info->func_name_given = 1;
684
if (args_info->func_name_arg)
685
free (args_info->func_name_arg); /* free previous string */
686
args_info->func_name_arg = gengetopt_strdup (optarg);
687
if (args_info->func_name_orig)
688
free (args_info->func_name_orig); /* free previous string */
689
args_info->func_name_orig = gengetopt_strdup (optarg);
757
if (update_arg( (void *)&(args_info->func_name_arg),
758
&(args_info->func_name_orig), &(args_info->func_name_given),
759
&(local_args_info.func_name_given), optarg, 0, "cmdline_parser", ARG_STRING,
760
check_ambiguity, override, 0, 0,
692
766
case 'a': /* name of generated args info struct. */
693
if (local_args_info.arg_struct_name_given || (check_ambiguity && args_info->arg_struct_name_given))
695
fprintf (stderr, "%s: `--arg-struct-name' (`-a') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
698
if (args_info->arg_struct_name_given && ! override)
700
local_args_info.arg_struct_name_given = 1;
701
args_info->arg_struct_name_given = 1;
702
if (args_info->arg_struct_name_arg)
703
free (args_info->arg_struct_name_arg); /* free previous string */
704
args_info->arg_struct_name_arg = gengetopt_strdup (optarg);
705
if (args_info->arg_struct_name_orig)
706
free (args_info->arg_struct_name_orig); /* free previous string */
707
args_info->arg_struct_name_orig = gengetopt_strdup (optarg);
769
if (update_arg( (void *)&(args_info->arg_struct_name_arg),
770
&(args_info->arg_struct_name_orig), &(args_info->arg_struct_name_given),
771
&(local_args_info.arg_struct_name_given), optarg, 0, "gengetopt_args_info", ARG_STRING,
772
check_ambiguity, override, 0, 0,
773
"arg-struct-name", 'a',
710
778
case 'F': /* name of generated file. */
711
if (local_args_info.file_name_given || (check_ambiguity && args_info->file_name_given))
713
fprintf (stderr, "%s: `--file-name' (`-F') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
716
if (args_info->file_name_given && ! override)
718
local_args_info.file_name_given = 1;
719
args_info->file_name_given = 1;
720
if (args_info->file_name_arg)
721
free (args_info->file_name_arg); /* free previous string */
722
args_info->file_name_arg = gengetopt_strdup (optarg);
723
if (args_info->file_name_orig)
724
free (args_info->file_name_orig); /* free previous string */
725
args_info->file_name_orig = gengetopt_strdup (optarg);
781
if (update_arg( (void *)&(args_info->file_name_arg),
782
&(args_info->file_name_orig), &(args_info->file_name_given),
783
&(local_args_info.file_name_given), optarg, 0, "cmdline", ARG_STRING,
784
check_ambiguity, override, 0, 0,
728
790
case 'c': /* extension of c file. */
729
if (local_args_info.c_extension_given || (check_ambiguity && args_info->c_extension_given))
731
fprintf (stderr, "%s: `--c-extension' (`-c') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
734
if (args_info->c_extension_given && ! override)
736
local_args_info.c_extension_given = 1;
737
args_info->c_extension_given = 1;
738
if (args_info->c_extension_arg)
739
free (args_info->c_extension_arg); /* free previous string */
740
args_info->c_extension_arg = gengetopt_strdup (optarg);
741
if (args_info->c_extension_orig)
742
free (args_info->c_extension_orig); /* free previous string */
743
args_info->c_extension_orig = gengetopt_strdup (optarg);
793
if (update_arg( (void *)&(args_info->c_extension_arg),
794
&(args_info->c_extension_orig), &(args_info->c_extension_given),
795
&(local_args_info.c_extension_given), optarg, 0, "c", ARG_STRING,
796
check_ambiguity, override, 0, 0,
746
802
case 'H': /* extension of header file. */
747
if (local_args_info.header_extension_given || (check_ambiguity && args_info->header_extension_given))
749
fprintf (stderr, "%s: `--header-extension' (`-H') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
752
if (args_info->header_extension_given && ! override)
754
local_args_info.header_extension_given = 1;
755
args_info->header_extension_given = 1;
756
if (args_info->header_extension_arg)
757
free (args_info->header_extension_arg); /* free previous string */
758
args_info->header_extension_arg = gengetopt_strdup (optarg);
759
if (args_info->header_extension_orig)
760
free (args_info->header_extension_orig); /* free previous string */
761
args_info->header_extension_orig = gengetopt_strdup (optarg);
805
if (update_arg( (void *)&(args_info->header_extension_arg),
806
&(args_info->header_extension_orig), &(args_info->header_extension_given),
807
&(local_args_info.header_extension_given), optarg, 0, "h", ARG_STRING,
808
check_ambiguity, override, 0, 0,
809
"header-extension", 'H',
764
814
case 'l': /* long usage line in help. */
765
if (local_args_info.long_help_given || (check_ambiguity && args_info->long_help_given))
767
fprintf (stderr, "%s: `--long-help' (`-l') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
770
if (args_info->long_help_given && ! override)
772
local_args_info.long_help_given = 1;
773
args_info->long_help_given = 1;
818
0 , &(args_info->long_help_given),
819
&(local_args_info.long_help_given), optarg, 0, 0, ARG_NO,
820
check_ambiguity, override, 0, 0,
776
826
case 'u': /* accept options without names (e.g., file names). */
777
if (local_args_info.unamed_opts_given || (check_ambiguity && args_info->unamed_opts_given))
779
fprintf (stderr, "%s: `--unamed-opts' (`-u') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
782
if (args_info->unamed_opts_given && ! override)
784
local_args_info.unamed_opts_given = 1;
785
args_info->unamed_opts_given = 1;
788
if (args_info->unamed_opts_arg)
789
free (args_info->unamed_opts_arg); /* free previous string */
790
args_info->unamed_opts_arg = gengetopt_strdup (optarg);
791
if (args_info->unamed_opts_orig)
792
free (args_info->unamed_opts_orig); /* free previous string */
793
args_info->unamed_opts_orig = gengetopt_strdup (optarg);
829
if (update_arg( (void *)&(args_info->unamed_opts_arg),
830
&(args_info->unamed_opts_orig), &(args_info->unamed_opts_given),
831
&(local_args_info.unamed_opts_given), optarg, 0, "FILES", ARG_STRING,
832
check_ambiguity, override, 0, 0,
797
838
case 'C': /* generate a config file parser. */
798
if (local_args_info.conf_parser_given || (check_ambiguity && args_info->conf_parser_given))
800
fprintf (stderr, "%s: `--conf-parser' (`-C') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
803
if (args_info->conf_parser_given && ! override)
805
local_args_info.conf_parser_given = 1;
806
args_info->conf_parser_given = 1;
842
0 , &(args_info->conf_parser_given),
843
&(local_args_info.conf_parser_given), optarg, 0, 0, ARG_NO,
844
check_ambiguity, override, 0, 0,
809
850
case 'S': /* generate a string parser (the string contains the command line). */
810
if (local_args_info.string_parser_given || (check_ambiguity && args_info->string_parser_given))
812
fprintf (stderr, "%s: `--string-parser' (`-S') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
815
if (args_info->string_parser_given && ! override)
817
local_args_info.string_parser_given = 1;
818
args_info->string_parser_given = 1;
854
0 , &(args_info->string_parser_given),
855
&(local_args_info.string_parser_given), optarg, 0, 0, ARG_NO,
856
check_ambiguity, override, 0, 0,
857
"string-parser", 'S',
821
862
case 'G': /* adds the code for getopt_long in the generated C file. */
822
if (local_args_info.include_getopt_given || (check_ambiguity && args_info->include_getopt_given))
824
fprintf (stderr, "%s: `--include-getopt' (`-G') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
827
if (args_info->include_getopt_given && ! override)
829
local_args_info.include_getopt_given = 1;
830
args_info->include_getopt_given = 1;
866
0 , &(args_info->include_getopt_given),
867
&(local_args_info.include_getopt_given), optarg, 0, 0, ARG_NO,
868
check_ambiguity, override, 0, 0,
869
"include-getopt", 'G',
833
874
case 'n': /* do not handle --help|-h automatically. */
834
if (local_args_info.no_handle_help_given || (check_ambiguity && args_info->no_handle_help_given))
836
fprintf (stderr, "%s: `--no-handle-help' (`-n') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
839
if (args_info->no_handle_help_given && ! override)
841
local_args_info.no_handle_help_given = 1;
842
args_info->no_handle_help_given = 1;
878
0 , &(args_info->no_handle_help_given),
879
&(local_args_info.no_handle_help_given), optarg, 0, 0, ARG_NO,
880
check_ambiguity, override, 0, 0,
881
"no-handle-help", 'n',
845
886
case 'N': /* do not handle --version|-V automatically. */
846
if (local_args_info.no_handle_version_given || (check_ambiguity && args_info->no_handle_version_given))
848
fprintf (stderr, "%s: `--no-handle-version' (`-N') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
851
if (args_info->no_handle_version_given && ! override)
853
local_args_info.no_handle_version_given = 1;
854
args_info->no_handle_version_given = 1;
890
0 , &(args_info->no_handle_version_given),
891
&(local_args_info.no_handle_version_given), optarg, 0, 0, ARG_NO,
892
check_ambiguity, override, 0, 0,
893
"no-handle-version", 'N',
857
898
case 'e': /* do not exit on errors. */
858
if (local_args_info.no_handle_error_given || (check_ambiguity && args_info->no_handle_error_given))
860
fprintf (stderr, "%s: `--no-handle-error' (`-e') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
863
if (args_info->no_handle_error_given && ! override)
865
local_args_info.no_handle_error_given = 1;
866
args_info->no_handle_error_given = 1;
902
0 , &(args_info->no_handle_error_given),
903
&(local_args_info.no_handle_error_given), optarg, 0, 0, ARG_NO,
904
check_ambiguity, override, 0, 0,
905
"no-handle-error", 'e',
869
910
case 'g': /* put gengetopt version in the generated file. */
870
if (local_args_info.gen_version_given || (check_ambiguity && args_info->gen_version_given))
872
fprintf (stderr, "%s: `--gen-version' (`-g') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
875
if (args_info->gen_version_given && ! override)
877
local_args_info.gen_version_given = 1;
878
args_info->gen_version_given = 1;
879
args_info->gen_version_flag = !(args_info->gen_version_flag);
913
if (update_arg((void *)&(args_info->gen_version_flag), 0, &(args_info->gen_version_given),
914
&(local_args_info.gen_version_given), optarg, 0, 0, ARG_FLAG,
915
check_ambiguity, override, 1, 0, "gen-version", 'g',
883
921
case 0: /* Long option with no short option */
922
/* Print help, including all details and hidden options, and exit. */
923
if (strcmp (long_options[option_index].name, "detailed-help") == 0)
928
0 , &(args_info->detailed_help_given),
929
&(local_args_info.detailed_help_given), optarg, 0, 0, ARG_NO,
930
check_ambiguity, override, 0, 0,
931
"detailed-help", '-',
934
cmdline_parser_free (&local_args_info);
884
938
/* output directory. */
885
if (strcmp (long_options[option_index].name, "output-dir") == 0)
939
else if (strcmp (long_options[option_index].name, "output-dir") == 0)
887
if (local_args_info.output_dir_given || (check_ambiguity && args_info->output_dir_given))
889
fprintf (stderr, "%s: `--output-dir' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
892
if (args_info->output_dir_given && ! override)
894
local_args_info.output_dir_given = 1;
895
args_info->output_dir_given = 1;
896
if (args_info->output_dir_arg)
897
free (args_info->output_dir_arg); /* free previous string */
898
args_info->output_dir_arg = gengetopt_strdup (optarg);
899
if (args_info->output_dir_orig)
900
free (args_info->output_dir_orig); /* free previous string */
901
args_info->output_dir_orig = gengetopt_strdup (optarg);
943
if (update_arg( (void *)&(args_info->output_dir_arg),
944
&(args_info->output_dir_orig), &(args_info->output_dir_given),
945
&(local_args_info.output_dir_given), optarg, 0, 0, ARG_STRING,
946
check_ambiguity, override, 0, 0,
903
952
/* by default, an option is considered optional if not specified otherwise. */
904
953
else if (strcmp (long_options[option_index].name, "default-optional") == 0)
906
if (local_args_info.default_optional_given || (check_ambiguity && args_info->default_optional_given))
908
fprintf (stderr, "%s: `--default-optional' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
911
if (args_info->default_optional_given && ! override)
913
local_args_info.default_optional_given = 1;
914
args_info->default_optional_given = 1;
958
0 , &(args_info->default_optional_given),
959
&(local_args_info.default_optional_given), optarg, 0, 0, ARG_NO,
960
check_ambiguity, override, 0, 0,
961
"default-optional", '-',
966
/* do not add --help|-h automatically. */
967
else if (strcmp (long_options[option_index].name, "no-help") == 0)
972
0 , &(args_info->no_help_given),
973
&(local_args_info.no_help_given), optarg, 0, 0, ARG_NO,
974
check_ambiguity, override, 0, 0,
980
/* do not add --version|-V automatically. */
981
else if (strcmp (long_options[option_index].name, "no-version") == 0)
986
0 , &(args_info->no_version_given),
987
&(local_args_info.no_version_given), optarg, 0, 0, ARG_NO,
988
check_ambiguity, override, 0, 0,
917
994
/* in the output of help will specify which options are mandatory, by using the optional passed string. */
918
995
else if (strcmp (long_options[option_index].name, "show-required") == 0)
920
if (local_args_info.show_required_given || (check_ambiguity && args_info->show_required_given))
922
fprintf (stderr, "%s: `--show-required' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
925
if (args_info->show_required_given && ! override)
927
local_args_info.show_required_given = 1;
928
args_info->show_required_given = 1;
931
if (args_info->show_required_arg)
932
free (args_info->show_required_arg); /* free previous string */
933
args_info->show_required_arg = gengetopt_strdup (optarg);
934
if (args_info->show_required_orig)
935
free (args_info->show_required_orig); /* free previous string */
936
args_info->show_required_orig = gengetopt_strdup (optarg);
999
if (update_arg( (void *)&(args_info->show_required_arg),
1000
&(args_info->show_required_orig), &(args_info->show_required_given),
1001
&(local_args_info.show_required_given), optarg, 0, "(mandatory)", ARG_STRING,
1002
check_ambiguity, override, 0, 0,
1003
"show-required", '-',
939
1008
/* set the package name (override package defined in the .ggo file). */
940
1009
else if (strcmp (long_options[option_index].name, "set-package") == 0)
942
if (local_args_info.set_package_given || (check_ambiguity && args_info->set_package_given))
944
fprintf (stderr, "%s: `--set-package' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
947
if (args_info->set_package_given && ! override)
949
local_args_info.set_package_given = 1;
950
args_info->set_package_given = 1;
951
if (args_info->set_package_arg)
952
free (args_info->set_package_arg); /* free previous string */
953
args_info->set_package_arg = gengetopt_strdup (optarg);
954
if (args_info->set_package_orig)
955
free (args_info->set_package_orig); /* free previous string */
956
args_info->set_package_orig = gengetopt_strdup (optarg);
1013
if (update_arg( (void *)&(args_info->set_package_arg),
1014
&(args_info->set_package_orig), &(args_info->set_package_given),
1015
&(local_args_info.set_package_given), optarg, 0, 0, ARG_STRING,
1016
check_ambiguity, override, 0, 0,
958
1022
/* set the version number (override version defined in the .ggo file). */
959
1023
else if (strcmp (long_options[option_index].name, "set-version") == 0)
961
if (local_args_info.set_version_given || (check_ambiguity && args_info->set_version_given))
963
fprintf (stderr, "%s: `--set-version' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
966
if (args_info->set_version_given && ! override)
968
local_args_info.set_version_given = 1;
969
args_info->set_version_given = 1;
970
if (args_info->set_version_arg)
971
free (args_info->set_version_arg); /* free previous string */
972
args_info->set_version_arg = gengetopt_strdup (optarg);
973
if (args_info->set_version_orig)
974
free (args_info->set_version_orig); /* free previous string */
975
args_info->set_version_orig = gengetopt_strdup (optarg);
1027
if (update_arg( (void *)&(args_info->set_version_arg),
1028
&(args_info->set_version_orig), &(args_info->set_version_given),
1029
&(local_args_info.set_version_given), optarg, 0, 0, ARG_STRING,
1030
check_ambiguity, override, 0, 0,
977
1036
/* show the output of --help instead of generating code. */
978
1037
else if (strcmp (long_options[option_index].name, "show-help") == 0)
980
if (local_args_info.show_help_given || (check_ambiguity && args_info->show_help_given))
982
fprintf (stderr, "%s: `--show-help' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
985
if (args_info->show_help_given && ! override)
987
local_args_info.show_help_given = 1;
988
args_info->show_help_given = 1;
1042
0 , &(args_info->show_help_given),
1043
&(local_args_info.show_help_given), optarg, 0, 0, ARG_NO,
1044
check_ambiguity, override, 0, 0,
991
/* show the output of --help (including hidden options) instead of generating code. */
1050
/* show the output of --full-help (i.e., including hidden options) instead of generating code. */
992
1051
else if (strcmp (long_options[option_index].name, "show-full-help") == 0)
994
if (local_args_info.show_full_help_given || (check_ambiguity && args_info->show_full_help_given))
996
fprintf (stderr, "%s: `--show-full-help' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
999
if (args_info->show_full_help_given && ! override)
1001
local_args_info.show_full_help_given = 1;
1002
args_info->show_full_help_given = 1;
1056
0 , &(args_info->show_full_help_given),
1057
&(local_args_info.show_full_help_given), optarg, 0, 0, ARG_NO,
1058
check_ambiguity, override, 0, 0,
1059
"show-full-help", '-',
1064
/* show the output of --detailed-help (i.e., including details and hidden options) instead of generating code. */
1065
else if (strcmp (long_options[option_index].name, "show-detailed-help") == 0)
1070
0 , &(args_info->show_detailed_help_given),
1071
&(local_args_info.show_detailed_help_given), optarg, 0, 0, ARG_NO,
1072
check_ambiguity, override, 0, 0,
1073
"show-detailed-help", '-',
1005
1078
/* show the output of --version instead of generating code. */
1006
1079
else if (strcmp (long_options[option_index].name, "show-version") == 0)
1008
if (local_args_info.show_version_given || (check_ambiguity && args_info->show_version_given))
1010
fprintf (stderr, "%s: `--show-version' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1013
if (args_info->show_version_given && ! override)
1015
local_args_info.show_version_given = 1;
1016
args_info->show_version_given = 1;
1084
0 , &(args_info->show_version_given),
1085
&(local_args_info.show_version_given), optarg, 0, 0, ARG_NO,
1086
check_ambiguity, override, 0, 0,
1087
"show-version", '-',