don't modify argv, use a counter - saait - the most boring static page generator | |
git clone git://git.codemadness.org/saait | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit d30fbb819df1787d8f69848b1a715c7974e0eb1a | |
parent 06fa7f2aa301e39d5737ce86268b67a5057c83b7 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Mon, 4 Dec 2017 23:14:24 +0100 | |
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. | |
add arg.h to HDR in Makefile. | |
Diffstat: | |
M Makefile | 2 ++ | |
M arg.h | 39 +++++++----------------------… | |
2 files changed, 10 insertions(+), 31 deletions(-) | |
--- | |
diff --git a/Makefile b/Makefile | |
@@ -4,6 +4,8 @@ NAME = saait | |
VERSION = 0.1 | |
SRC = \ | |
saait.c | |
+HDR = \ | |
+ arg.h | |
BIN = \ | |
saait | |
MAN1 = \ | |
diff --git a/arg.h b/arg.h | |
@@ -21,45 +21,22 @@ 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)?\ | |
- (char *)0 :\ | |
- (brk_ = 1, (argv[0][1] != '\0')?\ | |
- (&argv[0][1]) :\ | |
- (argc--, argv++, argv[0]))) | |
- | |
-#define LNGARG() &argv[0][0] | |
- | |
#endif |