Load cups into easysw/current.
[thirdparty/cups.git] / pdftops / parseargs.h
CommitLineData
ef416fc2 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
13extern "C" {
14#endif
15
16#include "gtypes.h"
17
18/*
19 * Argument kinds.
20 */
21typedef 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 */
41typedef 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 */
54extern GBool parseArgs(ArgDesc *args, int *argc, char *argv[]);
55
56/*
57 * Print usage message, based on arg descriptor list.
58 */
59extern void printUsage(char *program, char *otherArgs, ArgDesc *args);
60
61/*
62 * Check if a string is a valid integer or floating point number.
63 */
64extern GBool isInt(char *s);
65extern GBool isFP(char *s);
66
67#ifdef __cplusplus
68}
69#endif
70
71#endif