diff --git a/lib/getrange.c b/lib/getrange.c index 5c0767c6..b12cb72a 100644 --- a/lib/getrange.c +++ b/lib/getrange.c @@ -47,20 +47,20 @@ getrange(const char *range, n = strtoul_noneg(&range[1], &endptr, 10); if (('\0' != *endptr) || (0 != errno)) return -1; + *has_max = true; /* - */ - *has_max = true; *max = n; } else { errno = 0; n = strtoul_noneg(range, &endptr, 10); if (endptr == range || 0 != errno) return -1; + *has_min = true; switch (*endptr) { case '\0': /* */ - *has_min = true; *has_max = true; *min = n; *max = n; @@ -69,20 +69,18 @@ getrange(const char *range, endptr++; if ('\0' == *endptr) { /* - */ - *has_min = true; *min = n; } else if (!isdigit (*endptr)) { return -1; } else { - *has_min = true; *min = n; errno = 0; n = strtoul_noneg(endptr, &endptr, 10); if ('\0' != *endptr || 0 != errno) return -1; + *has_max = true; /* - */ - *has_max = true; *max = n; } break;