]> Creatis software - clitk.git/blobdiff - utilities/gengetopt/skels/header.cc
Sync gengetopt cmake files with rtk
[clitk.git] / utilities / gengetopt / skels / header.cc
diff --git a/utilities/gengetopt/skels/header.cc b/utilities/gengetopt/skels/header.cc
new file mode 100644 (file)
index 0000000..92c3d52
--- /dev/null
@@ -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 <stdio.h> /* 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;
+}