… | |
… | |
32 | #endif |
32 | #endif |
33 | |
33 | |
34 | /* place holders used for parsing command-line options */ |
34 | /* place holders used for parsing command-line options */ |
35 | #define Optflag_Reverse 1 |
35 | #define Optflag_Reverse 1 |
36 | #define Optflag_Boolean 2 |
36 | #define Optflag_Boolean 2 |
|
|
37 | #define Optflag_Switch 4 |
37 | |
38 | |
38 | /* monolithic option/resource structure: */ |
39 | /* monolithic option/resource structure: */ |
39 | /* |
40 | /* |
40 | * `string' options MUST have a usage argument |
41 | * `string' options MUST have a usage argument |
41 | * `switch' and `boolean' options have no argument |
42 | * `switch' and `boolean' options have no argument |
… | |
… | |
58 | #define BOOL(rsp, kw, opt, option, flag, desc) \ |
59 | #define BOOL(rsp, kw, opt, option, flag, desc) \ |
59 | { (option), (Optflag_Boolean | (flag)), (rsp), (kw), (opt), NULL, (desc)} |
60 | { (option), (Optflag_Boolean | (flag)), (rsp), (kw), (opt), NULL, (desc)} |
60 | |
61 | |
61 | /* SWCH () - `-' flag */ |
62 | /* SWCH () - `-' flag */ |
62 | #define SWCH(opt, option, flag, desc) \ |
63 | #define SWCH(opt, option, flag, desc) \ |
63 | { (option), (Optflag_Boolean | (flag)), -1, NULL, (opt), NULL, (desc)} |
64 | { (option), (Optflag_Switch | (flag)), -1, NULL, (opt), NULL, (desc)} |
64 | |
65 | |
65 | /* convenient macros */ |
66 | /* convenient macros */ |
66 | #define optList_strlen(i) \ |
67 | #define optList_strlen(i) \ |
67 | (optList[i].flag ? 0 : (optList[i].arg ? strlen (optList[i].arg) : 1)) |
68 | (optList[i].flag ? 0 : (optList[i].arg ? strlen (optList[i].arg) : 1)) |
68 | #define optList_isBool(i) \ |
69 | #define optList_isBool(i) \ |