GETALLARGS(3)

NAME
getallargs() - parses all the flag-type arguments

SYNOPSIS
#include <schily/getargs.h>
int getallargs(pac, pav, fmt, a1, ..., an)
	int *pac;       /* pointer to arg count */
	char *(*pav)[]; /* pointer to address of arg vector */
	char *fmt;      /* format string */
	type *a1;       /* pointer to result 1 */
	                /* (corresponding to the */
	                /* first descriptor in fmt) */
	type *an;       /* pointer to result n */
	                /* (corresponding to the */
	                /* nth descriptor in fmt) */

DESCRIPTION
getallargs() parses all flag (option) arguments (anywhere on the command line). It does not return until all the arguments have been parsed correctly (returning 0), or an error has occurred (returning < 0).

See getargs() for a more detailed description of the parameter matching.

RETURNS

NOARGS    0
    All arguments have been successfully examined.

BADFLAG  -1
    A bad flag (option) argument was supplied to the program. The argument *pav contains the offending command line argument.

BADFMT  -2
    A bad format descriptor string has been detected. The calling program, rather than the user, was in error.

General rules for the return code:

> 0 A file type argument was found.

0   All arguments have been parsed.

< 0 An error occured or not a file type argument.

Flag and file arg processing should be terminated after getting a return code <= 0.

EXAMPLES

SEE ALSO

getargs(3), getargerror(3), getfiles(3).

NOTES
getallargs() must be called with the address of a count of items in the vector and the address of a pointer to the vector. Both addresses must already have been properly treated in order to skip over the first parameter which is the name of the program. [e.g. --ac; ++av].

Since getallargs() will destroy these values, copies should be made for later use in the program. If an error occurs, av[0] points to the unmatched argument.

The special argument, "--", is ignored, but the following argument in the command line is treated as a literal filename argument. This way, filenames beginning with '-', '+', or containing '=' can be passed to the routine.

BUGS
none

AUTHOR
Joerg Schilling
Seestr. 110
D-13353 Berlin
Germany

Mail bugs and suggestions to:

schilling@fokus.gmd.de or js@cs.tu-berlin.de or joerg@schily.isdn.cs.tu-berlin.de