vcscanf: fix formatting errors

Somehow I ended up introducing mixed tabs and spaces into the file.
This commit is contained in:
Matheus Afonso Martins Moreira 2023-11-02 08:00:54 -03:00
parent 90f19ed448
commit bb0d4c2c15

View file

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