Old Changes for GNU Gengetopt

Changes in release 2.4

  • fixed some bugs due to not including some headers (make check used to fail with gcc 2.96)
  • fixed a bug for make check, when getopt_long is not in the C library (reported by Paul Lew <>).
  • the generated command line parser can be called more than once (thanks to Eric H Kinzie <>).
  • --no-handle-error option added, so that an error in the command line parsing does not provoke the exit from the program: the parser simply returns not 0; thus the program can write something for helping the user.

Changes in release 2.3

  • --no-handle-help and --no-handle-version option added, so that --help|-h and --version|-V can be explicitly handled (for instance for printing a copyright notice, as suggested by Vladimir Tamara <>).
  • PURPOSE added to specify in the .ggo file the purpose of the program (thanks to Berthold Höllmann <>).
  • generated print_version and print_help are not static so they can be called also in the program and they are prefixed with the name of the generated function, so that more than one parser can be handled.
  • test the presence of alloca function in standard library (reported by Aldo D. Longhi <>).
  • test suite added (type make check, to run the tests).

Changes in release 2.2

Changes in release 2.1

  • It is made more clear that use of gengetopt does not impose any particular license on the generated code.
  • A bug in the generation of code (for some new C++ compilers) was fixed, thanks to "James R. Van Zandt" <>
  • Some modifications to the man page, also due to James.
  • a directory for examples is specifically created (suggested by James).

Changes in release 2.0

This is quite a totally new release:
  • Gengetopt has become GNU software
  • it is conform to GNU coding standards, and so it uses configure script generated by Automake and Autoconf
  • it generates separated files: one header file with the struct used to store command line options information, and a C file which contains the function which actually uses getopt_long to parse the command line

  • 'required' option is now fully implemented