stParseArgs, stShortUsage - parse command line arguments
#include <config.h>
#include <sttk.h>
int stParseArgs (int argCount, char *argVector,
int newArgCount, char *(*newArgVector[]), OptDesc optionList[]);
void stShortUsage (char *programName, OptDesc optionList[], char *extraText);
stParseArgs parses the command line for options previously declared in an
option desription list. The programs argument count and argument vector are
passed as
argCount and
argVector, and the option description
list as
optionList to stParseArgs. This filters out all known (from the
option list) options and their arguments and returns the remaining tokens from
the command line in
newArgVector with
newArgCount. Options on
the command line must be preceded by a minus sign, otherwise they will not be
recognized. The first entry in the argument vector, the program name, passes
the function without any damage. stParseArgs may be invoked multiple times
with different option lists.
The option list is an array of option definitions of the following form:
typedef struct {
char *OptName;
int OptKind;
int (*OptFunc)();
int *OptVar;
char *OptStr;
} StOptDesc;
The array is finished by an option definition containing only null entries.
OptName is the name of the option how it appears on the command line,
without the leading minus sign. The
OptKind is a flag field defining
the option type and the kind of action to be performed. Valid option types are
- PSWITCH
- The option is a switch and has no argument (default)
- PARG
- The option has an argument immediately following the option
on the command line.
- POARG
- The option has an optional argument.
The action to be prformed on occurence of an option on the command line refers
either to
OptFunc, a function to be defined by the application or to
OptVar, an application variable, associated with the option. The
different kinds of action to be performed are
- PCALL
- Call the function OptFunc (default).
- PSET
- Set the variable OptVar to 1 (TRUE).
- PCLEAR
- Set the variable OptVar to 0 (FALSE)
- PTOGGLE
- Toggle the value of the variable OptVar between 1 (TRUE)
and 0 (FALSE).
- PUSAGE
- Call stShortUsage (see below).
- PFAIL
- Call stShortUsage (see below) and terminate program
execution with return code 1.
The following example shows some typical option definitions
StOptDesc bindOptions[] = {
{ "help", PFAIL, NULL, NULL, NULL },
{ "trace", PSWITCH|PSET, NULL, &atBindTrace, NULL },
{ "since", PCALL|PARG, handleBaseline, NULL, NULL },
{ "version", PCALL, printVersion, NULL, NULL },
{ NULL, NULL, NULL, NULL, NULL },
};
stShortUsage generates a short usage message from the given
optionList. The message starts with the
programName and lists
all option in the option list. At the end,
extraText is added, if
given. The message is written to standard error.