#ifndef ARG_H #define ARG_H extern char *progname; #define ARGBEGIN for (progname = *argv, argv++, argc--; \ argc && argv[0] && argv[0][0] == '-' \ && argv[0][1]; \ argc--, argv++) { \ char argc_, **argv_; \ int brk_; \ if (argv[0][1] == '-' && argv[0][2] == '\0') { \ argv++; \ argc--; \ break; \ } \ int i_; \ for (i_ = 1, brk_ = 0, argv_ = argv; \ argv[0][i_] && !brk_; \ i_++) { \ if (argv_ != argv) \ break; \ argc_ = argv[0][i_]; \ switch (argc_) #define ARGEND } \ } #define ARGC() argc_ #define EARGF(x) ((argv[0][i_+1] == '\0' && argv[1] == NULL) ? \ ((x), abort(), (char *) 0) : \ (brk_ = 1, (argv[0][i_+1] != '\0') ? \ (&argv[0][i_+1]) : \ (argc--, argv++, argv[0]))) #define ARGF() ((argv[0][i_+1] == '\0' && argv[1] == NULL) ? \ (char *) 0 : \ (brk_ = 1, (argv[0][i_+1] != '\0') ? \ (&argv[0][i_+1]) : \ (argc--, argv++, argv[0]))) #endif