diff options
| author | Marcelo Lira <setanta@gmail.com> | 2025-04-09 22:30:39 -0300 |
|---|---|---|
| committer | Marcelo Lira <setanta@gmail.com> | 2025-04-09 22:30:39 -0300 |
| commit | 24ca2281c7ff11ff9b0aa55d2f58452eb9faa825 (patch) | |
| tree | 75f4f18903fa7454a5153ead3ae1143313200b5a /arg.h | |
| parent | 08f661a0d2acf094111da8137b3aaa107ece76a6 (diff) | |
Diffstat (limited to 'arg.h')
| -rw-r--r-- | arg.h | 72 |
1 files changed, 35 insertions, 37 deletions
@@ -9,42 +9,40 @@ extern char *argv0; /* use main(int argc, char *argv[]) */ -#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\ - argv[0] && argv[0][0] == '-'\ - && argv[0][1];\ - argc--, argv++) {\ - char argc_;\ - char **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]))) +#define ARGBEGIN \ + for (argv0 = *argv, argv++, argc--; \ + argv[0] && argv[0][0] == '-' && argv[0][1]; argc--, argv++) { \ + char argc_; \ + char **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 |
