rem: len += p->u.repeated_char.repeat_count; else if (p->u.repeated_char.repeat_count == 0)
add: len = p->u.repeated_char.repeat_count; else
context: get_spec_stats (struct Spec_list *s){  struct List_element *p;  int len = 0;  s->n_indefinite_repeats = 0;  s->has_equiv_class = 0;  s->has_restricted_char_class = 0;  s->has_char_class = 0;  for (p = s->head->next; p; p = p->next)    {      switch (p->type)	{	  int i;	case RE_NORMAL_CHAR:	  ++len;	  break;	case RE_RANGE:	  assert (p->u.range.last_char >= p->u.range.first_char);	  len += p->u.range.last_char - p->u.range.first_char + 1;	  break;	case RE_CHAR_CLASS:	  s->has_char_class = 1;	  for (i = 0; i < N_CHARS; i++)	    if (is_char_class_member (p->u.char_class, i))	      ++len;	  switch (p->u.char_class)	    {	    case CC_UPPER:	    case CC_LOWER:	      break;	    default:	      s->has_restricted_char_class = 1;	      break;	    }	  break;	case RE_EQUIV_CLASS:	  for (i = 0; i < N_CHARS; i++)	    if (is_equiv_class_member (p->u.equiv_code, i))	      ++len;	  s->has_equiv_class = 1;	  break;	case RE_REPEATED_CHAR:	  if (p->u.repeated_char.repeat_count > 0)	    len += p->u.repeated_char.repeat_count;	  else if (p->u.repeated_char.repeat_count == 0)	    {	      s->indefinite_repeat_element = p;	      ++(s->n_indefinite_repeats);	    }	  break;	case RE_NO_TYPE:	  assert (0);	  break;	}    }  s->length = len;}