X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=utilities%2Fgengetopt%2Fskels%2Fheader.cc;fp=utilities%2Fgengetopt%2Fskels%2Fheader.cc;h=92c3d5208e12444d42e4ea5001de7c2a918a010a;hb=79381bc54b9e0c85156460daa211fe5ac83da0a7;hp=0000000000000000000000000000000000000000;hpb=4454c06e212fb6af58d206f2d6f9b76778858967;p=clitk.git diff --git a/utilities/gengetopt/skels/header.cc b/utilities/gengetopt/skels/header.cc new file mode 100644 index 0000000..92c3d52 --- /dev/null +++ b/utilities/gengetopt/skels/header.cc @@ -0,0 +1,1077 @@ +/* + * File automatically generated by + * gengen 1.4 by Lorenzo Bettini + * http://www.gnu.org/software/gengen + */ + +#include "header.h" + +void +header_gen_class::generate_header(ostream &stream, unsigned int indent) +{ + string indent_str (indent, ' '); + indent = 0; + + stream << "/** "; + stream << "@"; + stream << "file "; + generate_string (header_file_name, stream, indent + indent_str.length ()); + stream << "."; + generate_string (header_file_ext, stream, indent + indent_str.length ()); + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "brief The header file for the command line option parser"; + stream << "\n"; + stream << indent_str; + stream << " * generated by GNU Gengetopt "; + generate_string (generator_version, stream, indent + indent_str.length ()); + stream << "\n"; + stream << indent_str; + stream << " * http://www.gnu.org/software/gengetopt."; + stream << "\n"; + stream << indent_str; + stream << " * DO NOT modify this file, since it can be overwritten"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "author GNU Gengetopt by Lorenzo Bettini */"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "#ifndef "; + generate_string (ifndefname, stream, indent + indent_str.length ()); + stream << "_H"; + stream << "\n"; + stream << indent_str; + stream << "#define "; + generate_string (ifndefname, stream, indent + indent_str.length ()); + stream << "_H"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/* If we use autoconf. */"; + stream << "\n"; + stream << indent_str; + stream << "#ifdef HAVE_CONFIG_H"; + stream << "\n"; + stream << indent_str; + stream << "#include \"config.h\""; + stream << "\n"; + stream << indent_str; + stream << "#endif"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "#include /* for FILE */"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "#ifdef __cplusplus"; + stream << "\n"; + stream << indent_str; + stream << "extern \"C\" {"; + stream << "\n"; + stream << indent_str; + stream << "#endif /* __cplusplus */"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "#ifndef "; + generate_string (package_var_name, stream, indent + indent_str.length ()); + stream << "\n"; + stream << indent_str; + stream << "/** "; + stream << "@"; + stream << "brief the program name (used for printing errors) */"; + stream << "\n"; + stream << indent_str; + stream << "#define "; + generate_string (package_var_name, stream, indent + indent_str.length ()); + stream << " "; + generate_string (package_var_val, stream, indent + indent_str.length ()); + stream << "\n"; + stream << indent_str; + stream << "#endif"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "#ifndef "; + generate_string (package_var_name, stream, indent + indent_str.length ()); + stream << "_NAME"; + stream << "\n"; + stream << indent_str; + stream << "/** "; + stream << "@"; + stream << "brief the complete program name (used for help and version) */"; + stream << "\n"; + stream << indent_str; + if (( package_var_val != "PACKAGE" )) + { + stream << "#define "; + generate_string (package_var_name, stream, indent + indent_str.length ()); + stream << "_NAME "; + generate_string (package_var_val, stream, indent + indent_str.length ()); + stream << "\n"; + stream << indent_str; + } + else + { + stream << "#ifdef PACKAGE_NAME"; + stream << "\n"; + stream << indent_str; + stream << "#define "; + generate_string (package_var_name, stream, indent + indent_str.length ()); + stream << "_NAME PACKAGE_NAME"; + stream << "\n"; + stream << indent_str; + stream << "#else"; + stream << "\n"; + stream << indent_str; + stream << "#define "; + generate_string (package_var_name, stream, indent + indent_str.length ()); + stream << "_NAME PACKAGE"; + stream << "\n"; + stream << indent_str; + stream << "#endif"; + stream << "\n"; + stream << indent_str; + } + stream << "#endif"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "#ifndef "; + generate_string (version_var_name, stream, indent + indent_str.length ()); + stream << "\n"; + stream << indent_str; + stream << "/** "; + stream << "@"; + stream << "brief the program version */"; + stream << "\n"; + stream << indent_str; + stream << "#define "; + generate_string (version_var_name, stream, indent + indent_str.length ()); + stream << " "; + generate_string (version_var_val, stream, indent + indent_str.length ()); + stream << "\n"; + stream << indent_str; + stream << "#endif"; + stream << "\n"; + stream << indent_str; + if (enum_types.size () > 0) + generate_string (enum_types, stream, indent + indent_str.length ()); + else + generate_enum_types (stream, indent + indent_str.length ()); + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/** "; + stream << "@"; + stream << "brief Where the command line options are stored */"; + stream << "\n"; + stream << indent_str; + stream << "struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << "\n"; + stream << indent_str; + stream << "{"; + stream << "\n"; + stream << indent_str; + indent = 2; + stream << " "; + if (option_arg.size () > 0) + generate_string (option_arg, stream, indent + indent_str.length ()); + else + generate_option_arg (stream, indent + indent_str.length ()); + indent = 0; + stream << "\n"; + stream << indent_str; + indent = 2; + stream << " "; + if (option_given.size () > 0) + generate_string (option_given, stream, indent + indent_str.length ()); + else + generate_option_given (stream, indent + indent_str.length ()); + indent = 0; + stream << "\n"; + stream << indent_str; + indent = 2; + if (group_counters.size () > 0) + generate_string (group_counters, stream, indent + indent_str.length ()); + else + generate_group_counters (stream, indent + indent_str.length ()); + indent = 0; + stream << indent_str; + indent = 2; + if (mode_counters.size () > 0) + generate_string (mode_counters, stream, indent + indent_str.length ()); + else + generate_mode_counters (stream, indent + indent_str.length ()); + indent = 0; + stream << indent_str; + stream << "} ;"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/** "; + stream << "@"; + stream << "brief The additional parameters to pass to parser functions */"; + stream << "\n"; + stream << indent_str; + stream << "struct "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params"; + stream << "\n"; + stream << indent_str; + stream << "{"; + stream << "\n"; + stream << indent_str; + stream << " int override; /**< "; + stream << "@"; + stream << "brief whether to override possibly already present options (default 0) */"; + stream << "\n"; + stream << indent_str; + stream << " int initialize; /**< "; + stream << "@"; + stream << "brief whether to initialize the option structure "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " (default 1) */"; + stream << "\n"; + stream << indent_str; + stream << " int check_required; /**< "; + stream << "@"; + stream << "brief whether to check that all required options were provided (default 1) */"; + stream << "\n"; + stream << indent_str; + stream << " int check_ambiguity; /**< "; + stream << "@"; + stream << "brief whether to check for options already specified in the option structure "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " (default 0) */"; + stream << "\n"; + stream << indent_str; + stream << " int print_errors; /**< "; + stream << "@"; + stream << "brief whether getopt_long should print an error message for a bad option (default 1) */"; + stream << "\n"; + stream << indent_str; + stream << "} ;"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/** "; + stream << "@"; + stream << "brief the purpose string of the program */"; + stream << "\n"; + stream << indent_str; + stream << "extern const char *"; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << "_purpose;"; + stream << "\n"; + stream << indent_str; + stream << "/** "; + stream << "@"; + stream << "brief the usage string of the program */"; + stream << "\n"; + stream << indent_str; + stream << "extern const char *"; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << "_usage;"; + stream << "\n"; + stream << indent_str; + stream << "/** "; + stream << "@"; + stream << "brief all the lines making the help output */"; + stream << "\n"; + stream << indent_str; + stream << "extern const char *"; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << "_help[];"; + stream << "\n"; + stream << indent_str; + if (has_hidden) + { + stream << "/** "; + stream << "@"; + stream << "brief all the lines making the full help output (including hidden options) */"; + stream << "\n"; + stream << indent_str; + stream << "extern const char *"; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << "_full_help[];"; + stream << "\n"; + stream << indent_str; + } + if (has_details) + { + stream << "/** "; + stream << "@"; + stream << "brief all the lines making the detailed help output (including hidden options and details) */"; + stream << "\n"; + stream << indent_str; + stream << "extern const char *"; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << "_detailed_help[];"; + stream << "\n"; + stream << indent_str; + } + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * The command line parser"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param argc the number of command line options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param argv the command line options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure where option information will be stored"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << " (int argc, char **argv,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * The command line parser (version with additional parameters - deprecated)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param argc the number of command line options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param argv the command line options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure where option information will be stored"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param override whether to override possibly already present options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param initialize whether to initialize the option structure my_args_info"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param check_required whether to check that all required options were provided"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "deprecated use "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_ext() instead"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "2 (int argc, char **argv,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info,"; + stream << "\n"; + stream << indent_str; + stream << " int override, int initialize, int check_required);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * The command line parser (version with additional parameters)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param argc the number of command line options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param argv the command line options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure where option information will be stored"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param params additional parameters for the parser"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_ext (int argc, char **argv,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params *params);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Save the contents of the option struct into an already open FILE stream."; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param outfile the stream where to dump options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the option struct to dump"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_dump(FILE *outfile,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Save the contents of the option struct into a (text) file."; + stream << "\n"; + stream << indent_str; + stream << " * This file can be read by the config file parser (if generated by gengetopt)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param filename the file where to save"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the option struct to save"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_file_save(const char *filename,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Print the help"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "void "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_print_help(void);"; + stream << "\n"; + stream << indent_str; + if (has_hidden) + { + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Print the full help (including hidden options)"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "void "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_print_full_help(void);"; + stream << "\n"; + stream << indent_str; + } + if (has_details) + { + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Print the detailed help (including hidden options and details)"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "void "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_print_detailed_help(void);"; + stream << "\n"; + stream << indent_str; + } + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Print the version"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "void "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_print_version(void);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Initializes all the fields a "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params structure "; + stream << "\n"; + stream << indent_str; + stream << " * to their default values"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param params the structure to initialize"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "void "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params_init(struct "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params *params);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Allocates dynamically a "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params structure and initializes"; + stream << "\n"; + stream << indent_str; + stream << " * all its fields to their default values"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return the created and initialized "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params structure"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "struct "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params *"; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params_create(void);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Initializes the passed "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " structure's fields"; + stream << "\n"; + stream << indent_str; + stream << " * (also set default values for options that have a default)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure to initialize"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "void "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_init (struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info);"; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Deallocates the string fields of the "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " structure"; + stream << "\n"; + stream << indent_str; + stream << " * (but does not deallocate the structure itself)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure to deallocate"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "void "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_free (struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + if (generate_config_parser) + { + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * The config file parser (deprecated version)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param filename the name of the config file"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure where option information will be stored"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param override whether to override possibly already present options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param initialize whether to initialize the option structure my_args_info"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param check_required whether to check that all required options were provided"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "deprecated use "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_config_file() instead"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_configfile (const char *filename,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info,"; + stream << "\n"; + stream << indent_str; + stream << " int override, int initialize, int check_required);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * The config file parser"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param filename the name of the config file"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure where option information will be stored"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param params additional parameters for the parser"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_config_file (const char *filename,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params *params);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + } + if (generate_string_parser) + { + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * The string parser (interprets the passed string as a command line)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param cmdline the command line stirng"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure where option information will be stored"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param prog_name the name of the program that will be used to print"; + stream << "\n"; + stream << indent_str; + stream << " * possible errors"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_string (const char *cmdline, struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info,"; + stream << "\n"; + stream << indent_str; + stream << " const char *prog_name);"; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * The string parser (version with additional parameters - deprecated)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param cmdline the command line stirng"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure where option information will be stored"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param prog_name the name of the program that will be used to print"; + stream << "\n"; + stream << indent_str; + stream << " * possible errors"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param override whether to override possibly already present options"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param initialize whether to initialize the option structure my_args_info"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param check_required whether to check that all required options were provided"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "deprecated use "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_string_ext() instead"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_string2 (const char *cmdline, struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info,"; + stream << "\n"; + stream << indent_str; + stream << " const char *prog_name,"; + stream << "\n"; + stream << indent_str; + stream << " int override, int initialize, int check_required);"; + stream << "\n"; + stream << indent_str; + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * The string parser (version with additional parameters)"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param cmdline the command line stirng"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure where option information will be stored"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param prog_name the name of the program that will be used to print"; + stream << "\n"; + stream << indent_str; + stream << " * possible errors"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param params additional parameters for the parser"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return 0 if everything went fine, NON 0 if an error took place"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_string_ext (const char *cmdline, struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info,"; + stream << "\n"; + stream << indent_str; + stream << " const char *prog_name,"; + stream << "\n"; + stream << indent_str; + stream << " struct "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_params *params);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + } + stream << "/**"; + stream << "\n"; + stream << indent_str; + stream << " * Checks that all the required options were specified"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param args_info the structure to check"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "param prog_name the name of the program that will be used to print"; + stream << "\n"; + stream << indent_str; + stream << " * possible errors"; + stream << "\n"; + stream << indent_str; + stream << " * "; + stream << "@"; + stream << "return"; + stream << "\n"; + stream << indent_str; + stream << " */"; + stream << "\n"; + stream << indent_str; + stream << "int "; + generate_string (parser_name, stream, indent + indent_str.length ()); + stream << "_required (struct "; + generate_string (args_info, stream, indent + indent_str.length ()); + stream << " *args_info,"; + stream << "\n"; + stream << indent_str; + stream << " const char *prog_name);"; + stream << "\n"; + stream << indent_str; + stream << "\n"; + stream << indent_str; + if (option_values_decl.size () > 0) + generate_string (option_values_decl, stream, indent + indent_str.length ()); + else + generate_option_values_decl (stream, indent + indent_str.length ()); + stream << indent_str; + stream << "\n"; + stream << indent_str; + stream << "#ifdef __cplusplus"; + stream << "\n"; + stream << indent_str; + stream << "}"; + stream << "\n"; + stream << indent_str; + stream << "#endif /* __cplusplus */"; + stream << "\n"; + stream << indent_str; + stream << "#endif /* "; + generate_string (ifndefname, stream, indent + indent_str.length ()); + stream << "_H */"; + stream << "\n"; + stream << indent_str; +}