You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.5 KiB
71 lines
1.5 KiB
/*
|
|
* parseargs.h
|
|
*
|
|
* Command line argument parser.
|
|
*
|
|
* Copyright 1996-2003 Glyph & Cog, LLC
|
|
*/
|
|
|
|
#ifndef PARSEARGS_H
|
|
#define PARSEARGS_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "gtypes.h"
|
|
|
|
/*
|
|
* Argument kinds.
|
|
*/
|
|
typedef enum {
|
|
argFlag, /* flag (present / not-present) */
|
|
/* [val: GBool *] */
|
|
argInt, /* integer arg */
|
|
/* [val: int *] */
|
|
argFP, /* floating point arg */
|
|
/* [val: double *] */
|
|
argString, /* string arg */
|
|
/* [val: char *] */
|
|
/* dummy entries -- these show up in the usage listing only; */
|
|
/* useful for X args, for example */
|
|
argFlagDummy,
|
|
argIntDummy,
|
|
argFPDummy,
|
|
argStringDummy
|
|
} ArgKind;
|
|
|
|
/*
|
|
* Argument descriptor.
|
|
*/
|
|
typedef struct {
|
|
char *arg; /* the command line switch */
|
|
ArgKind kind; /* kind of arg */
|
|
void *val; /* place to store value */
|
|
int size; /* for argString: size of string */
|
|
char *usage; /* usage string */
|
|
} ArgDesc;
|
|
|
|
/*
|
|
* Parse command line. Removes all args which are found in the arg
|
|
* descriptor list <args>. Stops parsing if "--" is found (and removes
|
|
* it). Returns gFalse if there was an error.
|
|
*/
|
|
extern GBool parseArgs(ArgDesc *args, int *argc, char *argv[]);
|
|
|
|
/*
|
|
* Print usage message, based on arg descriptor list.
|
|
*/
|
|
extern void printUsage(char *program, char *otherArgs, ArgDesc *args);
|
|
|
|
/*
|
|
* Check if a string is a valid integer or floating point number.
|
|
*/
|
|
extern GBool isInt(char *s);
|
|
extern GBool isFP(char *s);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|