static char* U_EXPORT2 ucol_sortKeyToString(const UCollator *coll, const uint8_t *sortkey, char *buffer, uint32_t len) {
+ (void)coll; // suppress compiler warnings about unused variable
uint32_t position = 0;
uint8_t b;
/* Assume that the UCD and UCA versions are the same,
* rather than hardcoding (and updating each time) a particular UCA version. */
+ // Apple variant: Assume that UCA first 2 versions are the same as UCD,
+ // and last two parts show an increase over UCD
u_getUnicodeVersion(versionUCDArray);
ucol_getUCAVersion(col, versionUCAArray);
- if (0!=uprv_memcmp(versionUCAArray, versionUCDArray, 4)) {
+ //if (0!=uprv_memcmp(versionUCAArray, versionUCDArray, 4)) {
+ if (versionUCAArray[0]!=versionUCDArray[0] || versionUCAArray[1]!=versionUCDArray[1] ||
+ (versionUCAArray[3]<=versionUCDArray[3] && (versionUCAArray[3]!=versionUCDArray[3] || versionUCAArray[4]<versionUCDArray[4]))) {
log_err("Testing ucol_getUCAVersion() - unexpected result: %hu.%hu.%hu.%hu\n",
versionUCAArray[0], versionUCAArray[1], versionUCAArray[2], versionUCAArray[3]);
}
}
while (TRUE) {
/* testing with en since thai has its own tailoring */
- uint32_t ce = ucol_next(iter1, &status);
- uint32_t ce2 = ucol_next(iter2, &status);
+ int32_t ce = ucol_next(iter1, &status);
+ int32_t ce2 = ucol_next(iter2, &status);
if(U_FAILURE(status)) {
log_err("ERROR: CollationElement iterator creation failed.: %s\n", myErrorName(status));
return;
ucol_getSortKey(col, t, -1, k2, l2);
if (strcmp((char *)k1,(char *)k2) != 0){
log_err("ucol_openBinary - new collator should equal to old one\n");
- };
+ }
free(k1);
free(k2);
}
};
struct teststruct tests[] = {
- {"\\u010CAKI MIHALJ" } ,
- {"\\u010CAKI MIHALJ" } ,
- {"\\u010CAKI PIRO\\u0160KA" },
- {"\\u010CABAI ANDRIJA" } ,
- {"\\u010CABAI LAJO\\u0160" } ,
- {"\\u010CABAI MARIJA" } ,
- {"\\u010CABAI STEVAN" } ,
- {"\\u010CABAI STEVAN" } ,
- {"\\u010CABARKAPA BRANKO" } ,
- {"\\u010CABARKAPA MILENKO" } ,
- {"\\u010CABARKAPA MIROSLAV" } ,
- {"\\u010CABARKAPA SIMO" } ,
- {"\\u010CABARKAPA STANKO" } ,
- {"\\u010CABARKAPA TAMARA" } ,
- {"\\u010CABARKAPA TOMA\\u0160" } ,
- {"\\u010CABDARI\\u0106 NIKOLA" } ,
- {"\\u010CABDARI\\u0106 ZORICA" } ,
- {"\\u010CABI NANDOR" } ,
- {"\\u010CABOVI\\u0106 MILAN" } ,
- {"\\u010CABRADI AGNEZIJA" } ,
- {"\\u010CABRADI IVAN" } ,
- {"\\u010CABRADI JELENA" } ,
- {"\\u010CABRADI LJUBICA" } ,
- {"\\u010CABRADI STEVAN" } ,
- {"\\u010CABRDA MARTIN" } ,
- {"\\u010CABRILO BOGDAN" } ,
- {"\\u010CABRILO BRANISLAV" } ,
- {"\\u010CABRILO LAZAR" } ,
- {"\\u010CABRILO LJUBICA" } ,
- {"\\u010CABRILO SPASOJA" } ,
- {"\\u010CADE\\u0160 ZDENKA" } ,
- {"\\u010CADESKI BLAGOJE" } ,
- {"\\u010CADOVSKI VLADIMIR" } ,
- {"\\u010CAGLJEVI\\u0106 TOMA" } ,
- {"\\u010CAGOROVI\\u0106 VLADIMIR" } ,
- {"\\u010CAJA VANKA" } ,
- {"\\u010CAJI\\u0106 BOGOLJUB" } ,
- {"\\u010CAJI\\u0106 BORISLAV" } ,
- {"\\u010CAJI\\u0106 RADOSLAV" } ,
- {"\\u010CAK\\u0160IRAN MILADIN" } ,
- {"\\u010CAKAN EUGEN" } ,
- {"\\u010CAKAN EVGENIJE" } ,
- {"\\u010CAKAN IVAN" } ,
- {"\\u010CAKAN JULIJAN" } ,
- {"\\u010CAKAN MIHAJLO" } ,
- {"\\u010CAKAN STEVAN" } ,
- {"\\u010CAKAN VLADIMIR" } ,
- {"\\u010CAKAN VLADIMIR" } ,
- {"\\u010CAKAN VLADIMIR" } ,
- {"\\u010CAKARA ANA" } ,
- {"\\u010CAKAREVI\\u0106 MOMIR" } ,
- {"\\u010CAKAREVI\\u0106 NEDELJKO" } ,
- {"\\u010CAKI \\u0160ANDOR" } ,
- {"\\u010CAKI AMALIJA" } ,
- {"\\u010CAKI ANDRA\\u0160" } ,
- {"\\u010CAKI LADISLAV" } ,
- {"\\u010CAKI LAJO\\u0160" } ,
- {"\\u010CAKI LASLO" } ,
+ {"\\u010CAKI MIHALJ", {0}},
+ {"\\u010CAKI MIHALJ", {0}},
+ {"\\u010CAKI PIRO\\u0160KA", {0}},
+ {"\\u010CABAI ANDRIJA", {0}},
+ {"\\u010CABAI LAJO\\u0160", {0}},
+ {"\\u010CABAI MARIJA", {0}},
+ {"\\u010CABAI STEVAN", {0}},
+ {"\\u010CABAI STEVAN", {0}},
+ {"\\u010CABARKAPA BRANKO", {0}},
+ {"\\u010CABARKAPA MILENKO", {0}},
+ {"\\u010CABARKAPA MIROSLAV", {0}},
+ {"\\u010CABARKAPA SIMO", {0}},
+ {"\\u010CABARKAPA STANKO", {0}},
+ {"\\u010CABARKAPA TAMARA", {0}},
+ {"\\u010CABARKAPA TOMA\\u0160", {0}},
+ {"\\u010CABDARI\\u0106 NIKOLA", {0}},
+ {"\\u010CABDARI\\u0106 ZORICA", {0}},
+ {"\\u010CABI NANDOR", {0}},
+ {"\\u010CABOVI\\u0106 MILAN", {0}},
+ {"\\u010CABRADI AGNEZIJA", {0}},
+ {"\\u010CABRADI IVAN", {0}},
+ {"\\u010CABRADI JELENA", {0}},
+ {"\\u010CABRADI LJUBICA", {0}},
+ {"\\u010CABRADI STEVAN", {0}},
+ {"\\u010CABRDA MARTIN", {0}},
+ {"\\u010CABRILO BOGDAN", {0}},
+ {"\\u010CABRILO BRANISLAV", {0}},
+ {"\\u010CABRILO LAZAR", {0}},
+ {"\\u010CABRILO LJUBICA", {0}},
+ {"\\u010CABRILO SPASOJA", {0}},
+ {"\\u010CADE\\u0160 ZDENKA", {0}},
+ {"\\u010CADESKI BLAGOJE", {0}},
+ {"\\u010CADOVSKI VLADIMIR", {0}},
+ {"\\u010CAGLJEVI\\u0106 TOMA", {0}},
+ {"\\u010CAGOROVI\\u0106 VLADIMIR", {0}},
+ {"\\u010CAJA VANKA", {0}},
+ {"\\u010CAJI\\u0106 BOGOLJUB", {0}},
+ {"\\u010CAJI\\u0106 BORISLAV", {0}},
+ {"\\u010CAJI\\u0106 RADOSLAV", {0}},
+ {"\\u010CAK\\u0160IRAN MILADIN", {0}},
+ {"\\u010CAKAN EUGEN", {0}},
+ {"\\u010CAKAN EVGENIJE", {0}},
+ {"\\u010CAKAN IVAN", {0}},
+ {"\\u010CAKAN JULIJAN", {0}},
+ {"\\u010CAKAN MIHAJLO", {0}},
+ {"\\u010CAKAN STEVAN", {0}},
+ {"\\u010CAKAN VLADIMIR", {0}},
+ {"\\u010CAKAN VLADIMIR", {0}},
+ {"\\u010CAKAN VLADIMIR", {0}},
+ {"\\u010CAKARA ANA", {0}},
+ {"\\u010CAKAREVI\\u0106 MOMIR", {0}},
+ {"\\u010CAKAREVI\\u0106 NEDELJKO", {0}},
+ {"\\u010CAKI \\u0160ANDOR", {0}},
+ {"\\u010CAKI AMALIJA", {0}},
+ {"\\u010CAKI ANDRA\\u0160", {0}},
+ {"\\u010CAKI LADISLAV", {0}},
+ {"\\u010CAKI LAJO\\u0160", {0}},
+ {"\\u010CAKI LASLO", {0}},
};