U_CAPI int32_t U_EXPORT2 u_strFoldCase(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, uint32_t options, UErrorCode *pErrorCode) { UCaseMap csm=UCASEMAP_INITIALIZER; csm.csp=ucase_getSingleton(); csm.options=options; return ustrcase_map( &csm, dest, destCapacity, src, srcLength, ustrcase_internalFold, pErrorCode); }
U_CAPI int32_t U_EXPORT2 ucasemap_toTitle(UCaseMap *csm, UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode) { if(csm->iter!=NULL) { ubrk_setText(csm->iter, src, srcLength, pErrorCode); } else { csm->iter=ubrk_open(UBRK_WORD, csm->locale, src, srcLength, pErrorCode); } return ustrcase_map( csm, dest, destCapacity, src, srcLength, ustrcase_internalToTitle, pErrorCode); }
U_CAPI int32_t U_EXPORT2 u_strToTitle(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, UBreakIterator *titleIter, const char *locale, UErrorCode *pErrorCode) { UCaseMap csm=UCASEMAP_INITIALIZER; setTempCaseMap(&csm, locale); if(titleIter!=NULL) { ubrk_setText(csm.iter=titleIter, src, srcLength, pErrorCode); } else { csm.iter=ubrk_open(UBRK_WORD, csm.locale, src, srcLength, pErrorCode); } int32_t length=ustrcase_map( &csm, dest, destCapacity, src, srcLength, ustrcase_internalToTitle, pErrorCode); if(titleIter==NULL && csm.iter!=NULL) { ubrk_close(csm.iter); } return length; }
U_NAMESPACE_BEGIN int32_t CaseMap::toTitle( const char *locale, uint32_t options, BreakIterator *iter, const UChar *src, int32_t srcLength, UChar *dest, int32_t destCapacity, Edits *edits, UErrorCode &errorCode) { LocalPointer<BreakIterator> ownedIter; if(iter==NULL) { iter=BreakIterator::createWordInstance(Locale(locale), errorCode); ownedIter.adoptInstead(iter); } if(U_FAILURE(errorCode)) { return 0; } UnicodeString s(srcLength<0, src, srcLength); iter->setText(s); return ustrcase_map( ustrcase_getCaseLocale(locale), options, iter, dest, destCapacity, src, srcLength, ustrcase_internalToTitle, edits, errorCode); }
U_NAMESPACE_END U_CAPI int32_t U_EXPORT2 ucasemap_toTitle(UCaseMap *csm, UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode) { if (U_FAILURE(*pErrorCode)) { return 0; } if (csm->iter == NULL) { csm->iter = BreakIterator::createWordInstance(Locale(csm->locale), *pErrorCode); } if (U_FAILURE(*pErrorCode)) { return 0; } UnicodeString s(srcLength<0, src, srcLength); csm->iter->setText(s); return ustrcase_map( csm->caseLocale, csm->options, csm->iter, dest, destCapacity, src, srcLength, ustrcase_internalToTitle, NULL, *pErrorCode); }