| tUpdate arg.h from sbase - st - [fork] customized build of st, the simple termi… | |
| git clone git://src.adamsgaard.dk/st | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 33da67dac035b0d592f984bce90aec8d815b38a8 | |
| parent d60ee7337b5f378d8858ef3774c5552d2c8e54fa | |
| Author: Roberto E. Vargas Caballero <[email protected]> | |
| Date: Wed, 18 Dec 2013 08:29:28 +0100 | |
| Update arg.h from sbase | |
| sbase did some interesting modifications to arg.h (basically it | |
| was fixed an incorrect use of the _ namespace), and this commit | |
| ttake this last version for st. | |
| Diffstat: | |
| M arg.h | 48 ++++++++++++++++++-----------… | |
| 1 file changed, 28 insertions(+), 20 deletions(-) | |
| --- | |
| diff --git a/arg.h b/arg.h | |
| t@@ -3,53 +3,61 @@ | |
| * by 20h | |
| */ | |
| -#ifndef __ARG_H__ | |
| -#define __ARG_H__ | |
| +#ifndef ARG_H__ | |
| +#define ARG_H__ | |
| extern char *argv0; | |
| -#define USED(x) ((void)(x)) | |
| - | |
| /* 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;\ | |
| + 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;\ | |
| + for (brk_ = 0, argv[0]++, argv_ = argv;\ | |
| + argv[0][0] && !brk_;\ | |
| argv[0]++) {\ | |
| - if (_argv != argv)\ | |
| + if (argv_ != argv)\ | |
| break;\ | |
| - _argc = argv[0][0];\ | |
| - switch (_argc) | |
| + 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 }\ | |
| - USED(_argc);\ | |
| - }\ | |
| - USED(argv);\ | |
| - USED(argc); | |
| + } | |
| + | |
| +#define ARGC() argc_ | |
| -#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')?\ | |
| + (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')?\ | |
| + (brk_ = 1, (argv[0][1] != '\0')?\ | |
| (&argv[0][1]) :\ | |
| (argc--, argv++, argv[0]))) | |
| #endif | |
| - |