Load cups into easysw/current.
[thirdparty/cups.git] / pdftops / parseargs.h
1 /*
2  * parseargs.h
3  *
4  * Command line argument parser.
5  *
6  * Copyright 1996-2003 Glyph & Cog, LLC
7  */
8
9 #ifndef PARSEARGS_H
10 #define PARSEARGS_H
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 #include "gtypes.h"
17
18 /*
19  * Argument kinds.
20  */
21 typedef enum {
22   argFlag,                      /* flag (present / not-present) */
23                                 /*   [val: GBool *]             */
24   argInt,                       /* integer arg    */
25                                 /*   [val: int *] */
26   argFP,                        /* floating point arg */
27                                 /*   [val: double *]  */
28   argString,                    /* string arg      */
29                                 /*   [val: char *] */
30   /* dummy entries -- these show up in the usage listing only; */
31   /* useful for X args, for example                            */
32   argFlagDummy,
33   argIntDummy,
34   argFPDummy,
35   argStringDummy
36 } ArgKind;
37
38 /*
39  * Argument descriptor.
40  */
41 typedef struct {
42   char *arg;                    /* the command line switch */
43   ArgKind kind;                 /* kind of arg */
44   void *val;                    /* place to store value */
45   int size;                     /* for argString: size of string */
46   char *usage;                  /* usage string */
47 } ArgDesc;
48
49 /*
50  * Parse command line.  Removes all args which are found in the arg
51  * descriptor list <args>.  Stops parsing if "--" is found (and removes
52  * it).  Returns gFalse if there was an error.
53  */
54 extern GBool parseArgs(ArgDesc *args, int *argc, char *argv[]);
55
56 /*
57  * Print usage message, based on arg descriptor list.
58  */
59 extern void printUsage(char *program, char *otherArgs, ArgDesc *args);
60
61 /*
62  * Check if a string is a valid integer or floating point number.
63  */
64 extern GBool isInt(char *s);
65 extern GBool isFP(char *s);
66
67 #ifdef __cplusplus
68 }
69 #endif
70
71 #endif