Mercurial > hg > dmlib
annotate src/dmargs.h @ 1315:7687412f9aef
Fix jssmod sample conversion flags storing .. urgh.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 20 Aug 2017 01:54:54 +0300 |
parents | 27949209238b |
children | 7ed25973dbcb |
rev | line source |
---|---|
0 | 1 /* |
2 * Simple commandline argument processing functions | |
3 * Programmed and designed by Matti 'ccr' Hamalainen | |
863 | 4 * (C) Copyright 2002-2015 Tecnic Software productions (TNSP) |
0 | 5 * |
6 * Please read file 'COPYING' for information on license and distribution. | |
7 */ | |
8 #ifndef DMARGS_H | |
9 #define DMARGS_H | |
10 | |
11 #include "dmlib.h" | |
12 #include <stdio.h> | |
13 | |
14 #ifdef __cplusplus | |
15 extern "C" { | |
16 #endif | |
17 | |
18 /* Option flags | |
19 */ | |
860
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
20 #define OPT_NONE (0) // Simple option with no arguments |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
21 #define OPT_ARGREQ (1) // Option requires an argument |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
22 #define OPT_ARGMASK (1) // Mask for option argument flags |
0 | 23 |
860
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
24 #define OPTH_BAILOUT 0x0001 // Bail out on errors |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
25 #define OPTH_ONLY_OPTS 0x0010 // Handle only options |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
26 #define OPTH_ONLY_OTHER 0x0020 // Handle only "non-options" |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
27 #define OPTH_ONLY_MASK 0x00f0 // Mask |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
28 |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
29 |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
30 /* Option argument structure |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
31 */ |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
32 typedef struct |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
33 { |
0 | 34 int id; |
35 char optShort; | |
36 char *optLong; | |
37 char *desc; | |
38 int flags; | |
39 } DMOptArg; | |
40 | |
860
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
41 |
0 | 42 BOOL dmArgsProcess(int argc, char *argv[], |
860
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
43 const DMOptArg optList[], int noptList, |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
44 BOOL (*handleOptionCB)(int, char *, char *), |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
45 BOOL (*handleFileCB)(char *), BOOL); |
0 | 46 |
860
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
47 void dmArgsPrintHelp(FILE *, |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
48 const DMOptArg optList[], |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
49 const int noptList, |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
50 const int flags); |
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
812
diff
changeset
|
51 |
0 | 52 |
53 #ifdef __cplusplus | |
54 } | |
55 #endif | |
56 #endif // DMARGS_H |