Loading...
stdio.subproj/vfscanf.c Libc-186 Libc-167
--- Libc/Libc-186/stdio.subproj/vfscanf.c
+++ Libc/Libc-167/stdio.subproj/vfscanf.c
@@ -80,7 +80,6 @@
 #define	SUPPRESS	0x08	/* suppress assignment */
 #define	POINTER		0x10	/* weird %p pointer (`fake hex') */
 #define	NOSKIP		0x20	/* do not skip blanks */
-#define QUAD            0x400
 
 /*
  * The following are used in numeric conversions only:
@@ -102,13 +101,13 @@
 #define	CT_CHAR		0	/* %c conversion */
 #define	CT_CCL		1	/* %[...] conversion */
 #define	CT_STRING	2	/* %s conversion */
-#define	CT_INT		3	/* integer, i.e., strtoq or strtouq */
+#define	CT_INT		3	/* integer, i.e., strtol or strtoul */
 #define	CT_FLOAT	4	/* floating, i.e., strtod */
 
 #define u_char unsigned char
 #define u_long unsigned long
 
-static u_char *__sccl(char *, u_char *);
+static u_char *__sccl();
 
 /*
  * vfscanf
@@ -128,8 +127,8 @@
 	register char *p0;	/* saves original value of p when necessary */
 	int nassigned;		/* number of fields assigned */
 	int nread;		/* number of characters consumed from fp */
-	int base;		/* base argument to strtoq/strtouq */
-	u_quad_t (*ccfn)();	/* conversion function (strtoq/strtouq) */
+	int base;		/* base argument to strtol/strtoul */
+	u_long (*ccfn)();	/* conversion function (strtol/strtoul) */
 	char ccltab[256];	/* character class table for %[...] */
 	char buf[BUF];		/* buffer for numeric conversions */
 
@@ -181,9 +180,6 @@
 		case 'l':
 			flags |= LONG;
 			goto again;
-		case 'q':
-			flags |= QUAD;
-			goto again;
 		case 'L':
 			flags |= LONGDBL;
 			goto again;
@@ -208,13 +204,13 @@
 			/* FALLTHROUGH */
 		case 'd':
 			c = CT_INT;
-			ccfn = (u_quad_t (*)())strtoq;
+			ccfn = (u_long (*)())strtol;
 			base = 10;
 			break;
 
 		case 'i':
 			c = CT_INT;
-			ccfn = (u_quad_t (*)())strtoq;
+			ccfn = (u_long (*)())strtol;
 			base = 0;
 			break;
 
@@ -223,13 +219,13 @@
 			/* FALLTHROUGH */
 		case 'o':
 			c = CT_INT;
-			ccfn = strtouq;
+			ccfn = strtoul;
 			base = 8;
 			break;
 
 		case 'u':
 			c = CT_INT;
-			ccfn = strtouq;
+			ccfn = strtoul;
 			base = 10;
 			break;
 
@@ -239,7 +235,7 @@
 		case 'x':
 			flags |= PFXOK;	/* enable 0x prefixing */
 			c = CT_INT;
-			ccfn = strtouq;
+			ccfn = strtoul;
 			base = 16;
 			break;
 
@@ -271,7 +267,7 @@
 		case 'p':	/* pointer format is like hex */
 			flags |= POINTER | PFXOK;
 			c = CT_INT;
-			ccfn = strtouq;
+			ccfn = strtoul;
 			base = 16;
 			break;
 
@@ -282,8 +278,6 @@
 				*va_arg(ap, short *) = nread;
 			else if (flags & LONG)
 				*va_arg(ap, long *) = nread;
-			else if (flags & QUAD)
-				*va_arg(ap, quad_t *) = nread;
 			else
 				*va_arg(ap, int *) = nread;
 			continue;
@@ -298,7 +292,7 @@
 			if (isupper(c))
 				flags |= LONG;
 			c = CT_INT;
-			ccfn = (u_quad_t (*)())strtoq;
+			ccfn = (u_long (*)())strtol;
 			base = 10;
 			break;
 		}
@@ -440,7 +434,7 @@
 			continue;
 
 		case CT_INT:
-			/* scan an integer as if by strtoq/strtouq */
+			/* scan an integer as if by strtol/strtoul */
 #ifdef hardway
 			if (width == 0 || width > sizeof(buf) - 1)
 				width = sizeof(buf) - 1;
@@ -558,7 +552,7 @@
 				(void) ungetc(c, fp);
 			}
 			if ((flags & SUPPRESS) == 0) {
-				u_quad_t res;
+				u_long res;
 
 				*p = 0;
 				res = (*ccfn)(buf, (char **)NULL, base);
@@ -568,8 +562,6 @@
 					*va_arg(ap, short *) = res;
 				else if (flags & LONG)
 					*va_arg(ap, long *) = res;
-				else if (flags & QUAD)
-					*va_arg(ap, quad_t *) = res;
 				else
 					*va_arg(ap, int *) = res;
 				nassigned++;
@@ -659,9 +651,7 @@
 
 				*p = 0;
 				res = strtod(buf,(char **) NULL);
-				if (flags & LONGDBL)
-					*va_arg(ap, long double *) = res;
-				else if (flags & LONG)
+				if (flags & LONG)
 					*va_arg(ap, double *) = res;
 				else
 					*va_arg(ap, float *) = res;