Introduction
Introduction Statistics Contact Development Disclaimer Help
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
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.