Description

Arg_parser is an argument parser that follows POSIX and GNU conventions for
command-line arguments. There exist C++ and C versions of Arg_parser. The
C++ version is implemented as a C++ class, while the C version is
implemented as a single struct plus associated functions. Both are simpler,
easier to use, and safer than 'getopt_long'.

For maximum stability, Arg_parser is self-contained. It extracts all the
information it needs from its arguments to avoid referring to them later.
This avoids index-out-of-bounds errors and allows the parser object to be
passed as argument to other functions for further analysis.

Arg_parser does not modify its arguments (argc, argv), nor uses any global
variables.

The C++ version of Arg_parser can also parse options from configuration
files.

The C++ version of Arg_parser is provided in the files 'arg_parser.h' and
'arg_parser.cc'. To learn how to use Arg_parser in your C++ programs, see
the C++ example in the manual and the example file 'main.cc' in the source
tarball.

The C version of Arg_parser is provided in the files 'carg_parser.h' and
'carg_parser.c'. To learn how to use Arg_parser in your C programs, see the
C example in the manual and the example file 'cmain.c' in the source
tarball.

Arg_parser was developed as the argument parser for GNU moe, because moe's
argument parsing is rather complex. Then I used it in my other projects,
including GNU ddrescue, GNU ed, lzip, GNU ocrad, tarlz, and zutils, with
excellent results.


Copyright (C) 2006-2025 Antonio Diaz Diaz.

This file is free documentation: you have unlimited permission to copy,
distribute, and modify it.

The file Makefile.in is a data file used by configure to produce the Makefile.
It has the same copyright owner and permissions that configure itself.
