Changes in version 1.21: The last argument of the C++ constructor and of the C function 'ap_init' has been changed from 'bool in_order' to 'int flags'. This change is backwards-compatible after recompilation because the default value of both arguments is 0, and the new flag 'in_order' has a value of 1. So the old 'in_order = true' is equivalent to the new 'flags = in_order'. The C++ constructor and the C function 'ap_init' have been extended with the flag 'in_order_stop' to parse the first non-option argument and all the arguments following it as non-option arguments, even if they begin with a hyphen. This is similar to the POSIX function 'getopt', which stops option processing after finding the first non-option argument. The C++ constructor and the C function 'ap_init' have been extended with the flag 'in_order_skip' to parse only the heading options, skipping the first non-option argument and all the arguments following it. This mode is useful for parsing the command line of programs that invoke other programs, like 'timeout', 'xargs', or 'valgrind'. The C++ constructor and the C function 'ap_init' have been extended with the flag 'neg_non_opt' to parse negative numbers as non-option arguments without reordering them. This mode is useful for parsing the command line of tools like 'seq' which take negative numbers as arguments. (Suggested by Mohammad Akhlaghi): $ arg_parser +15 -Inf 0 -20 -a -.5 -v option '-a' option '-v' non-option argument '+15' non-option argument '-Inf' non-option argument '0' non-option argument '-20' non-option argument '-.5' The 'enum Has_arg' value 'yme' has been renamed to 'yesme'. The code of the C version has been reorganized. The new section 'Differences with getopt and getopt_long' has been added to the manual.