iAdding parameter grouping. - geomyidae - A small C-based gopherd. Err bitreich.org 70 hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70 1Log /scm/geomyidae/log.gph bitreich.org 70 1Files /scm/geomyidae/files.gph bitreich.org 70 1Refs /scm/geomyidae/refs.gph bitreich.org 70 1Tags /scm/geomyidae/tag bitreich.org 70 1README /scm/geomyidae/file/README.gph bitreich.org 70 1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit cf8dcb97a53fa14b89ade9088299ba8c1e8d7dc7 /scm/geomyidae/commit/cf8dcb97a53fa14b89ade9088299ba8c1e8d7dc7.gph bitreich.org 70 1parent f7fa209ff3d253fe62813d925468f7fe14ebc507 /scm/geomyidae/commit/f7fa209ff3d253fe62813d925468f7fe14ebc507.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Sun, 12 Jun 2011 17:36:55 +0200 Err bitreich.org 70 i Err bitreich.org 70 iAdding parameter grouping. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M arg.h | 29 +++++++++++++++++++++++------ Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 23 insertions(+), 6 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/arg.h b/arg.h /scm/geomyidae/file/arg.h.gph bitreich.org 70 i@@ -5,13 +5,30 @@ Err bitreich.org 70 i Err bitreich.org 70 i extern char *argv0; Err bitreich.org 70 i Err bitreich.org 70 i-#define ARGBEGIN for(argv0 = *argv, argv++, argc--;\ Err bitreich.org 70 i- argv[0] && argv[0][0]=='-' && argv[0][1];\ Err bitreich.org 70 i- argc--, 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+ argc--, argv++) {\ Err bitreich.org 70 i char _argc;\ Err bitreich.org 70 i- _argc = argv[0][1];\ Err bitreich.org 70 i- switch(_argc) Err bitreich.org 70 i-#define ARGEND USED(_argc);} USED(argv);USED(argc); Err bitreich.org 70 i+ char **_argv;\ 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+ argv[0]++) {\ 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+#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 #define EARGF(x) ((argv[1] == nil)? ((x), abort(), (char *)0) :\ Err bitreich.org 70 i (argc--, argv++, argv[0])) Err bitreich.org 70 i Err bitreich.org 70 .