[hackers] [scc] [arg.h] add a macro for handling operands in any order || Quentin Rameau

From: <git_AT_suckless.org>
Date: Mon, 4 Jul 2016 12:16:09 +0200 (CEST)

commit 72b2248a62c38bcc2203c12f2462cbb7491be5be
Author: Quentin Rameau <quinq_AT_fifth.space>
AuthorDate: Sat Jul 2 11:10:35 2016 +0200
Commit: Quentin Rameau <quinq_AT_fifth.space>
CommitDate: Sat Jul 2 11:10:35 2016 +0200

    [arg.h] add a macro for handling operands in any order

diff --git a/inc/arg.h b/inc/arg.h
index 0b23c53..da5455c 100644
--- a/inc/arg.h
+++ b/inc/arg.h
_AT_@ -9,57 +9,53 @@
 extern char *argv0;
 
 /* use main(int argc, char *argv[]) */
-#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\
- argv[0] && argv[0][0] == '-'\
- && argv[0][1];\
- argc--, argv++) {\
- 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_;\
- argv[0]++) {\
- if (argv_ != argv)\
- break;\
- 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 }\
- }
-
-#define ARGC() argc_
-
-#define ARGNUMF() (brk_ = 1, estrtonum(argv[0], 0, INT_MAX))
-
-#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\
- ((x), abort(), (char *)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')?\
- (&argv[0][1]) :\
- (argc--, argv++, argv[0])))
-
-#define LNGARG() &argv[0][0]
+#define ARGBEGIN \
+for (argv0 = *argv, argv++, argc--;\
+ argv[0];\
+ argc--, argv++) {\
+ if (argv[0][0] == '-') {\
+ 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_;\
+ argv[0]++) {\
+ if (argv_ != argv)\
+ break;\
+ argc_ = argv[0][0];\
+ switch (argc_)
+
+#define ARGOPERAND \
+ }\
+ } else if (argv[0][0] != '\0')
+
+#define ARGEND }
+
+#define ARGC() argc_
+
+#define ARGOP() argv[0]
+
+#define ARGNUMF() (brk_ = 1, estrtonum(argv[0], 0, INT_MAX))
+
+#define EARGF(x) \
+((argv[0][1] == '\0' && argv[1] == NULL) ?\
+ ((x), abort(), (char *)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')?\
+ (&argv[0][1]) :\
+ (argc--, argv++, argv[0])))
+
+#define LNGARG() &argv[0][0]
 
 #endif
Received on Mon Jul 04 2016 - 12:16:09 CEST

This archive was generated by hypermail 2.3.0 : Mon Jul 04 2016 - 12:24:25 CEST