str2big_scan_digits: do not goto into a branch

I'm not necessarily against every goto in general, but jumping into a
branch is definitely a bad idea.  Better refactor.
This commit is contained in:
卜部昌平 2020-06-11 12:53:12 +09:00
Родитель 4dfc2f2e3d
Коммит 5a7c0dd038
1 изменённых файлов: 3 добавлений и 4 удалений

Просмотреть файл

@ -3771,12 +3771,12 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
return TRUE; return TRUE;
} }
if (badcheck && *str == '_') goto bad; if (badcheck && *str == '_') return FALSE;
while ((c = *str++) != 0) { while ((c = *str++) != 0) {
if (c == '_') { if (c == '_') {
if (nondigit) { if (nondigit) {
if (badcheck) goto bad; if (badcheck) return FALSE;
break; break;
} }
nondigit = (char) c; nondigit = (char) c;
@ -3791,7 +3791,7 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
} }
if (len > 0 && !--len) break; if (len > 0 && !--len) break;
} }
if (badcheck && nondigit) goto bad; if (badcheck && nondigit) return FALSE;
if (badcheck && len) { if (badcheck && len) {
str--; str--;
while (*str && ISSPACE(*str)) { while (*str && ISSPACE(*str)) {
@ -3799,7 +3799,6 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size
if (len > 0 && !--len) break; if (len > 0 && !--len) break;
} }
if (len && *str) { if (len && *str) {
bad:
return FALSE; return FALSE;
} }
} }