version 1.35, 2015/02/17 20:30:44 |
version 1.36, 2015/09/12 19:08:47 |
|
|
int ch) |
int ch) |
{ |
{ |
cat_t *cap; |
cat_t *cap; |
|
unsigned char uc = (unsigned char)ch; |
|
|
_DIAGASSERT(p != NULL); |
_DIAGASSERT(p != NULL); |
|
|
cap = p->g->categories; |
cap = p->g->categories; |
if ((p->g->cflags®_ICASE) && isalpha((unsigned char) ch) |
if ((p->g->cflags & REG_ICASE) && isalpha(uc) && othercase(uc) != uc) |
&& othercase((unsigned char) ch) != (unsigned char) ch) |
bothcases(p, uc); |
bothcases(p, (unsigned char) ch); |
|
else { |
else { |
EMIT(OCHAR, (sopno)(unsigned char)ch); |
EMIT(OCHAR, (sopno)uc); |
if (cap[ch] == 0) { |
if (cap[uc] == 0) { |
_DIAGASSERT(__type_fit(unsigned char, |
_DIAGASSERT(__type_fit(unsigned char, |
p->g->ncategories + 1)); |
p->g->ncategories + 1)); |
cap[ch] = (unsigned char)p->g->ncategories++; |
cap[uc] = (unsigned char)p->g->ncategories++; |
} |
} |
} |
} |
} |
} |