diff options
Diffstat (limited to 'minias.h')
| -rw-r--r-- | minias.h | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -342,6 +342,27 @@ AsmLine *parse(void); /* util.c */ +#define ARGBEGIN \ + for (;;) { \ + if (argc > 0) \ + ++argv, --argc; \ + if (argc == 0 || (*argv)[0] != '-') \ + break; \ + if ((*argv)[1] == '-' && !(*argv)[2]) { \ + ++argv, --argc; \ + break; \ + } \ + for (char *opt_ = &(*argv)[1], done_ = 0; !done_ && *opt_; ++opt_) { \ + switch (*opt_) + +#define ARGEND \ + } \ + } + +#define EARGF(x) \ + (done_ = 1, opt_[1] ? ++opt_ : argv[1] ? --argc, \ + *++argv : ((x), abort(), (char *)0)) + void vwarn(const char *fmt, va_list ap); void fatal(const char *fmt, ...); void unreachable(void); |
