void
RuleBasedCollator::setLocales(const Locale& requestedLocale, const Locale& validLocale, const Locale& actualLocale) {
    checkOwned();
    char* rloc  = uprv_strdup(requestedLocale.getName());
    if (rloc) {
        char* vloc = uprv_strdup(validLocale.getName());
        if (vloc) {
            char* aloc = uprv_strdup(actualLocale.getName());
            if (aloc) {
                ucol_setReqValidLocales(ucollator, rloc, vloc, aloc);
                return;
            }
            uprv_free(vloc);
        }
        uprv_free(rloc);
    }
}
Exemple #2
0
void
RuleBasedCollator::setLocales(const Locale& requestedLocale, const Locale& validLocale) {
	checkOwned();
    size_t rlen = uprv_strlen(requestedLocale.getName());
    char* rloc  = (char *)uprv_malloc((rlen+1)*sizeof(char));
    if (rloc) {
        uprv_strcpy(rloc, requestedLocale.getName());
        size_t vlen = uprv_strlen(validLocale.getName());
        char* vloc = (char*)uprv_malloc((vlen+1)*sizeof(char));
        if (vloc) {
            uprv_strcpy(vloc, validLocale.getName());
            ucol_setReqValidLocales(ucollator, rloc, vloc);
            return;
        }
        uprv_free(rloc);
    }
}