Commit | Line | Data |
---|---|---|
845dfc67 AT |
1 | extern char *argv0; |
2 | #define USED(x) ((void)x) | |
3 | #define SET(x) ((x)=0) | |
4 | ||
5 | #define ARGBEGIN for((argv0||(argv0=*argv)),argv++,argc--;\ | |
6 | argv[0] && argv[0][0]=='-' && argv[0][1];\ | |
7 | argc--, argv++) {\ | |
8 | char *_args, *_argt;\ | |
9 | char _argc;\ | |
10 | _args = &argv[0][1];\ | |
11 | if(_args[0]=='-' && _args[1]==0){\ | |
12 | argc--; argv++; break;\ | |
13 | }\ | |
14 | _argc = 0;\ | |
15 | while(*_args && (_argc = *_args++))\ | |
16 | switch(_argc) | |
17 | #define ARGEND SET(_argt);USED(_argt);USED(_argc);USED(_args);}USED(argv);USED(argc); | |
18 | #define ARGF() (_argt=_args, _args=(char*)"",\ | |
19 | (*_argt? _argt: argv[1]? (argc--, *++argv): 0)) | |
20 | #define EARGF(x) (_argt=_args, _args=(char*)"",\ | |
21 | (*_argt? _argt: argv[1]? (argc--, *++argv): ((x), abort(), (char*)0))) | |
22 | ||
23 | #define ARGC() _argc | |
24 |