Introduction
Introduction Statistics Contact Development Disclaimer Help
Adding parameter grouping. - geomyidae - A small C-based gopherd.
git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfri…
Log
Files
Refs
Tags
README
LICENSE
---
commit cf8dcb97a53fa14b89ade9088299ba8c1e8d7dc7
parent f7fa209ff3d253fe62813d925468f7fe14ebc507
Author: Christoph Lohmann <[email protected]>
Date: Sun, 12 Jun 2011 17:36:55 +0200
Adding parameter grouping.
Diffstat:
M arg.h | 29 +++++++++++++++++++++++------
1 file changed, 23 insertions(+), 6 deletions(-)
---
diff --git a/arg.h b/arg.h
@@ -5,13 +5,30 @@
extern char *argv0;
-#define ARGBEGIN for(argv0 = *argv, argv++, argc--;\
- argv[0] && argv[0][0]=='-' && argv[0][1];\
- argc--, argv++) {\
+#define ARGBEGIN for(argv0 = *argv, argv++, argc--;\
+ argv[0] && argv[0][1]\
+ && argv[0][0] == '-';\
+ argc--, argv++) {\
char _argc;\
- _argc = argv[0][1];\
- switch(_argc)
-#define ARGEND USED(_argc);} USED(argv);USED(argc);
+ char **_argv;\
+ if(argv[0][1] == '-' && argv[0][2] == '\0') {\
+ argv++;\
+ argc--;\
+ break;\
+ }\
+ for(argv[0]++, _argv = argv; argv[0][0];\
+ argv[0]++) {\
+ if(_argv != argv)\
+ break;\
+ _argc = argv[0][0];\
+ switch(_argc)
+
+#define ARGEND }\
+ USED(_argc);\
+ }\
+ USED(argv);\
+ USED(argc);
+
#define EARGF(x) ((argv[1] == nil)? ((x), abort(), (char *)0) :\
(argc--, argv++, argv[0]))
You are viewing proxied material from bitreich.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.