/* Get a size represented as a sequence of decimal digits. */
static size_t extract_decimal(const char **str)
/* Get a size represented as a sequence of decimal digits. */
static size_t extract_decimal(const char **str)
{
	const char *sp = *str;
	size_t val = 0;
	while (isdigit((int)(unsigned char)*sp) != 0) {
		val = 10U * val + *sp++ - '0';
	}
	*str = sp;
	return val;
}