iFix oob in arg.h. - thinglaunch - A simple command and password promtper for X11. Err bitreich.org 70 hgit clone git://bitreich.org/thinglaunch URL:git://bitreich.org/thinglaunch bitreich.org 70 1Log /scm/thinglaunch/log.gph bitreich.org 70 1Files /scm/thinglaunch/files.gph bitreich.org 70 1Refs /scm/thinglaunch/refs.gph bitreich.org 70 1Tags /scm/thinglaunch/tag bitreich.org 70 1LICENSE /scm/thinglaunch/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit a80c9725e8fdc55c1b69de9d7bbcc48e0e1aab42 /scm/thinglaunch/commit/a80c9725e8fdc55c1b69de9d7bbcc48e0e1aab42.gph bitreich.org 70 1parent 3c24e44bec97808fe9489b9e58b01a18bc60a9d8 /scm/thinglaunch/commit/3c24e44bec97808fe9489b9e58b01a18bc60a9d8.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Thu, 3 Mar 2016 13:43:01 +0100 Err bitreich.org 70 i Err bitreich.org 70 iFix oob in arg.h. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M arg.h | 47 ++++++++++++++++++------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 27 insertions(+), 20 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/arg.h b/arg.h /scm/thinglaunch/file/arg.h.gph bitreich.org 70 i@@ -3,39 +3,46 @@ Err bitreich.org 70 i * by 20h Err bitreich.org 70 i */ Err bitreich.org 70 i Err bitreich.org 70 i-#ifndef __ARG_H__ Err bitreich.org 70 i-#define __ARG_H__ Err bitreich.org 70 i+#ifndef ARG_H__ Err bitreich.org 70 i+#define ARG_H__ Err bitreich.org 70 i Err bitreich.org 70 i extern char *argv0; Err bitreich.org 70 i Err bitreich.org 70 i-#define USED(x) ((void)(x)) Err bitreich.org 70 i- Err bitreich.org 70 i+/* use main(int argc, char *argv[]) */ Err bitreich.org 70 i #define ARGBEGIN for (argv0 = *argv, argv++, argc--;\ Err bitreich.org 70 i- argv[0] && argv[0][1]\ Err bitreich.org 70 i- && argv[0][0] == '-';\ Err bitreich.org 70 i+ argv[0] && argv[0][0] == '-'\ Err bitreich.org 70 i+ && argv[0][1];\ Err bitreich.org 70 i argc--, argv++) {\ Err bitreich.org 70 i- char _argc;\ Err bitreich.org 70 i- char **_argv;\ Err bitreich.org 70 i+ char argc_;\ Err bitreich.org 70 i+ char **argv_;\ Err bitreich.org 70 i+ int brk_;\ Err bitreich.org 70 i if (argv[0][1] == '-' && argv[0][2] == '\0') {\ Err bitreich.org 70 i argv++;\ Err bitreich.org 70 i argc--;\ Err bitreich.org 70 i break;\ Err bitreich.org 70 i }\ Err bitreich.org 70 i- for (argv[0]++, _argv = argv; argv[0][0];\ Err bitreich.org 70 i+ for (brk_ = 0, argv[0]++, argv_ = argv;\ Err bitreich.org 70 i+ argv[0][0] && !brk_;\ Err bitreich.org 70 i argv[0]++) {\ Err bitreich.org 70 i- if (_argv != argv)\ Err bitreich.org 70 i+ if (argv_ != argv)\ Err bitreich.org 70 i break;\ Err bitreich.org 70 i- _argc = argv[0][0];\ Err bitreich.org 70 i- switch (_argc) Err bitreich.org 70 i- Err bitreich.org 70 i+ argc_ = argv[0][0];\ Err bitreich.org 70 i+ switch (argc_) Err bitreich.org 70 i #define ARGEND }\ Err bitreich.org 70 i- USED(_argc);\ Err bitreich.org 70 i- }\ Err bitreich.org 70 i- USED(argv);\ Err bitreich.org 70 i- USED(argc); Err bitreich.org 70 i+ } Err bitreich.org 70 i Err bitreich.org 70 i-#define EARGF(x) ((argv[1] == NULL)? ((x), abort(), (char *)0) :\ Err bitreich.org 70 i- (argc--, argv++, argv[0])) Err bitreich.org 70 i+#define ARGC() argc_ Err bitreich.org 70 i Err bitreich.org 70 i-#endif Err bitreich.org 70 i+#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\ Err bitreich.org 70 i+ ((x), abort(), (char *)0) :\ Err bitreich.org 70 i+ (brk_ = 1, (argv[0][1] != '\0')?\ Err bitreich.org 70 i+ (&argv[0][1]) :\ Err bitreich.org 70 i+ (argc--, argv++, argv[0]))) Err bitreich.org 70 i Err bitreich.org 70 i+#define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\ Err bitreich.org 70 i+ (char *)0 :\ Err bitreich.org 70 i+ (brk_ = 1, (argv[0][1] != '\0')?\ Err bitreich.org 70 i+ (&argv[0][1]) :\ Err bitreich.org 70 i+ (argc--, argv++, argv[0]))) Err bitreich.org 70 i+ Err bitreich.org 70 i+#endif Err bitreich.org 70 .