if (dlen <= len && memcmp (*s, mbdigits[n], dlen) == 0)
if (i >= from_level && dlen <= *len && memcmp (*s, mbdigits[n], dlen) == 0)
indigit_value (const char **s, size_t *len, int *decided){  int from_level;  int to_level;  const char *mbdigits[10];  int n;  if (*decided != -1)    from_level = to_level = *decided;  else    {      from_level = 0;      to_level = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_INDIGITS_MB_LEN) - 1;      assert (from_level <= to_level);    }  /* In this round we get the pointer to the digit strings and also perform     the first round of comparisons.  */  for (n = 0; n < 10; ++n)    {      size_t dlen;      /* Get the string for the digits with value N.  */      mbdigits[n] = _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_MB + n);      dlen = strlen (mbdigits[n]);      if (dlen <= len && memcmp (*s, mbdigits[n], dlen) == 0)	{	  /* Found it.  */	  *s += dlen;	  len -= dlen;	  if (*decided == -1)	    *decided = 0;	  return n;	}      /* Advance the pointer to the next string.  */      mbdigits[n] += dlen + 1;    }  /* Now perform the remaining tests.  */  while (++from_level <= to_level)    {      /* Search all ten digits of this level.  */      for (n = 0; n < 10; ++n)	{	  size_t dlen = strlen (mbdigits[n]);	  if (dlen <= len && memcmp (*s, mbdigits[n], dlen) == 0)	    {	      /* Found it.  */	      *s += dlen;	      len -= dlen;	      if (*decided == -1)		*decided = from_level;	      return n;	    }	  /* Advance the pointer to the next string.  */	  mbdigits[n] += dlen + 1;	}      /* Next level.  */      ++from_level;    }  /* If we reach this point no matching digit was found.  */  return -1;}