in src/options.cc [34:63]
bool Options::valid_byte_size(const char *arg) {
assert(arg);
static const char validchars[] = {'K','M','G','b','\0'};
// fail if it doesn't start with a non-zero number
if (arg[0] <= '0' || arg[0] > '9') {
fprintf(stderr, "Invalid byte size!\n");
return false;
}
for (char *c = (char *)arg; *c; c++) {
if (*c < '0' || *c > '9') {
bool valid = false;
for (int i = 0; i < strlen(validchars); ++i) {
// must be a valid char and at the end of the string
if (*c == validchars[i] && c[1] == '\0') {
valid = true;
break;
}
}
if (!valid) {
fprintf(stderr, "Invalid byte size!\n");
return false;
}
}
}
return true;
}