rem: start = *format_ptr; for (; ISDIGIT (**format_ptr); (*format_ptr)++) continue;
add: if (ISDIGIT (**format_ptr) && (xstrtoul (*format_ptr, format_ptr, 10, &val, NULL) != LONGINT_OK || SIZE_MAX < val)) error (EXIT_FAILURE, 0, _("invalid format width"));
context: get_format_width (char **format_ptr){  unsigned count = 0;  char *start;  int ch_save;  start = *format_ptr;  for (; ISDIGIT (**format_ptr); (*format_ptr)++)    continue;  ch_save = **format_ptr;  **format_ptr = '\0';  /* In the case where no minimum field width is explicitly specified,     allow for enough octal digits to represent the value of LONG_MAX.  */  count = ((*format_ptr == start)	   ? bytes_to_octal_digits[sizeof (long)]	   /* FIXME: don't use atoi, it may silently overflow.	      Besides, we know the result is non-negative, so shouldn't	      need that cast.  */	   : (unsigned) atoi (start));  **format_ptr = ch_save;  return count;}