start end end character sequence of range must have the same length"));
start and end character sequence of range must have the same length"));
charclass_charcode_ellipsis (struct linereader *ldfile,			     struct locale_ctype_t *ctype,			     struct charmap_t *charmap,			     struct repertoire_t *repertoire,			     struct token *now, char *last_charcode,			     uint32_t last_charcode_len,			     unsigned long int class256_bit,			     unsigned long int class_bit, int ignore_content,			     int handle_digits){  /* First check whether the to-value is larger.  */  if (now->val.charcode.nbytes != last_charcode_len)    {      lr_error (ldfile, _("\start end end character sequence of range must have the same length"));      return;    }  if (memcmp (last_charcode, now->val.charcode.bytes, last_charcode_len) > 0)    {      lr_error (ldfile, _("\to-value character sequence is smaller than from-value sequence"));      return;    }  if (!ignore_content)    {      do	{	  /* Increment the byte sequence value.  */	  struct charseq *seq;	  uint32_t wch;	  int i;	  for (i = last_charcode_len - 1; i >= 0; --i)	    if (++last_charcode[i] != 0)	      break;	  if (last_charcode_len == 1)	    /* Of course we have the charcode value.  */	    ctype->class256_collection[(size_t) last_charcode[0]]	      |= class256_bit;	  /* Find the symbolic name.  */	  seq = charmap_find_symbol (charmap, last_charcode,				     last_charcode_len);	  if (seq != NULL)	    {	      if (seq->ucs4 == UNINITIALIZED_CHAR_VALUE)		seq->ucs4 = repertoire_find_value (repertoire, seq->name,						   strlen (seq->name));	      wch = seq == NULL ? ILLEGAL_CHAR_VALUE : seq->ucs4;	      if (wch != ILLEGAL_CHAR_VALUE && class_bit != 0)		*find_idx (ctype, &ctype->class_collection,			   &ctype->class_collection_max,			   &ctype->class_collection_act, wch) |= class_bit;	    }	  else	    wch = ILLEGAL_CHAR_VALUE;	  if (handle_digits == 1)	    {	      /* We must store the digit values.  */	      if (ctype->mbdigits_act == ctype->mbdigits_max)		{		  ctype->mbdigits_max *= 2;		  ctype->mbdigits = xrealloc (ctype->mbdigits,					      (ctype->mbdigits_max					       * sizeof (char *)));		  ctype->wcdigits_max *= 2;		  ctype->wcdigits = xrealloc (ctype->wcdigits,					      (ctype->wcdigits_max					       * sizeof (uint32_t)));		}	      seq = xmalloc (sizeof (struct charseq) + last_charcode_len);	      memcpy ((char *) (seq + 1), last_charcode, last_charcode_len);	      seq->nbytes = last_charcode_len;	      ctype->mbdigits[ctype->mbdigits_act++] = seq;	      ctype->wcdigits[ctype->wcdigits_act++] = wch;	    }	  else if (handle_digits == 2)	    {	      struct charseq *seq;	      /* We must store the digit values.  */	      if (ctype->outdigits_act >= 10)		{		  lr_error (ldfile, _("\%s: field `%s' does not contain exactly ten entries"),			    "LC_CTYPE", "outdigit");		  return;		}	      seq = xmalloc (sizeof (struct charseq) + last_charcode_len);	      memcpy ((char *) (seq + 1), last_charcode, last_charcode_len);	      seq->nbytes = last_charcode_len;	      ctype->mboutdigits[ctype->outdigits_act] = seq;	      ctype->wcoutdigits[ctype->outdigits_act] = wch;	      ++ctype->outdigits_act;	    }	}      while (memcmp (last_charcode, now->val.charcode.bytes,		     last_charcode_len) != 0);    }}