tabbed-noxz

[fork] suckless tabbed - personal fork
git clone https://noxz.tech/git/tabbed-noxz.git
Log | Files | README | LICENSE

arg.h
1/*
2 * Copy me if you can.
3 * by 20h
4 */
5
6#ifndef ARG_H__
7#define ARG_H__
8
9extern char *argv0;
10
11/* use main(int argc, char *argv[]) */
12#define ARGBEGIN	for (argv0 = *argv, argv++, argc--;\
13					argv[0] && argv[0][0] == '-'\
14					&& argv[0][1];\
15					argc--, argv++) {\
16				char argc_;\
17				char **argv_;\
18				int brk_;\
19				if (argv[0][1] == '-' && argv[0][2] == '\0') {\
20					argv++;\
21					argc--;\
22					break;\
23				}\
24				for (brk_ = 0, argv[0]++, argv_ = argv;\
25						argv[0][0] && !brk_;\
26						argv[0]++) {\
27					if (argv_ != argv)\
28						break;\
29					argc_ = argv[0][0];\
30					switch (argc_)
31#define ARGEND			}\
32			}
33
34#define ARGC()		argc_
35
36#define EARGF(x)	((argv[0][1] == '\0' && argv[1] == NULL)?\
37				((x), abort(), (char *)0) :\
38				(brk_ = 1, (argv[0][1] != '\0')?\
39					(&argv[0][1]) :\
40					(argc--, argv++, argv[0])))
41
42#define ARGF()		((argv[0][1] == '\0' && argv[1] == NULL)?\
43				(char *)0 :\
44				(brk_ = 1, (argv[0][1] != '\0')?\
45					(&argv[0][1]) :\
46					(argc--, argv++, argv[0])))
47
48#endif