{
int32_t num = strtos32_or_err(str, errmesg);
- if (num < INT16_MIN || num > INT16_MAX)
- errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str);
-
+ if (num < INT16_MIN || num > INT16_MAX) {
+ errno = ERANGE;
+ err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str);
+ }
return num;
}
{
uint32_t num = strtou32_or_err(str, errmesg);
- if (num > UINT16_MAX)
- errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str);
-
+ if (num > UINT16_MAX) {
+ errno = ERANGE;
+ err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str);
+ }
return num;
}
{
int64_t num = strtos64_or_err(str, errmesg);
- if (num < INT32_MIN || num > INT32_MAX)
- errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str);
-
+ if (num < INT32_MIN || num > INT32_MAX) {
+ errno = ERANGE;
+ err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str);
+ }
return num;
}
{
uint64_t num = strtou64_or_err(str, errmesg);
- if (num > UINT32_MAX)
- errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str);
-
+ if (num > UINT32_MAX) {
+ errno = ERANGE;
+ err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str);
+ }
return num;
}