21 #define FIX_UNUSED(X) (void) (X)
28 const char *
gengetopt_args_info_purpose =
"ofxdump prints to stdout, in human readable form, everything the library \nunderstands about a particular file or response, and sends errors to\nstderr. To know exactly what the library understands about of a particular\nofx response file, just call ofxdump on that file.";
32 const char *gengetopt_args_info_versiontext =
"";
37 " -h, --help Print help and exit",
38 " -V, --version Print version and exit",
39 " -f, --import-format=STRING Force the file format of the file(s) specified\n (default=`AUTODETECT')",
40 " --list-import-formats List available import file formats\n 'import-format' command",
41 " --msg_parser Output file parsing messages (default=off)",
42 " --msg_debug Output messages meant for debuging (default=off)",
43 " --msg_warning Output warning messages about abnormal conditions\n and unknown constructs (default=on)",
44 " --msg_error Output error messages (default=on)",
45 " --msg_info Output informational messages about the progress\n of the library (default=on)",
46 " --msg_status Output status messages (default=on)",
53 } cmdline_parser_arg_type;
66 gengetopt_strdup (
const char *s);
86 FIX_UNUSED (args_info);
123 if (strlen(gengetopt_args_info_versiontext) > 0)
124 printf(
"\n%s\n", gengetopt_args_info_versiontext);
127 static void print_help_common(
void) {
154 clear_given (args_info);
155 clear_args (args_info);
156 init_args_info (args_info);
185 free_string_field (
char **s)
204 free (args_info->
inputs [i]);
209 clear_given (args_info);
214 write_into_file(FILE *outfile,
const char *opt,
const char *arg,
const char *values[])
218 fprintf(outfile,
"%s=\"%s\"\n", opt, arg);
220 fprintf(outfile,
"%s\n", opt);
237 write_into_file(outfile,
"help", 0, 0 );
239 write_into_file(outfile,
"version", 0, 0 );
243 write_into_file(outfile,
"list-import-formats", 0, 0 );
245 write_into_file(outfile,
"msg_parser", 0, 0 );
247 write_into_file(outfile,
"msg_debug", 0, 0 );
249 write_into_file(outfile,
"msg_warning", 0, 0 );
251 write_into_file(outfile,
"msg_error", 0, 0 );
253 write_into_file(outfile,
"msg_info", 0, 0 );
255 write_into_file(outfile,
"msg_status", 0, 0 );
268 outfile = fopen(filename,
"w");
285 cmdline_parser_release (args_info);
290 gengetopt_strdup (
const char *s)
296 result = (
char*)malloc(strlen(s) + 1);
297 if (result == (
char*)0)
314 result = cmdline_parser_internal (argc, argv, args_info, params, 0);
316 if (result == EXIT_FAILURE)
337 result = cmdline_parser_internal (argc, argv, args_info, ¶ms, 0);
339 if (result == EXIT_FAILURE)
351 FIX_UNUSED (args_info);
352 FIX_UNUSED (prog_name);
357 static char *package_name = 0;
378 int update_arg(
void *field,
char **orig_field,
379 unsigned int *field_given,
unsigned int *prev_given,
380 char *value,
const char *possible_values[],
381 const char *default_value,
382 cmdline_parser_arg_type arg_type,
384 int no_free,
int multiple_option,
385 const char *long_opt,
char short_opt,
386 const char *additional_error)
389 const char *val = value;
397 if (!multiple_option && prev_given && (*prev_given || (check_ambiguity && *field_given)))
399 if (short_opt !=
'-')
400 fprintf (stderr,
"%s: `--%s' (`-%c') option given more than once%s\n",
401 package_name, long_opt, short_opt,
402 (additional_error ? additional_error :
""));
404 fprintf (stderr,
"%s: `--%s' option given more than once%s\n",
405 package_name, long_opt,
406 (additional_error ? additional_error :
""));
410 FIX_UNUSED (default_value);
412 if (field_given && *field_given && !
override)
419 val = possible_values[found];
423 *((
int *)field) = !*((
int *)field);
427 string_field = (
char **)field;
428 if (!no_free && *string_field)
429 free (*string_field);
430 *string_field = gengetopt_strdup (val);
444 if (value && orig_field) {
450 *orig_field = gengetopt_strdup (value);
460 cmdline_parser_internal (
466 int error_occurred = 0;
474 package_name = argv[0];
493 int option_index = 0;
495 static struct option long_options[] = {
496 {
"help", 0, NULL,
'h' },
497 {
"version", 0, NULL,
'V' },
498 {
"import-format", 1, NULL,
'f' },
499 {
"list-import-formats", 0, NULL, 0 },
500 {
"msg_parser", 0, NULL, 0 },
501 {
"msg_debug", 0, NULL, 0 },
502 {
"msg_warning", 0, NULL, 0 },
503 {
"msg_error", 0, NULL, 0 },
504 {
"msg_info", 0, NULL, 0 },
505 {
"msg_status", 0, NULL, 0 },
509 c = getopt_long (argc, argv,
"hVf:", long_options, &option_index);
530 &(local_args_info.import_format_given), optarg, 0,
"AUTODETECT", ARG_STRING,
531 check_ambiguity,
override, 0, 0,
532 "import-format",
'f',
540 if (strcmp (long_options[option_index].name,
"list-import-formats") == 0)
546 &(local_args_info.list_import_formats_given), optarg, 0, 0, ARG_NO,
547 check_ambiguity,
override, 0, 0,
548 "list-import-formats",
'-',
554 else if (strcmp (long_options[option_index].name,
"msg_parser") == 0)
559 &(local_args_info.msg_parser_given), optarg, 0, 0, ARG_FLAG,
560 check_ambiguity,
override, 1, 0,
"msg_parser",
'-',
566 else if (strcmp (long_options[option_index].name,
"msg_debug") == 0)
571 &(local_args_info.msg_debug_given), optarg, 0, 0, ARG_FLAG,
572 check_ambiguity,
override, 1, 0,
"msg_debug",
'-',
578 else if (strcmp (long_options[option_index].name,
"msg_warning") == 0)
583 &(local_args_info.msg_warning_given), optarg, 0, 0, ARG_FLAG,
584 check_ambiguity,
override, 1, 0,
"msg_warning",
'-',
590 else if (strcmp (long_options[option_index].name,
"msg_error") == 0)
595 &(local_args_info.msg_error_given), optarg, 0, 0, ARG_FLAG,
596 check_ambiguity,
override, 1, 0,
"msg_error",
'-',
602 else if (strcmp (long_options[option_index].name,
"msg_info") == 0)
607 &(local_args_info.msg_info_given), optarg, 0, 0, ARG_FLAG,
608 check_ambiguity,
override, 1, 0,
"msg_info",
'-',
614 else if (strcmp (long_options[option_index].name,
"msg_status") == 0)
619 &(local_args_info.msg_status_given), optarg, 0, 0, ARG_FLAG,
620 check_ambiguity,
override, 1, 0,
"msg_status",
'-',
632 fprintf (stderr,
"%s: option unknown: %c%s\n",
CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error :
""));
640 cmdline_parser_release (&local_args_info);
642 if ( error_occurred )
643 return (EXIT_FAILURE);
648 int found_prog_name = 0;
655 if (argv[i++] == argv[0]) {
661 args_info->
inputs_num = argc - optind - found_prog_name;
663 (
char **)(malloc ((args_info->
inputs_num)*
sizeof(
char *))) ;
664 while (optind < argc)
665 if (argv[optind++] != argv[0])
666 args_info->
inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ;
673 cmdline_parser_release (&local_args_info);
674 return (EXIT_FAILURE);
int override
whether to override possibly already present options (default 0)
int msg_info_flag
Output informational messages about the progress of the library (default=on).
int initialize
whether to initialize the option structure gengetopt_args_info (default 1)
const char * msg_status_help
Output status messages help description.
int msg_warning_flag
Output warning messages about abnormal conditions and unknown constructs (default=on).
char * import_format_arg
Force the file format of the file(s) specified (default='AUTODETECT').
unsigned int msg_warning_given
Whether msg_warning was given.
Where the command line options are stored.
unsigned int msg_error_given
Whether msg_error was given.
unsigned int help_given
Whether help was given.
const char * gengetopt_args_info_help[]
all the lines making the help output
unsigned int msg_debug_given
Whether msg_debug was given.
const char * gengetopt_args_info_usage
the usage string of the program
int cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
unsigned int msg_status_given
Whether msg_status was given.
unsigned int msg_parser_given
Whether msg_parser was given.
int msg_debug_flag
Output messages meant for debuging (default=off).
unsigned int list_import_formats_given
Whether list-import-formats was given.
const char * msg_parser_help
Output file parsing messages help description.
The additional parameters to pass to parser functions.
const char * gengetopt_args_info_purpose
the purpose string of the program
const char * list_import_formats_help
List available import file formats 'import-format' command help description.
unsigned int import_format_given
Whether import-format was given.
int cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info)
char * import_format_orig
Force the file format of the file(s) specified original value given at command line.
void cmdline_parser_print_version(void)
void cmdline_parser_init(struct gengetopt_args_info *args_info)
const char * msg_error_help
Output error messages help description.
const char * import_format_help
Force the file format of the file(s) specified help description.
const char * gengetopt_args_info_description
the description string of the program
#define CMDLINE_PARSER_PACKAGE
the program name (used for printing errors)
#define CMDLINE_PARSER_VERSION
the program version
const char * version_help
Print version and exit help description.
int cmdline_parser2(int argc, char **argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
void cmdline_parser_params_init(struct cmdline_parser_params *params)
int msg_error_flag
Output error messages (default=on).
const char * msg_debug_help
Output messages meant for debuging help description.
int cmdline_parser(int argc, char **argv, struct gengetopt_args_info *args_info)
void cmdline_parser_print_help(void)
unsigned inputs_num
unamed options number
int cmdline_parser_ext(int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params)
const char * help_help
Print help and exit help description.
int msg_status_flag
Output status messages (default=on).
int msg_parser_flag
Output file parsing messages (default=off).
int print_errors
whether getopt_long should print an error message for a bad option (default 1)
#define CMDLINE_PARSER_PACKAGE_NAME
the complete program name (used for help and version)
int check_ambiguity
whether to check for options already specified in the option structure gengetopt_args_info (default 0...
int check_required
whether to check that all required options were provided (default 1)
const char * msg_info_help
Output informational messages about the progress of the library help description. ...
The header file for the command line option parser generated by GNU Gengetopt version 2...
unsigned int msg_info_given
Whether msg_info was given.
char ** inputs
unamed options (options without names)
void cmdline_parser_free(struct gengetopt_args_info *args_info)
struct cmdline_parser_params * cmdline_parser_params_create(void)
int cmdline_parser_required(struct gengetopt_args_info *args_info, const char *prog_name)
const char * msg_warning_help
Output warning messages about abnormal conditions and unknown constructs help description.
unsigned int version_given
Whether version was given.