saait

Simple static page generator
git clone https://git.sinitax.com/codemadness/saait
Log | Files | Refs | README | LICENSE | Upstream | sfeed.txt

commit d30fbb819df1787d8f69848b1a715c7974e0eb1a
parent 06fa7f2aa301e39d5737ce86268b67a5057c83b7
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
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:
MMakefile | 2++
Marg.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