---
arg.h | 37 ++++++++++++++-----------------------
1 file changed, 14 insertions(+), 23 deletions(-)
diff --git a/arg.h b/arg.h
index ac5824e..ee0bbc6 100644
--- a/arg.h
+++ b/arg.h
_AT_@ -14,8 +14,7 @@ extern char *argv0;
argv[0] && argv[0][0] == '-' && argv[0][1]; \
argc--, argv++ ) \
{ \
- char argc_; \
- char **argv_; \
+ char arg_; \
int brk_; \
if (argv[0][1] == '-' && argv[0][2] == '\0') \
{ \
_AT_@ -23,36 +22,28 @@ extern char *argv0;
argc--; \
break; \
} \
- for (brk_ = 0, argv[0]++, argv_ = argv; \
- argv[0][0] && !brk_; \
+ for (brk_ = 0, argv[0]++; \
+ !brk_ && (arg_ = argv[0][0]); \
argv[0]++ ) \
{ \
- if (argv_ != argv) \
- break; \
- argc_ = argv[0][0]; \
- switch (argc_)
+ switch (arg_)
#define ARGEND \
} \
}
-#define ARGC() argc_
-
-#define EARGF(x) \
+#define _ARGF(x) \
( (argv[0][1] == '\0' && argv[1] == NULL) \
- ? ((x), abort(), (char *)0) \
- : (brk_ = 1, (argv[0][1] != '\0') \
- ? (&argv[0][1]) \
- : (argc--, argv++, argv[0]) \
+ ? (x) \
+ : (brk_ = 1, ( (++argv[0]) [0] != '\0') \
+ ? argv[0] \
+ : ( argc--, (++argv)[0] ) \
) \
)
-#define ARGF() \
- ( (argv[0][1] == '\0' && argv[1] == NULL) \
- ? (char *)0 \
- : (brk_ = 1, (argv[0][1] != '\0') \
- ? (&argv[0][1]) \
- : (argc--, argv++, argv[0]) \
- ) \
- )
+#define ARGC() arg_
+
+#define EARGF(x) (_ARGF( ((x), abort(), NULL) ))
+
+#define ARGF() (_ARGF( NULL ))
#endif
--
2.31.1
Received on Sun Jul 04 2021 - 01:15:57 CEST
This archive was generated by hypermail 2.3.0 : Sun Jul 04 2021 - 06:36:30 CEST