4695 |
|
|
4696 |
if (firstline) |
if (firstline) |
4697 |
{ |
{ |
4698 |
USPTR *t = start_match; |
USPTR t = start_match; |
4699 |
#ifdef SUPPORT_UTF8 |
#ifdef SUPPORT_UTF8 |
4700 |
if (utf8) |
if (utf8) |
4701 |
{ |
{ |
4716 |
if (first_byte >= 0) |
if (first_byte >= 0) |
4717 |
{ |
{ |
4718 |
if (first_byte_caseless) |
if (first_byte_caseless) |
|
{ |
|
|
#ifdef SUPPORT_UTF8 |
|
|
if (utf8) |
|
|
{ |
|
|
while (start_match < end_subject && md->lcc[*start_match] != first_byte) |
|
|
{ |
|
|
start_match++; |
|
|
while(start_match < end_subject && (*start_match & 0xc0) == 0x80) |
|
|
start_match++; |
|
|
} |
|
|
} |
|
|
else |
|
|
#endif |
|
4719 |
while (start_match < end_subject && md->lcc[*start_match] != first_byte) |
while (start_match < end_subject && md->lcc[*start_match] != first_byte) |
4720 |
start_match++; |
start_match++; |
4721 |
} |
else |
|
else /* Caseful case */ |
|
|
{ |
|
|
#ifdef SUPPORT_UTF8 |
|
|
if (utf8) |
|
|
{ |
|
|
while (start_match < end_subject && *start_match != first_byte) |
|
|
{ |
|
|
start_match++; |
|
|
while(start_match < end_subject && (*start_match & 0xc0) == 0x80) |
|
|
start_match++; |
|
|
} |
|
|
} |
|
|
else |
|
|
#endif |
|
4722 |
while (start_match < end_subject && *start_match != first_byte) |
while (start_match < end_subject && *start_match != first_byte) |
4723 |
start_match++; |
start_match++; |
|
} |
|
4724 |
} |
} |
4725 |
|
|
4726 |
/* Or to just after a linebreak for a multiline match */ |
/* Or to just after a linebreak for a multiline match */ |
4760 |
|
|
4761 |
else if (start_bits != NULL) |
else if (start_bits != NULL) |
4762 |
{ |
{ |
|
#ifdef SUPPORT_UTF8 |
|
|
if (utf8) |
|
|
{ |
|
|
while (start_match < end_subject) |
|
|
{ |
|
|
register unsigned int c = *start_match; |
|
|
if ((start_bits[c/8] & (1 << (c&7))) == 0) |
|
|
{ |
|
|
start_match++; |
|
|
while(start_match < end_subject && (*start_match & 0xc0) == 0x80) |
|
|
start_match++; |
|
|
} |
|
|
else break; |
|
|
} |
|
|
} |
|
|
else |
|
|
#endif |
|
4763 |
while (start_match < end_subject) |
while (start_match < end_subject) |
4764 |
{ |
{ |
4765 |
register unsigned int c = *start_match; |
register unsigned int c = *start_match; |