Introduction
Introduction Statistics Contact Development Disclaimer Help
arg.h - libsl - shared code master of various suckless projects
git clone git://git.suckless.org/libsl
Log
Files
Refs
LICENSE
---
arg.h (1011B)
---
1 /*
2 * Copy me if you can.
3 * by 20h
4 */
5
6 #ifndef ARG_H__
7 #define ARG_H__
8
9 extern 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] == '…
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
32 #define ARGEND }\
33 }
34
35 #define ARGC() argc_
36
37 #define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\
38 ((x), abort(), (char *)0) :\
39 (brk_ = 1, (argv[0][1] != '\0')?\
40 (&argv[0][1]) :\
41 (argc--, argv++, argv[0])))
42
43 #define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\
44 (char *)0 :\
45 (brk_ = 1, (argv[0][1] != '\0')?\
46 (&argv[0][1]) :\
47 (argc--, argv++, argv[0])))
48
49 #endif
You are viewing proxied material from suckless.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.