Loading...
--- 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;