// Return lowercase equivalent for XMLCh XMLCh IconvGNUWrapper::toLower (const XMLCh ch) const { if (ch <= 0x7F) return tolower(ch); char wcbuf[fUChSize * 2]; xmlChToMbc (ch, wcbuf); char tmpArr[4]; char* ptr = wcbuf; size_t len = fUChSize; char *pTmpArr = tmpArr; size_t bLen = 2; ICONV_LOCK; if (::iconv (fCDTo, &ptr, &len, &pTmpArr, &bLen) == (size_t) -1) return 0; tmpArr[1] = tolower (*((unsigned char*)tmpArr)); *tmpArr = tmpArr[1]; len = 1; pTmpArr = wcbuf; bLen = fUChSize; ptr = tmpArr; if (::iconv (fCDFrom, &ptr, &len, &pTmpArr, &bLen) == (size_t) -1) return 0; mbcToXMLCh (wcbuf, (XMLCh*) &ch); return ch; }
// Return lowercase equivalent for XMLCh XMLCh IconvGNUWrapper::toLower (const XMLCh ch) { if (ch <= 0x7F) return tolower(ch); char wcbuf[MAX_UCHSIZE * 2]; xmlChToMbc (ch, wcbuf); char tmpArr[4]; #if ICONV_USES_CONST_POINTER const char* ptr = wcbuf; #else char* ptr = wcbuf; #endif size_t len = fUChSize; char *pTmpArr = tmpArr; size_t bLen = 2; if (::iconv (fCDTo, &ptr, &len, &pTmpArr, &bLen) == (size_t) -1) return 0; tmpArr[1] = tolower (*((unsigned char*)tmpArr)); *tmpArr = tmpArr[1]; len = 1; pTmpArr = wcbuf; bLen = fUChSize; ptr = tmpArr; if (::iconv (fCDFrom, &ptr, &len, &pTmpArr, &bLen) == (size_t) -1) return 0; mbcToXMLCh (wcbuf, (XMLCh*) &ch); return ch; }