mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-09 19:30:29 +00:00
vcscanf: fix formatting errors
Somehow I ended up introducing mixed tabs and spaces into the file.
This commit is contained in:
parent
90f19ed448
commit
bb0d4c2c15
1 changed files with 123 additions and 123 deletions
|
@ -103,7 +103,7 @@ int __vcscanf(int callback(void *), //
|
||||||
break;
|
break;
|
||||||
case '%': {
|
case '%': {
|
||||||
uint128_t number;
|
uint128_t number;
|
||||||
double fp;
|
double fp;
|
||||||
unsigned width = 0;
|
unsigned width = 0;
|
||||||
unsigned char bits = 32;
|
unsigned char bits = 32;
|
||||||
unsigned char charbytes = sizeof(char);
|
unsigned char charbytes = sizeof(char);
|
||||||
|
@ -336,145 +336,145 @@ int __vcscanf(int callback(void *), //
|
||||||
if (c == '+' || c == '-') {
|
if (c == '+' || c == '-') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
}
|
}
|
||||||
bool hexadecimal = false;
|
bool hexadecimal = false;
|
||||||
if (c == '0') {
|
if (c == '0') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'x' || c == 'X') {
|
if (c == 'x' || c == 'X') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
hexadecimal = true;
|
hexadecimal = true;
|
||||||
goto BufferFloatingPointNumber;
|
goto BufferFloatingPointNumber;
|
||||||
} else if (c == -1) {
|
} else if (c == -1) {
|
||||||
fp = strtod((char *) buf, NULL);
|
fp = strtod((char *) buf, NULL);
|
||||||
goto GotFloatingPointNumber;
|
goto GotFloatingPointNumber;
|
||||||
} else {
|
} else {
|
||||||
goto BufferFloatingPointNumber;
|
goto BufferFloatingPointNumber;
|
||||||
}
|
}
|
||||||
} else if (c == 'n' || c == 'N') {
|
} else if (c == 'n' || c == 'N') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'a' || c == 'A') {
|
if (c == 'a' || c == 'A') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'n' || c == 'N') {
|
if (c == 'n' || c == 'N') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == '(') {
|
if (c == '(') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
do {
|
do {
|
||||||
bool isdigit = c >= '0' && c <= '9';
|
bool isdigit = c >= '0' && c <= '9';
|
||||||
bool isletter = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
|
bool isletter = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
|
||||||
if (!(c == '_' || isdigit || isletter)) {
|
if (!(c == '_' || isdigit || isletter)) {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
} while ((c = BUFFER) != -1 && c != ')');
|
} while ((c = BUFFER) != -1 && c != ')');
|
||||||
fp = strtod((char *) buf, NULL);
|
fp = strtod((char *) buf, NULL);
|
||||||
goto GotFloatingPointNumber;
|
goto GotFloatingPointNumber;
|
||||||
} else {
|
} else {
|
||||||
fp = strtod((char *) buf, NULL);
|
fp = strtod((char *) buf, NULL);
|
||||||
goto GotFloatingPointNumber;
|
goto GotFloatingPointNumber;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
} else if (c == 'i' || c == 'I') {
|
} else if (c == 'i' || c == 'I') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'n' || c == 'N') {
|
if (c == 'n' || c == 'N') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'f' || c == 'F') {
|
if (c == 'f' || c == 'F') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'i' || c == 'I') {
|
if (c == 'i' || c == 'I') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'n' || c == 'N') {
|
if (c == 'n' || c == 'N') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'i' || c == 'I') {
|
if (c == 'i' || c == 'I') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 't' || c == 'T') {
|
if (c == 't' || c == 'T') {
|
||||||
c = BUFFER;
|
c = BUFFER;
|
||||||
if (c == 'y' || c == 'Y') {
|
if (c == 'y' || c == 'Y') {
|
||||||
} else {
|
} else {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (c != -1 && unget) {
|
if (c != -1 && unget) {
|
||||||
unget(c, arg);
|
unget(c, arg);
|
||||||
}
|
}
|
||||||
fp = strtod((char *) buf, NULL);
|
fp = strtod((char *) buf, NULL);
|
||||||
goto GotFloatingPointNumber;
|
goto GotFloatingPointNumber;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BufferFloatingPointNumber:
|
BufferFloatingPointNumber:
|
||||||
enum { INTEGER, FRACTIONAL, SIGN, EXPONENT } state = INTEGER;
|
enum { INTEGER, FRACTIONAL, SIGN, EXPONENT } state = INTEGER;
|
||||||
do {
|
do {
|
||||||
bool isdecdigit = c >= '0' && c <= '9';
|
bool isdecdigit = c >= '0' && c <= '9';
|
||||||
bool ishexdigit = (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
|
bool ishexdigit = (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
|
||||||
bool ispoint = c == '.' || c == ',';
|
bool ispoint = c == '.' || c == ',';
|
||||||
bool isdecexp = c == 'e' || c == 'E';
|
bool isdecexp = c == 'e' || c == 'E';
|
||||||
bool ishexp = c == 'p' || c == 'P';
|
bool ishexp = c == 'p' || c == 'P';
|
||||||
bool issign = c == '+' || c == '-';
|
bool issign = c == '+' || c == '-';
|
||||||
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case INTEGER:
|
case INTEGER:
|
||||||
case FRACTIONAL:
|
case FRACTIONAL:
|
||||||
if (isdecdigit || (hexadecimal && ishexdigit)) {
|
if (isdecdigit || (hexadecimal && ishexdigit)) {
|
||||||
goto Continue;
|
goto Continue;
|
||||||
} else if (state == INTEGER && ispoint) {
|
} else if (state == INTEGER && ispoint) {
|
||||||
state = FRACTIONAL;
|
state = FRACTIONAL;
|
||||||
goto Continue;
|
goto Continue;
|
||||||
} else if (isdecexp || (hexadecimal && ishexp)) {
|
} else if (isdecexp || (hexadecimal && ishexp)) {
|
||||||
state = SIGN;
|
state = SIGN;
|
||||||
goto Continue;
|
goto Continue;
|
||||||
} else goto Break;
|
} else goto Break;
|
||||||
case SIGN:
|
case SIGN:
|
||||||
if (issign) {
|
if (issign) {
|
||||||
state = EXPONENT;
|
state = EXPONENT;
|
||||||
goto Continue;
|
goto Continue;
|
||||||
}
|
}
|
||||||
state = EXPONENT;
|
state = EXPONENT;
|
||||||
// fallthrough
|
// fallthrough
|
||||||
case EXPONENT:
|
case EXPONENT:
|
||||||
if (isdecdigit) {
|
if (isdecdigit) {
|
||||||
goto Continue;
|
goto Continue;
|
||||||
} else goto Break;
|
} else goto Break;
|
||||||
default:
|
default:
|
||||||
goto Break;
|
goto Break;
|
||||||
}
|
}
|
||||||
Continue:
|
Continue:
|
||||||
continue;
|
continue;
|
||||||
Break:
|
Break:
|
||||||
if (c != -1 && unget) {
|
if (c != -1 && unget) {
|
||||||
unget(c, arg);
|
unget(c, arg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} while ((c = BUFFER) != -1);
|
} while ((c = BUFFER) != -1);
|
||||||
fp = strtod((char *)buf, NULL);
|
fp = strtod((char *)buf, NULL);
|
||||||
GotFloatingPointNumber:
|
GotFloatingPointNumber:
|
||||||
if (!discard) {
|
if (!discard) {
|
||||||
++items;
|
++items;
|
||||||
void *out = va_arg(va, void *);
|
void *out = va_arg(va, void *);
|
||||||
if (charbytes == sizeof(char)) {
|
if (charbytes == sizeof(char)) {
|
||||||
*(float *)out = (float)fp;
|
*(float *)out = (float)fp;
|
||||||
} else {
|
} else {
|
||||||
*(double *)out = (double)fp;
|
*(double *)out = (double)fp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(buf);
|
free(buf);
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
bufcur = bufsize = 0;
|
bufcur = bufsize = 0;
|
||||||
continue;
|
continue;
|
||||||
ReportConsumed:
|
ReportConsumed:
|
||||||
n_ptr = va_arg(va, int *);
|
n_ptr = va_arg(va, int *);
|
||||||
|
@ -540,7 +540,7 @@ int __vcscanf(int callback(void *), //
|
||||||
if (ismalloc) {
|
if (ismalloc) {
|
||||||
*va_arg(va, char **) = (void *) buf;
|
*va_arg(va, char **) = (void *) buf;
|
||||||
}
|
}
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
} else {
|
} else {
|
||||||
do {
|
do {
|
||||||
if (isspace(c)) break;
|
if (isspace(c)) break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue