sad

simple audio daemon
git clone git://git.2f30.org/sad
Log | Files | Refs | LICENSE

commit 7d484bfef637b1003d6d5dfeacbde23b84754cb5
parent 23dc908804399964ba52646d8052a60d8cfbd379
Author: sin <sin@2f30.org>
Date:   Sat, 27 Dec 2014 20:31:58 +0000

Add arg.h

Diffstat:
MMakefile | 2+-
Aarg.h | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msad.c | 2+-
3 files changed, 65 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile @@ -33,7 +33,7 @@ all: $(BIN) $(BIN): $(OBJ) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LDLIBS) -$(OBJ): compat.h config.h sad.h +$(OBJ): arg.h compat.h config.h sad.h install: all mkdir -p $(DESTDIR)$(PREFIX)/bin diff --git a/arg.h b/arg.h @@ -0,0 +1,63 @@ +/* + * Copy me if you can. + * by 20h + */ + +#ifndef ARG_H__ +#define ARG_H__ + +extern char *argv0; + +/* use main(int argc, char *argv[]) */ +#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\ + argv[0] && argv[0][1]\ + && argv[0][0] == '-';\ + argc--, argv++) {\ + char argc_;\ + char **argv_;\ + int brk_;\ + if (argv[0][1] == '-' && argv[0][2] == '\0') {\ + argv++;\ + argc--;\ + break;\ + }\ + for (brk_ = 0, argv[0]++, argv_ = argv;\ + argv[0][0] && !brk_;\ + argv[0]++) {\ + if (argv_ != argv)\ + break;\ + argc_ = argv[0][0];\ + 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(base) (brk_ = 1, estrtol(argv[0], (base))) + +#define EARGF(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]))) + +#define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\ + (char *)0 :\ + (brk_ = 1, (argv[0][1] != '\0')?\ + (&argv[0][1]) :\ + (argc--, argv++, argv[0]))) + +#endif diff --git a/sad.c b/sad.c @@ -64,7 +64,7 @@ static void playaudio(void) { Song *s; - unsigned char buf[4096]; + unsigned char buf[2048]; int nbytes; s = getcursong();