U_CFUNC int32_t ustr_toTitle(const UCaseProps *csp, UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, UBreakIterator *titleIter, const char *locale, uint32_t options, UErrorCode *pErrorCode) { UCaseMap csm={ NULL }; UCaseContext csc={ NULL }; int32_t length; csm.csp=csp; csm.iter=titleIter; csm.options=options; setTempCaseMap(&csm, locale, pErrorCode); csc.p=(void *)src; csc.limit=srcLength; length=_toTitle(&csm, dest, destCapacity, src, &csc, srcLength, pErrorCode); if(titleIter==NULL && csm.iter!=NULL) { ubrk_close(csm.iter); } return length; }
U_CAPI int32_t U_EXPORT2 u_strToUpper(UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, const char *locale, UErrorCode *pErrorCode) { UCaseMap csm={ NULL }; setTempCaseMap(&csm, locale, pErrorCode); return caseMap(&csm, dest, destCapacity, src, srcLength, TO_UPPER, pErrorCode); }
U_CFUNC int32_t ustr_toUpper(const UCaseProps *csp, UChar *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, const char *locale, UErrorCode *pErrorCode) { UCaseMap csm={ NULL }; UCaseContext csc={ NULL }; csm.csp=csp; setTempCaseMap(&csm, locale, pErrorCode); csc.p=(void *)src; csc.limit=srcLength; return _caseMap(&csm, ucase_toFullUpper, dest, destCapacity, src, &csc, 0, srcLength, 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={ NULL }; int32_t length; csm.iter=titleIter; setTempCaseMap(&csm, locale, pErrorCode); length=caseMap(&csm, dest, destCapacity, src, srcLength, TO_TITLE, pErrorCode); if(titleIter==NULL && csm.iter!=NULL) { ubrk_close(csm.iter); } return length; }
UnicodeString & UnicodeString::toTitle(BreakIterator *titleIter, const Locale &locale, uint32_t options) { UCaseMap csm=UCASEMAP_INITIALIZER; csm.options=options; setTempCaseMap(&csm, locale.getName()); BreakIterator *bi=titleIter; if(bi==NULL) { UErrorCode errorCode=U_ZERO_ERROR; bi=BreakIterator::createWordInstance(locale, errorCode); if(U_FAILURE(errorCode)) { setToBogus(); return *this; } } csm.iter=reinterpret_cast<UBreakIterator *>(bi); caseMap(&csm, unistr_case_internalToTitle); if(titleIter==NULL) { delete bi; } return *this; }
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; }