summaryrefslogtreecommitdiff
path: root/arg.h
diff options
context:
space:
mode:
authorLaslo Hunhold <dev@frign.de>2017-08-04 16:11:12 +0200
committerLaslo Hunhold <dev@frign.de>2017-08-04 16:11:12 +0200
commit959b70ab5a7f7801f7047b9d513671cd95500488 (patch)
treebb01c6880f3613c352bf36f8633f4d6e78ac8bdd /arg.h
parent26c092599447284fe85e11d322daf034ca96eeb3 (diff)
arg.h: Refactor ARGF_()
Diffstat (limited to 'arg.h')
-rw-r--r--arg.h20
1 files changed, 8 insertions, 12 deletions
diff --git a/arg.h b/arg.h
index 81127a2..042f5c1 100644
--- a/arg.h
+++ b/arg.h
@@ -24,15 +24,15 @@ extern char *argv0;
/* int main(int argc, char *argv[]) */
#define ARGBEGIN for (argv0 = *argv, *argv ? (argc--, argv++) : ((void *)0); \
*argv && (*argv)[0] == '-' && (*argv)[1]; argc--, argv++) { \
- int i, argused; \
+ int _i, _argused; \
if ((*argv)[1] == '-' && !(*argv)[2]) { \
argc--, argv++; \
break; \
} \
- for (i = 1, argused = 0; (*argv)[i]; i++) { \
- switch((*argv)[i])
-#define ARGEND if (argused) { \
- if ((*argv)[i + 1]) { \
+ for (_i = 1, _argused = 0; (*argv)[_i]; _i++) { \
+ switch((*argv)[_i])
+#define ARGEND if (_argused) { \
+ if ((*argv)[_i + 1]) { \
break; \
} else { \
argc--, argv++; \
@@ -41,13 +41,9 @@ extern char *argv0;
} \
} \
}
-#define ARGC() (*argv)[i]
-#define ARGF_(x) ((!(*argv)[i + 1] && !*(argv + 1)) ? \
- (x) : \
- (argused = 1, ((*argv)[i + 1]) ? \
- (&(*argv)[i + 1]) : \
- (*(argv + 1)) \
- ) \
+#define ARGC() (*argv)[_i]
+#define ARGF_(x) (((*argv)[_i + 1]) ? (_argused = 1, &((*argv)[_i + 1])) : \
+ (*(argv + 1)) ? (_argused = 1, *(argv + 1)) : (x) \
)
#define EARGF(x) ARGF_(((x), exit(1), (char *)0))
#define ARGF() ARGF_((char *)0)