commit 6f277b62999ea260b734120ad894fa3d16357daf
parent bcd01c69cfead07db9df4e8dc6d07fe2263766b8
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Tue, 20 Mar 2018 19:42:50 +0100
sync arg.h
- don't modify argv, use a counter: on some platforms (OpenBSD) this
changes the exposed argv in tools using the kvm_* interface, such
as ps and pgrep.
- remove some unused macros.
Diffstat:
M | arg.h | | | 37 | +++++++++++-------------------------- |
1 file changed, 11 insertions(+), 26 deletions(-)
diff --git a/arg.h b/arg.h
@@ -21,45 +21,30 @@ extern char *argv0;
argc--;\
break;\
}\
- for (brk_ = 0, argv[0]++, argv_ = argv;\
- argv[0][0] && !brk_;\
- argv[0]++) {\
+ int i_;\
+ for (i_ = 1, brk_ = 0, argv_ = argv;\
+ argv[0][i_] && !brk_;\
+ i_++) {\
if (argv_ != argv)\
break;\
- argc_ = argv[0][0];\
+ argc_ = argv[0][i_];\
switch (argc_)
-/* Handles obsolete -NUM syntax */
-#define ARGNUM case '0':\
- case '1':\
- case '2':\
- case '3':\
- case '4':\
- case '5':\
- case '6':\
- case '7':\
- case '8':\
- case '9'
-
#define ARGEND }\
}
#define ARGC() argc_
-#define ARGNUMF() (brk_ = 1, estrtonum(argv[0], 0, INT_MAX))
-
-#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\
+#define EARGF(x) ((argv[0][i_+1] == '\0' && argv[1] == NULL)?\
((x), abort(), (char *)0) :\
- (brk_ = 1, (argv[0][1] != '\0')?\
- (&argv[0][1]) :\
+ (brk_ = 1, (argv[0][i_+1] != '\0')?\
+ (&argv[0][i_+1]) :\
(argc--, argv++, argv[0])))
-#define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\
+#define ARGF() ((argv[0][i_+1] == '\0' && argv[1] == NULL)?\
(char *)0 :\
- (brk_ = 1, (argv[0][1] != '\0')?\
- (&argv[0][1]) :\
+ (brk_ = 1, (argv[0][i_+1] != '\0')?\
+ (&argv[0][i_+1]) :\
(argc--, argv++, argv[0])))
-#define LNGARG() &argv[0][0]
-
#endif