#include #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_++;