- if ((unsigned)wc - 0x10a0 < 0x26 || (unsigned)wc - 0x2d00 < 0x26)
- return wc + lmul*(0x2d00-0x10a0);
+ if (lower && (unsigned)wc - 0x10a0 < 0x2e)
+ if (wc>0x10c5 && wc != 0x10c7 && wc != 0x10cd) return wc;
+ else return wc + 0x2d00 - 0x10a0;
+ if (!lower && (unsigned)wc - 0x2d00 < 0x26)
+ if (wc>0x2d25 && wc != 0x2d27 && wc != 0x2d2d) return wc;
+ else return wc + 0x10a0 - 0x2d00;