// 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; }
// Check if passed characters belongs to the :space: class bool IconvGNUWrapper::isSpace(const XMLCh toCheck) const { if (toCheck <= 0x7F) return isspace(toCheck); char wcbuf[fUChSize * 2]; char tmpArr[4]; xmlChToMbc (toCheck, wcbuf); 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; } return isspace(*tmpArr); }