|
|
|
|
|
|
|
|
const char *from = *pfrom; |
|
|
const char *from = *pfrom; |
|
|
while (*(unsigned int *)from != 0) { |
|
|
while (*(unsigned int *)from != 0) { |
|
|
unsigned int fc = 0; // from character |
|
|
unsigned int fc = 0; // from character |
|
|
|
|
|
unsigned int nc = c; // next character |
|
|
|
|
|
|
|
|
*pfrom = from; |
|
|
*pfrom = from; |
|
|
|
|
|
|
|
|
from += utf8_in((int *)&fc, from); |
|
|
from += utf8_in((int *)&fc, from); |
|
|
if (c == fc) { |
|
|
|
|
|
|
|
|
if (nc == fc) { |
|
|
if (*from == 0) return from + 1; |
|
|
if (*from == 0) return from + 1; |
|
|
|
|
|
|
|
|
from += utf8_in((int *)&fc, from); |
|
|
from += utf8_in((int *)&fc, from); |
|
|
if (*from == 0 && fc == (unsigned int)towlower2(nextc, tr)) { |
|
|
|
|
|
|
|
|
nc = nextc; |
|
|
|
|
|
|
|
|
|
|
|
nc = towlower2(nextc, tr); |
|
|
|
|
|
if (*from == 0 && nc == fc) { |
|
|
*ignore_next_n = 1; |
|
|
*ignore_next_n = 1; |
|
|
return from + 1; |
|
|
return from + 1; |
|
|
} |
|
|
} |