Fix int parsing with base 2 and 16 (#107)

This commit is contained in:
Alison Winters 2021-03-06 21:12:32 -08:00 committed by GitHub
parent fb7b7c6e21
commit 813e11b90b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 6 deletions

View file

@ -77,8 +77,8 @@ intmax_t strtoimax(const char *s, char **endptr, int base) {
}
} else if (*s == '0') {
++s;
if (base == 2 && *s == 'b' && *s == 'B') ++s;
if (base == 16 && *s == 'x' && *s == 'X') ++s;
if (base == 2 && (*s == 'b' || *s == 'B')) ++s;
if (base == 16 && (*s == 'x' || *s == 'X')) ++s;
}
for (;;) {

View file

@ -51,10 +51,10 @@ uintmax_t strtoumax(const char *s, char **endptr, int base) {
} else {
base = 10;
}
} else if (*s == '0') {
++s;
if (base == 2 && *s == 'b' && *s == 'B') ++s;
if (base == 16 && *s == 'x' && *s == 'X') ++s;
} else if (*p == '0') {
++p;
if (base == 2 && (*p == 'b' || *p == 'B')) ++p;
if (base == 16 && (*p == 'x' || *p == 'X')) ++p;
}
for (;;) {