#include <string.h>
#define _I_ argc
#define _S_ argv
static char *_N_;
#define SWITCH_OPT \
{_N_=*_S_;_I_--;_S_++; \
while(_I_>=1 && (**_S_=='-' || **_S_=='+')) {\
if (0) {}
#define CASE_OPT(s) \
else if(!strcmp(CURRENT_OPT,s))
#define CASE_OPT2(s1,s2) \
else if(!strcmp(CURRENT_OPT,s1) ||\
!strcmp(CURRENT_OPT,s2)\
)
#define END_OPT \
_I_--;\
_S_++;\
}\
_I_++;\
_S_--;\
*_S_=_N_;\
}
#define ELSE_OPT else
#define RESTORE_OPT *_S_=_N_
#define CURRENT_OPT *_S_
#define ADVANCE_OPT \
_I_--;\
if (_I_ <= 0) {\
(void) fprintf(stderr,"%s option must have one argument.\n",CURRENT_OPT);\
exit(1);\
}\
_S_++;
syntax highlighted by Code2HTML, v. 0.9.1