2019-05-30 Tomas Volf * --unamed command line option renamed to --unnamed, old still provided (but hidden) to provide backwards compatibility 2019-05-22 Tomas Volf * configure.ac: remove unused conditionals, general clean up 2019-05-05 Tomas Volf * src/skels: gengen is now required to build from git * src/cmdline.ggo: gengetopt is now required to build from git 2012-07-18 Tim Marston * src/cmdline.ggo: added --strict-hidden option * src/gengetopt.cc: check for --strict-hidden when automatically adding full and detailed help options, and pass presence of --strict-hidden to CmdlineParserCreeator * src/gm.cc, src/gm.h: when strictly hiding options, don't generate the full help string array and override generate_hidden in generate_help_option_list(); also, don't add details to the detailed help string array for options that are going to be hidden * src/gm_utils.cpp, src/gm_utils.h: has_options_with_details() now needs to know if strict option hiding is in effect so that it can ignore options that have details but will be hidden * doc/gengetopt.texinfo: updated for --strict-hidden feature 2012-07-17 Tim Marston * src/gm.cc: fixed NULL pointer defreference; fixed option list ordering inconsistency (which could lead to truncation of displayed options) 2012-07-11 Tim Marston * src/gm_utils.cpp: fixed line wrapping so that it handles (removes) extra spaces at the end of the line 2012-07-10 Tim Marston * src/cmdline.ggo: removed unnecessary additional new-line 2012-07-10 Tim Marston * src/skels/c_source.h_skel: added args_info_versiontext variable * src/scanner.ll, src/scanner.yy: added versiontext directive * src/gengetopt.cc: added gengetopt_versiontext variable and setter function * src/gm.cc: added versiontext string generator function 2011-09-05 bettini * src/my_map.h: removed * src/my_string.h: removed * src/my_sstream.h: removed * src/gm.cc (CmdlineParserCreator::generate_usage_string): wraps and preprocess the usage string if specified in the input file. 2010-09-06 Lorenzo Bettini * src/gm_utils.cpp: do not consider a flag option as a typed one 2010-08-31 Lorenzo Bettini * tests/test_err.sh.in: double quote the variable to test * src/skels/Makefile.am (.h_skel.cc): files generated by gengen are created in the srcdir 2010-08-24 Lorenzo Bettini * src/gm.cc: initialize enum variables with generated null enum value instead of -1 * src/skels/enum_decl.h_skel: added for generating enum declaration with default null enum value 2010-03-25 bettini * src/gm_utils.cpp (not_newlines): removed code that generated a bug for escaped newlines * src/scanner.ll: handle case for \n different from \\n 2009-12-23 Lorenzo Bettini * src/Makefile.am (gengetopt_SOURCES): put generated bison and flex files in sources 2009-12-18 Lorenzo Bettini * src/skels/c_source.h_skel: removed other gcc warnings * tests/test_simple_multiple_cmd.ggo: added a simpler test for multiple options 2009-09-30 bettini * src/skels/header.h_skel: use prototypes with char ** instead of char *const *. * src/skels/c_source.h_skel: use prototypes with char ** instead of char *const *. #include not "getopt.h" 2009-09-27 bettini * tests/output_dir/Makefile.am: New file. * tests/output_header_dir/Makefile.am: New file. * tests/Makefile.am: test for --output-dir, --src-output-dir, --header-output-dir 2009-09-27 Yegor Yefremov * src/cmdline.ggo: --header-output-dir and --src_output-dir to store cmdline.h separately from cmdline.c * src/gengetopt.cc (main): Ditto * src/gm.cc: Ditto * src/gm.h: Ditto 2009-09-27 Lorenzo Bettini * doc/gengetopt.texinfo: documented autoreconf * doc/index.html: Ditto 2009-08-09 bettini * src/skels/c_source.h_skel: put FIX_UNUSED in the right place * src/gm.cc (from_value_to_enum): translate '+' to "PLUS_" and '-' to "MINUS_" (canonize_enum): Ditto (CmdlineParserCreator::generate_enum_types): put FIX_UNUSED in the right place (CmdlineParserCreator::generate_option_values): Ditto (CmdlineParserCreator::generate_option_values_decl): Ditto * tests/test_values.c (main): use enum with + and - * tests/test_values.sh.in: Ditto * tests/test_values_cmd.ggo: Ditto * configure.ac: modified to build in a different directory * Makefile.am: modified to build in a different directory * tests/Makefile.am: modified to build in a different directory 2009-06-13 bettini * doc/gengetopt.texinfo: specified that package and version are required unless you use autoconf * configure.ac: some cleanup correctly use --docdir * gl/getopt_.h: Removed. * gl/m4/onceonly_2_57.m4: Removed. * gl/strdup.h: Removed. * gl/getopt.in.h: New file. * gl/m4/00gnulib.m4: New file. * gl/m4/extensions.m4: New file. * gl/m4/include_next.m4: New file. * gl/m4/onceonly.m4: New file. * gl/m4/string_h.m4: New file. * gl/string.h: New file. * gl/string.in.h: New file. * gl/unistd.h: New file. * gl/unistd.in.h: New file. * src/gengetopt.cc: include gnulib string.h * src/gm.cc: Ditto * src/gm_utils.cpp: Ditto * src/parser.yy: Ditto * src/scanner.ll: Ditto 2009-05-31 bettini * src/skels/c_source.h_skel: use PACKAGE_NAME if defined for printing help and version 2009-05-09 bettini * configure.ac: does not depend on flex library 2009-01-25 bettini * src\skels\custom_getopt_gen.h_skel: #undef of static variables to avoid compilation problems for some versions of stdlib.h 2008-01-18 Lorenzo Bettini * src/skels/c_source.h_skel: _min and _max fields of multiple options are unsigned int to avoid compilation warnings (free_multiple_field): avoid using void **, in order to avoid a warning when using -fstring-aliasing 2008-01-13 Lorenzo Bettini * src/skels/c_source.h_skel: boolean parameters are not int instead of short in order to avoid warnings size_t used in get_multiple_token also for indexes to avoid warnings 2008-01-10 Lorenzo Bettini * src/gm.cc (handle_options): correctly call set_has_short_option * tests/test_multiple.cc (main): renames test_multiple.c to employ the C++ stronger type checking * src/gm.cc (_generate_option_arg): fixed bug that did not generate a longlong pointer in case of multiple options, reported by Richard Eggert 2007-12-13 Lorenzo Bettini * src/skels/c_source.h_skel: also write the corresponding value (not only the orig filed) into file 2007-11-05 Lorenzo Bettini * src/skels/c_source.h_skel: update_arg is not generated if no option (besides the default ones) are specified in the .ggo file * src/parser.yy: added the details for options 2007-10-25 Lorenzo Bettini * src/scanner.ll: added the type enum that can be used for options with values 2007-10-24 Lorenzo Bettini * src/gm.cc (generate_help_option_print): in case of hidden options, the generated help string array reuses the strings of the full help array (generate_init_args_info): skip elements related to text before and after an option and also related to groups 2007-10-23 Lorenzo Bettini * src/skels/c_source.h_skel: the params_init function now initializes the structure fields to their default values. a params_create function was added to allocate such a structure and initialize it (to its default values) usage string is printed only if not empty (as suggested by Gyozo Papp) 2007-10-17 J. David Bryan * src/gengetopt.cc (main): generate --help handling if only -h is redefined (and so for --version) * src/skels/header.h_skel: added field print_errors to suppress getopt_long messages to stderr 2007-10-16 Papp Gyozo * src/skels/c_source.h_skel: added the generated function _dump to dump options into an already open stream 2007-10-07 Lorenzo Bettini * src/skels/c_source.h_skel: (update_multiple_arg) the static generated function that takes care of updating a multiple option 2007-10-02 Lorenzo Bettini * src/skels/c_source.h_skel: (update_arg) the static generated function that takes care of updating an option 2007-09-21 Lorenzo Bettini * doc/Makefile.am: avoid tests if crosscompiling * tests/Makefile.am: avoid tests if crosscompiling 2007-07-28 Lorenzo Bettini * COPYING: updated to version 3 * src/skels/c_source.h_skel: correctly handle multiple options with backslashes (thanks to Peter Kovacs) * doc/Makefile.am: removed non-standard %. rules * src/skels/Makefile.am: removed non-standard %. rules * src/Makefile.am: removed non-standard %. rules * tests/Makefile.am: added explicit deps for .h and .c generated files (to make parallel make work) 2007-07-09 Lorenzo Bettini * src/skels/header.h_skel: define a structure for passing parameters to the parsers; and define versiones of parsers taking the params through this structure. Added the check_ambiguity parameter to check whether an option that is parsed is already present in the args_info struct Contains doxygen documentation 2007-07-01 Lorenzo Bettini * src/gengetopt.cc (main): store args_info values after having examined also the (possible) args entry in the .ggo file (bug fixed) 2007-06-16 Lorenzo Bettini * doc/gengetopt.texinfo (Configuration files): fixed override semantics documentation 2007-06-08 Lorenzo Bettini * src/skels/custom_getopt_gen.h_skel: does not check d->custom_optind == 1 as an initialization condition since it is not correct 2007-05-04 Lorenzo Bettini * src/gm.cc (generate_handle_help): correctly generate the return inside the if in case of no_handle_help and full-help * configure.ac: removed AC_C_CONST since obsolescent * src/cxxconfig.h: removed 2007-04-15 Lorenzo Bettini * src/cmdline.ggo: --default-optional added * src/ggos.cpp: required default depends on --default-optional * src/global_options.h: (struct GlobalOptions) contains options concerning the program (typically passed on the command line) * src/gm.cc (generate_help_option_list): don't generate a section if all of its options are hidden 2007-04-12 Lorenzo Bettini * src/skels/custom_getopt_gen.h_skel: declare all the needed structures and variables * src/skels/c_source.h_skel: don't include getopt.h if --include-getopt is specified 2007-01-20 Lorenzo Bettini * autogen.sh: added (replaces reconf) for bootstrapping autotools * configure.ac: use libtool now 2007-01-12 Lorenzo Bettini * src/scanner.ll: # comments not in strings (thanks to Matthew K. Junker) 2007-01-09 Lorenzo Bettini * tests/test_err.sh.in: don't use -r GNU sed extension option, use -e instead 2007-01-06 Lorenzo Bettini * doc/Makefile.am (cmdline2.o): make sure to use the complete compile command (that ensures the priority of headers from gnulib) 2006-12-19 Lorenzo Bettini * src/gm.cc (generate_handle_help): also handle full-help 2006-12-11 Lorenzo Bettini * configure.ac: use of Gnulib 2006-11-17 Lorenzo Bettini * src/parser.yy: Added description string 2006-10-05 Lorenzo Bettini * src/skels/c_source.h_skel (_configfile): handle configuration file inclusione (thanks to David Bird) 2006-09-30 Lorenzo Bettini * src/scanner.ll: strings can spawn more lines 2006-09-23 Lorenzo Bettini * src/scanner.ll: correctly handle size specification of multiple options (bug fixed by Christian Ch'Gans) * src/gm.cc (generate_usage_string): handle no argument options and flag options in generation of long help 2006-09-03 Lorenzo Bettini * src/gm.cc (generate_help_option_list): first print the section 2006-09-02 Lorenzo Bettini * src/gengetopt.cc (output_formatted_string): remove the \ from a " (so that the " is actually printed on the screen instead of \") 2006-07-02 Lorenzo Bettini * src/skels/header.h_skel: use the passed header extension * src/skels/c_source.h_skel: use the passed header extension 2006-05-14 Lorenzo Bettini * src/skels/c_source.h_skel: for comma separated multi option arguments, recognize the escape character 2006-05-13 Lorenzo Bettini * src/skels/custom_getopt_gen.h_skel: Andre Noll provided a customized version of getopt that can be called many times without affecting previously parsed arguments. 2006-05-07 Lorenzo Bettini * src/cmdline.ggo: --output-dir command line option 2006-04-02 Lorenzo Bettini * src/gm.cc: generate only one list struct for each type (not one for each multiple option) 2006-03-26 Lorenzo Bettini * src/skels/header.h_skel: usage string 2006-03-25 Lorenzo Bettini * src/skels/check_multiple.h_skel: check for multiple option occurrence range 2006-03-23 Lorenzo Bettini * src/gm.cc (generate_free): generate the index i even if no multiple option is of type string 2006-03-10 Lorenzo Bettini * src/skels/header.h_skel: help strings and help fields 2006-02-25 Lorenzo Bettini * src/gm.cc (generate_help_option_list): make sure not to use a negative number as a size to create a string, bug fixed 2006-02-16 Lorenzo Bettini * src/skels/c_source.h_skel: set optind to 0 before invoking getopt_long, in order to discard any internal pointers and restart from scratch with the given argc, argv, rather than continue to parse the command line from the previous run. (as suggested by Andre Noll) 2006-02-12 Lorenzo Bettini * src/skels/c_source.h_skel: cmd_line_list is generated as static and this enables linking different parsers into the same executable (as suggested by Andre Noll) * src/gm.cc: deal with --full-help in the presence of hidden options 2005-12-22 Lorenzo Bettini * src/skels/update_arg.h_skel: added the check for the result of a numeric conversion 2005-09-07 Lorenzo Bettini * src/ggos.h (struct gengetopt_option): store input filename and line number information (struct gengetopt_option): added the dependson field 2005-09-06 Lorenzo Bettini * tests/test_all_opts_cmd.ggo: has a hidden option that can be specified but does not appear in the help output * src/ggos.h (struct gengetopt_option): added the hidden field 2005-09-05 Lorenzo Bettini * src/parser.yy: the parts of options can be given in any order 2005-09-03 Lorenzo Bettini * src/skels/generic_option.h_skel: name for enumerated values is prefixed with the parser name 2005-08-16 Lorenzo Bettini * src/ggo_options.h (foropt): use && to assign *it to opt instead of the , otherwise with gcc 4.0.1 it segfaults 2005-08-13 Lorenzo Bettini * src/gm.cc (generate_handle_group): when we check for a required option of a group we also check that "check_required" was specified. Otherwise the check is performed in the _required generated function. 2005-08-12 Lorenzo Bettini * src/skels/option_arg.h_skel: Added the _orig field that stores the original value passed at the command line. 2005-08-10 Lorenzo Bettini * src/skels/file_save.h_skel: saves args_info contents into a file. * src/skels/c_source.h_skel (configfile): use dynamic memory instead of a static vector. Use a constant that can be redefined upon compilation for the size of a line read from the configuration file. 2005-07-06 Lorenzo Bettini * src/gengetopt.cc (main): check whether an option for help and version is already present, thus allowing redefining the standard --help,-h and --version,-V options 2005-04-13 Lorenzo Bettini * src/gm_utils.cpp (char_is_newline): fixed a problem with a string containing only new line chars (wrap_cstr): keep the right number of new line chars 2004-12-30 Lorenzo Bettini * src/skels/handle_help.h_skel: free local_args_info before exiting or returning * src/skels/handle_version.h_skel: free local_args_info before exiting or returning 2004-11-25 Lorenzo Bettini * tests/valgrind_tests.sh.in: updated, for some time it hasn't checked correctly for leaks. Many leaks have been removed again now 2004-10-28 * src/parser.yy: group options can be multiple and have argoptional * src/skels/multiple_option.h_skel: the test for values is performed after tokenizing arguments possibly separated by commas * src/skels/multiple_option_new_list_node.h_skel: removed embedded in multiple_option.h_skel 2004-09-22 Lorenzo Bettini * src/gm.cc (_generate_option_arg): simplified using option_arg_gen_class * src/skels/option_arg.h_skel: to generate the _arg fields of args_struct * src/gm.cc (do_update_arg): simplified using update_arg_gen_class * src/skels/update_arg.h_skel: replace all the other generators for single data types 2004-09-17 Lorenzo Bettini * src/gm.cc (handle_options): only one function to deal both with option with short version and without * src/ggos.h (struct gengetopt_option): not an invasive list, only an option, and the list of option is implemented as a std::list 2004-09-16 Lorenzo Bettini * src/skels/c_source.h_skel: define also the function to expliticly check whether a required option has been provided * src/cmdline.ggo: option --show-help that only prints how the output of --help would be, without generating code --show-version that only prints how the output of --version would be, without generating code --set-package and --set-version to set these values 2004-09-14 Lorenzo Bettini * src/gm.cc: use argv[0] when printing errors * src/cmdline.ggo: each option has a short version 2004-09-13 Lorenzo Bettini * src/parser.yy: accept the list of values that can be passed to an option * src/acceptedvalues.h (class AcceptedValues): possible values for an option 2004-08-10 Lorenzo Bettini * src/gm.cc (generate_reset_groups): generate the reset function only if this group has options * src/skels/c_source.h_skel: many additional .h_skel files have been removed, and their contents are included here using the new conditional constructs of gengen 2004-08-03 Lorenzo Bettini * src/skels/config_parser_source.h_skel: better check for string well-formedness 2004-07-11 Lorenzo Bettini * src/gm_utils.cpp: contain utility functions used in gm * src/fileutils.cpp: file routines used in gm * src/gm.cc: (wrap_cstr) do not consider '=' a separating character (is_char_newline) recognize also actual \n (generate_help_option_print) deal better with very long descriptions 2004-06-16 Lorenzo Bettini * src/gm.cc (generate_help_option_print): set the maximum for the column where the description of an option starts to be displayed. In case it starts on a new line 2004-06-15 Lorenzo Bettini * src/gm.cc (wrap_cstr): wrapping is isolated in a function so that it can be used also for printing purposes and other descriptions 2004-06-13 Lorenzo Bettini * src/skels/config_parser_source.h_skel: deal with '=' in the config files 2004-05-16 Lorenzo Bettini * src/gm.cc (generate_option_given): _given field is generated unsigned for multiple options 2004-05-01 Lorenzo Bettini * src/gm.cc (do_update_arg): set the argument to NULL if it is a multiple string option 2004-04-08 Lorenzo Bettini * NEWS: Version 2.12 * src/cmdline.ggo: Added --c-extension and --header-extension as proposed by Brooks Davis 2004-04-01 Lorenzo Bettini * src/gm.cc (generate_help_option_print): generate the printf with "%s", so that default values can contain % 2004-02-21 Lorenzo Bettini * src/skels/config_parser_source.h_skel: idem * src/skels/c_source.h_skel: exit failure is only in one point so that the args_info struct can be cleared (removed memory leaks) 2004-02-03 Lorenzo Bettini * src/parser.yy: allow multiple options without argument * src/skels/multiple_option_new_list_node.h_skel: added to separate creation of a multiple option list node, so that also multiple options without argument can be handled 2004-01-18 Lorenzo Bettini * src/skels/config_parser_source.h_skel: check for len > and not ==. rewritten in order to exploit getopt_long 2004-01-13 Lorenzo Bettini * src/skels/generic_option_group.h_skel: before incrementing the counter, if override is specified, reset all the group options * src/skels/reset_group.h_skel: template function for resetting a group option 2004-01-11 Lorenzo Bettini * src/skels/multiple_fill_array.h_skel: leave the multiple options in the same order they are given * src/skels/generic_option.h_skel: check a local struct to understand whether the same option is given more than once * src/skels/config_parser_source.h_skel: the # can also be in non first position in a line. the generated config file parser relies on the standard command line parser * src/skels/c_source.h_skel: the main parsing function is a static internal function _internal that also takes the parameter check_required that decides whether required options are checked; and also an additional error string explaining where the error occurred default is "" 2004-01-06 Lorenzo Bettini * src/conf_parser_gen.cc (generate_multiple_fill_array): update multiple options * src/skels/multiple_fill_array_default.h_skel: check whether the default has not been previously set 2004-01-05 Lorenzo Bettini * src/skels/multiple_opt_struct.h_skel: the creation of structs for multiple option lists is separated from the actual declaration of lists * src/skels/string_opt_arg.h_skel: always free previous memory before * src/skels/string_opt_arg_no_free.h_skel: initialize a string withouth freeing memory before 2004-01-03 Lorenzo Bettini * src/cmdline.ggo: --unamed-opts can be given an optional argument describing the additional arguments without names, default is still FILES * src/gm.cc (do_update_arg): add the check for optarg that is important for options with optional arguments (generate_usage_string): use the specified name for unamed-options * src/cmdline.ggo: --arg-struct-name option for specifying the name of the generated struct for args info, default is still gengetopt_args_info * src/skels/config_parser_source.h_skel: added a parameter to the config file parser that specifies whether the args_info has to be initialized * src/skels/c_source.h_skel: an _init function is also generated instead of clear_args that allows to initialize an args_info struct 2004-01-02 Lorenzo Bettini * src/gm.cc (generate_free): added for freeing the memory used by gengetopt strduped strings and multiple options arrays (generate_clear_arg): clear_args is called only once, before starting the parsing 2003-11-26 Lorenzo Bettini * src/gengetopt.cc (gengetopt_add_option): deal with options with optional arguments * src/parser.yy: allow an option to have an optional argument * src/skels/gen_strdup.h_skel: check whether the string to copy is not null 2003-10-25 Lorenzo Bettini * src/cmdline.ggo: added the flag to turn off generation of gengetopt version number in the output file * src/skels/c_source.h_skel: config.h is included before any other header 2003-07-23 Lorenzo Bettini * src/Makefile.am (AM_LFLAGS): use case insensitive option for generating the scanner 2003-07-22 Lorenzo Bettini * src/gm.cc (generate_help_option_print): generate also group description * src/scanner.ll: recognize groupdesc * src/groups.h (struct Group): contain group information, added group description 2003-07-19 Lorenzo Bettini * src/gm.cc (generate_help_option_print): generate also section information * src/gengetopt.cc (gengetopt_set_section): set the current section during parsing * src/ggos.h (struct gengetopt_option): include section field 2003-07-18 Lorenzo Bettini * src/parser.yy: sectiondef for defining section of options * src/skels/string_opt_arg_free.h_skel: added to free memory allocated for default string value when an argument is given 2003-07-06 Michael Hagemann * src/scanner.ll: recognize typestr option * src/gm.cc (generate_help_option_print): generate a more compact --help output (generate_help_desc_print): added, perform word wrapping for long help lines * src/gengetopt.cc (gengetopt_add_option): also handle type_str * src/parser.yy: some clean up and parsing of typestr for the description of the type of the option, see below * src/ggos.h (struct gengetopt_option): added type_str: a more descriptive description of the type of an option, e.g., "filename" instead of simply STRING 2003-07-05 Lorenzo Bettini * src/gm.cc (generate_handle_no_short_option): deal also with multiple options * src/skels/multiple_option_no_short.h_skel: added to deal with multiple option with no short version * src/gm.cc (generate_multiple_fill_array): if a default value is provided for this multipl option, generate the else branch for setting the value of the option to the default value * src/skels/multiple_fill_array_default.h_skel: added to handle default values for multiple options * src/skels/multiple_fill_array.h_skel (if): allocate an array only if a value is given for this multiple option * src/gm.cc (generate_clear_arg): always initialize to NULL the _arg of a multiple option (it is always a pointer) 2003-06-15 Lorenzo Bettini * src/skels/config_parser_source.h_skel: fixed a problem in setting the terminating '\0' 2003-05-22 Lorenzo Bettini * NEWS: Version 2.10 2003-05-21 Lorenzo Bettini * src/skels/config_parser_source.h_skel: Also handle quoted strings 2003-05-12 Lorenzo Bettini * src/skels/gen_strdup.h_skel: added for generating strdup in the generated parser * src/gm.cc (CmdlineParserCreator): fixed some compilation errors due to the ? operator * src/conf_parser_gen.cc (generate_handle_single_option): use long_long_gen for dealing with long long * src/skels/copyright.h_skel: added for generating the copyright * src/gengetopt.cc (print_reportbugs): do not use reportbugs.text anymore (print_copyright): use copyright_gen_class 2003-05-01 Lorenzo Bettini * src/skels/header.h_skel: package and version are defined for a parser and values defined in the .ggo have the precedence over PACKAGE and VERSION * src/skels/long_long_opt_arg.h_skel: added for handling long long options 2003-04-29 Lorenzo Bettini * src/gm.cc (generate_handle_group): handle possible space in group names * src/yyerror.cc (yyerror): get a const char * * src/skels/c_source.h_skel: initialize stop_char to 0 and this should avoid compilation warning 2003-04-24 Lorenzo Bettini * src/gm.cc: always use gengetopt_strdup in generated files * src/skels/c_source.h_skel: gengetopt_strdup is generated even if strdup is in the standard library * configure.in: check for long long * src/gm.cc (do_update_arg): switch to long if long long is not supported 2003-04-19 Lorenzo Bettini * src/skels/multiple_fill_array.h_skel: explicitly cast the result of malloc * src/skels/multiple_option.h_skel: explicitly cast the result of malloc * tests/test_conf_parser.c (main): removed C++ style comment * src/gm.cc: correctly refer to strdup * src/gengetopt.cc: correctly refer to strdup * acinclude.m4 (AC_adl_FUNC_GETOPT_LONG): added for correctly checking for getopt.h and getopt_long 2003-04-13 Lorenzo Bettini * NEWS: Version 2.9 * src/gm.cc (generate_handle_no_short_option): handle group options without short options * tests/Makefile.am (check-diff): check with diff also the output of tests * src/parser.yy: (check_result) correctly print the line number containing the error * src/gm.cc: (strip_path) remove path information when generating some header file information (e.g., #ifndef) 2003-03-17 Lorenzo Bettini * src/Makefile.am: explicit rules do not use $< * tests/Makefile.am: explicit rules do not use $< * doc/Makefile.am: explicit rules do not use $< 2003-02-21 Lorenzo Bettini * src/scanner.ll: ignore \r characters 2002-12-30 Lorenzo Bettini * NEWS: Version 2.8 2002-11-28 Janico Greifenberg * src/skels/multiple_option.h_skel: skeleton for handling a multiple option * src/skels/multiple_opt_list.h_skel: skeleton for the list structure * src/skels/multiple_fill_array.h_skel: skeleton file for filling the array for multiple options * src/gm.cc (generate_option_arg): handle multiple options (generate_multiple_fill_array): fill the array of multiple otpions 2002-11-18 Janico Greifenberg * src/parser.yy (exp): Added multiple option 2002-09-04 Lorenzo Bettini * src/scanner.ll: turned in a C++ scanner * src/parser.yy: turned in a C++ parser 2002-08-25 Lorenzo Bettini * src/conf_parser_gen.h (class ConfigParserGenerator): take care of generating the config file parser * src/skels/config_parser_source.h_skel: added to generate the config file parser 2002-08-22 Lorenzo Bettini * src/gm.cc (generate_help_option_print): also print group for group options * src/yyerror.c (yyerror): also print position of error * src/parser.y (exp_yesno): removed a useless rule for standard options 2002-08-18 Ronnie Lazar * src/skels/int_opt_arg.h_skel: use strtol as well so to handle integer in hex format * src/parser.y: deal with group option * src/skels/group_option.h_skel: added to handle errors with group handling * src/gm.cc (generate_handle_option): generate group handling * src/ggos.h (struct gengetopt_option): added group_value field * src/gengetopt.cc (gengetopt_add_group): handle group options 2002-08-15 Pierre Bacquet * src/parser.y (check_result): use error code 5 for invalid default values * src/ggos.h (struct gengetopt_option): default values are always stored in a string * src/gengetopt.cc (gengetopt_add_option): use strtod and strtol to handle default values for long and double options 2002-08-15 Lorenzo Bettini * configure.in: move to automake 1.6.2 and autoconf 2.53 2002-07-21 Lorenzo Bettini * NEWS: Version 2.7.1 released 2002-07-13 Lorenzo Bettini * src/skels: generators are generated with version 0.4.1 that does not repeat default values in the .cc sources; this used to cause problems with some gcc 3.x versions. Indeed that was an error. 2002-07-10 Lorenzo Bettini * src/Makefile.am (INCLUDES): do not add includes directory, this way if sstream is provided by the compiler, that version is used. 2002-07-07 Lorenzo Bettini * configure.in: Added check for stl and namespaces 2002-06-30 Lorenzo Bettini * NEWS: Version 2.7 released 2002-05-31 Lorenzo Bettini * src/gm.cc (do_update_arg): manually generate break 2002-04-01 Lorenzo Bettini * src/gm.cc (generate_strdup): generate strdup function between #ifndef HAVE_STRDUP, in order to avoid the warning * tests/Makefile.am (check-diff): Added target to check whether the generated code is different from what it used to be 2002-03-11 Lorenzo Bettini * src/skels/header.h_skel: removed the misleading "WRITE THE NAME OF YOUR PROGRAM HERE" from the generated header 2002-03-09 Lorenzo Bettini * src/yyerror.c (yyerror): print the input file name * src/gm.cc (generate_header_file): simply rely on the code generated by gengen (generate_option_arg): implicitly called when option args struct members are to be created (generate_option_given): the same but for _given fields * src/gm.h (class CmdlineParserCreator): inherit from header_gen_class generated by gengen * src/skels/header.h_skel: the skeleton for generated header file * configure.in (GENGEN): use gengen for automatically generate a generator 2002-03-02 Lorenzo Bettini * src/gm.cc (generate): gm.c is removed, now we have a class and methods: I switched to C++ !!! :-) * src/gm.h (class CmdlineParserCreator): class for the command line parser generator * NEWS: Version 2.6 released * src/cmdline.ggo: use defaults for func-name and file-name 2002-03-01 Lorenzo Bettini * src/gm.c (generate_cmdline_parser): possibly generate assignments for default values * src/ggos.h (struct gengetopt_option): added fields for default values * src/gengetopt.c (gengetopt_add_option): do not consider an error an empty desc (main): set comment[1][0] to 0 after malloc (gengetopt_add_option): also handle default values 2001-12-31 Lorenzo Bettini * src/gm.c (generate_cmdline_parser): if HAVE_STRDUP is defined then use the standard strdup use EXIT_FAILURE and EXIT_SUCCESS for exit * src/parser.y: an empty line at the end of the .ggo file is no longer needed * src/scanner.l (update_count_line): update gengetopt_count_line also within a string TOK_MLSTRING; this way possible errors in the .ggo files are notified with the right line number for # comments '\n' are excluded * src/gm.c (canonize_names): Added to canonize a name (generate_cmdline_parser): function names and #define directives are canonized * tests/canonize-names-cmd.ggo: Added to test how function names and #define directives are canonized 2001-12-18 Lorenzo Bettini * NEWS: Version 2.5 released 2001-12-16 Lorenzo Bettini * configure.in: test for alloca is no more necessary with these new versions of getopt * src/getopt.c: much more modern version taken from GNU C library * src/getopt1.c: much more modern version taken from GNU C library * src/getopt.h: much more modern version taken from GNU C library 2001-11-12 Brian Minard * src/gm.c (gengetopt_strlen): removed, it is no use (generate_cmdline_parser) gengetopt_strdup is generated from gengetopt_strdup.text * src/gengetopt_strdup.text: automatically generated from strdup.c 2001-11-01 Brian Minard * src/gm.c (generate_cmdline_parser): use (size_t) for specifying malloc argument when generating gengetopt_strdup 2001-10-09 Herbert Thoma * src/gm.c (generate_cmdline_parser): generate a different printf in the generated print_help function for every option, thus avoiding to generate an help string that's too long 2001-09-03 Guillaume Chazarain * src/gm.c (do_check_option_given): Set args_info->option_given to 1 also when option is a flag (bug fixed). 2001-08-13 Lorenzo Bettini * NEWS: Version 2.4 released 2001-06-24 Lorenzo Bettini * doc/Makefile.am: testdata is not removed as a maintainer file * src/gm.c: included string.h * src/scanner.l: included string.h 2001-06-10 Lorenzo Bettini * src/gm.c (generate_cmdline_parser): optind is generated = 1, otherwise it doesn't work with cygwin 2001-05-19 Lorenzo Bettini * src/strdup.c (strdup): Test for a bad allocation and return 0 in that case 2001-05-06 Lorenzo Bettini * tests/Makefile.am (no_optgiven_cmd.c): this file it is generated with --no-handle-error option * src/cmdline.ggo: Added no-handle-error * src/Makefile.am: the command line parser is generated with the option --no-handle-help * src/gm.c (generate_cmdline_parser): Added generation of instructions that let the command line parser to be called more than once, suggested by Eric H Kinzie . (generate_error_handle): Added to generate return 1 instead of exit 1 if --no-handle-error is given. Thus print_help is not autmoatically called when an option is given more than once, as it was before * tests/more_than_once.c (main): Call the command line parser twice and print the values of the parameters * tests/more_than_once.sh.in: Added to test when the command line parser is called more than once * doc/gengetopt.html.in: updated footer copyright * configure.in: moved to 2.4 2001-05-05 Lorenzo Bettini * tests/no_optgiven.sh.in: removed the negation !, not recognized on some systems. * tests/Makefile.am (LDFLAGS): Added to use INCLUDES also in the linking, because some files are compiled in that moment * doc/Makefile.am (INCLUDES): Added (EXTRA_DIST): removed getopt.h from this directory * tests/Makefile.am (INCLUDES): and (LDADD) to consider the case that there's no getopt_long in the C library * configure.in: moved to 2.3.1 2001-04-10 Lorenzo Bettini * Version 2.3 * tests/Makefile.am (TESTS): Added tests 2001-03-23 Lorenzo Bettini * src/gm.c (generate_cmdline_parser): gengetopt_strdup is only generated if a string option is used or --unamed-opt was specified * tests/Makefile.am: Added * src/gm.c (generate_cmdline_parser): for inputs gengetopt_strdup, instead of standard strdup, is used. 2001-03-22 Lorenzo Bettini * doc/no_getopt_long.txt: Added alloca instructions 2001-03-20 Lorenzo Bettini * src/gengetopt.c (main): handle --help and --version * src/copyright.text: Added to be processed by txtc compiler * configure.in: use TXTC * src/gm.c (generate_cmdline_parser): if previous options are given do not print help and version automatically and exit. Provide the functions for print_help and print_version prefixing with function_name parameter * src/cmdline.ggo: Added --no-handle-help and --no-handle-version not to handle --help and --version automatically * doc/Makefile.am (check): diff with the previous output 2001-02-09 Lorenzo Bettini * src/gm.c (generate_cmdline_parser): generate print also if no purpose is specified (bug fixed) 2001-02-06 Lorenzo Bettini * acinclude.m4 (AC_NONGNU_FLAGS): Added to check if it is a non-GNU compiler and if it handles -Aa option * src/cxxconfig.h: Added to make const work for C++ compilers even if it doesn't work for C compilers * configure.in: Added test for AC_C_CONST 2001-02-04 Lorenzo Bettini * src/alloca.c: Added taken from GNU hello * configure.in: Added AC_FUNC_ALLOCA * src/cmdline.ggo: Added purpose * src/gm.c (generate_cmdline_parser): print_version and print_help are public 2001-01-30 Berthold H�llmann * src/gm.c (generate_cmdline_parser): purpose is generated in print_help * src/parser.y: PURPOSE added to the syntax * src/scanner.l: TOK_MLSTRING for strings with newline * src/gengetopt.c (gengetopt_define_purpose): 2001-01-11 Lorenzo Bettini * NEWS: version 2.2 released * doc/no_getopt_long.txt: Added AC_SUBST when you use AC_CHECK_FUNCS * src/gm.c (generate_cmdline_parser): changed the style of all printf, when strings are in more than one line 2000-12-04 Robert Walsh * src/gm.c: changed the style of printf strings, removed C++ comment, now compile without warning under Sun compiler. 2000-11-01 Richard Heggs * src/gm.c: VERSION and PACKAGE are generated in cmdline.h instead of cmdline.c 2000-10-10 Person or Persons Unknown * src/gengetopt.c: handle long options with no short option. * src/gm.c: handle long options with no short option. 2000-10-09 Scott Haug * src/gm.c: change argv's type from 'char**' to 'char * const *'. This better matches the type signature of getopt_long, and it prevents compiler warnings. #undef's PACKAGE and VERSION before setting them, in case they are defined in the .ggo file. 2000-09-26 N. Becker * src/scanner.l: now accepts any string * src/parser.y: exp_str is only TOK_STRING 2000-09-20 Lorenzo Bettini (LAP) * NEWS: version 2.1 released * doc/Makefile.am: examples are installed in a subdirectory under doc * doc/gengetopt.html.in: the version number is substituted by configure * src/gm.c: (generate_cmdline_parser) fixed a bug for the generated code, a malloc was not casted * doc/gengetopt.1.in: modified by James R. Van Zandt * doc/gengetopt.html: we do not include sections from the GNU coding standards. * LICENSE: the generated code is not under any license 2000-08-01 Lorenzo Bettini * NEWS: version 2.0 released * doc/gengetopt.html: warning for win32 users, and md5sum and gpg signed * doc/Makefile.am (cmdline1.c.html): bug fixed for win * src/Makefile.am: check if gengetopt is already build before trying to build cmdline.c 2000-07-31 Lorenzo Bettini * doc/Makefile.am (cmdline1.c.html): no recompilation if cpp2html is not installed * configure.in (NO_CPP2HTML): if cpp2html is not installed 2000-07-30 Lorenzo Bettini (LAP) * doc/gengetopt.1.in: made it obsolete * doc/no_getopt_long.txt: how to check if getopt_long is in the standard library and what to do if it is not. * doc/gengetopt.html: mailing lists * LICENSE: Copyright is assigned in behalf of the Free Software Foundation. 2000-07-23 Lorenzo Bettini (LAP) * doc/man_getopt.html: added, it is the man page of getopt * doc/Makefile.am (gengetoptdoc_DATA): also examples are in doc dir * configure.in (CPP2HTML): use cpp2html to format sample files * src/cmdline.ggo: no option is required * src/gm.c: generate the test for required options * src/ggos.h (struct gengetopt_option): field for flagstat and for required * src/gm.c (generate_cmdline_parser): initialize flags and strings * Makefile.am (gengetoptdoc_DATA): install ChangeLog and other files in doc dir * src/gm.c (generate_cmdline_parser): fixed a bug about wrong indentation in .h generated file. 2000-07-09 Lorenzo Bettini * src/gm.c (indent): Added for indenting like GNU standards (check_option_given): function instead of macro (generate_cmdline_parser): now indent according to GNU standards 2000-07-01 Lorenzo Bettini * src/gm.c (generate_cmdline_parser): "redeclared" error message renamed in "given more than once" * configure.in (gengetoptdocdir): use $datadir instead of $prefix 2000-01-12 Lorenzo Bettini * doc/Makefile.am (man_MANS): man page installed, and html pages 2000-01-10 Lorenzo Bettini * doc/Makefile.am: check for NO_GETOPTLONG and NO_STRDUP, and in case link with .o in src dir * configure.in (TAR): check for tar program. (NO_GETOPTLONG): a conditional for check 2000-01-10 Lorenzo Bettini * doc/Makefile.am: added sample1 and sample2, two test programs sample1 is a C++ prog, and uses unamed options * configure.in: (AC_PROG_CXX) we use C++ in a test file 2000-01-09 Lorenzo Bettini * src/cmdline.ggo: it contains gengetopt command line * src/gengetopt.c (gengetopt_strdup) (gengetopt_strcmp): erased. (main): handles command line options * configure.in (strdup): if not found we use our strdup.c (const): check if const is supported * src/gm.c (generate_cmdline_parser): gets unamed_options param to generate unamed_options fields in the structure. char **inputs and inputs_num added to the structure to hold unamed options. string.h included. create an header file and an output file. the header file can used in C++ as well. for ARG_NO options a _given field is generated and handled. a comment can be passed, e.g. the command line used to generate file, to be printed in the comment at the top of generated file. 2000-01-09 Lorenzo Bettini (LAP) * src/gm.c: a struct is generated for args info, instead of using variables 2000-01-08 Lorenzo Bettini (LAP) * src/gm.h : Added * src/gm.c (generate_cmdline_parser): generate_main renamed config.h is included with " instead of <>. the name of the function to generate is passed. * src/ggos.h: config.h included: VERSION and PACKAGE are defined there * configure.in: (--enable-warnings) option added to configure this way -Wall is added to compiler options. * src/gengetopt.h: added with functions exported by gengetopt.c * src/parser.y: inclusion of stdlib for malloc and free, and string.h extern yyerror and yylex, include gengetopt.h. automake renames y.tab.c in parser.c * src/yyerror.c (yyerror): made it void * src/scanner.l: scanner.lex renamed scanner.l, and it includes parser.h, renamed by automake. automake renames the c file to scanner.c * started to use automake and autoconf; created src and doc dir