Bläddra i källkod

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
take this last version for st.
Roberto E. Vargas Caballero 11 år sedan
förälder
incheckning
33da67dac0
1 ändrade filer med 28 tillägg och 20 borttagningar
  1. 28 20
      arg.h

+ 28 - 20
arg.h

@@ -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
-