Implemented new incremental normalization in backwards iteration.

X-SVN-Rev: 4524
This commit is contained in:
Syn Wee Quek 2001-04-20 22:29:53 +00:00
parent 2b0da7cddd
commit 34372f991b
3 changed files with 745 additions and 534 deletions

File diff suppressed because it is too large Load Diff

View File

@ -116,10 +116,12 @@ struct used internally in getSpecial*CE.
data similar to collIterate.
*/
struct collIterateState {
UChar *pos; /* This is position in the string. Can be to original or writable buf */
UChar *fcdPosition; /* Position in the original string to continue FCD check from. */
uint8_t flags;
uint8_t origFlags;
UChar *pos; /* This is position in the string. Can be to original or writable buf */
UChar *fcdPosition; /* Position in the original string to continue FCD check from. */
long bufferaddress; /* address of the normalization buffer */
uint32_t buffersize;
uint8_t flags;
uint8_t origFlags;
};
U_CAPI void init_collIterate(const UCollator *collator, const UChar *sourceString, int32_t sourceLen, collIterate *s);

View File

@ -142,7 +142,7 @@ ucol_previous(UCollationElements *elems,
result = ucol_getPrevCE(elems->iteratordata_.coll, &(elems->iteratordata_),
status);
if (result == UCOL_NO_MORE_CES) {
result = UCOL_NULLORDER;
}
@ -169,7 +169,7 @@ ucol_setText( UCollationElements *elems,
if (U_FAILURE(*status)) {
return;
}
/* gets the correct length of the null-terminated string */
if (textLength == -1) {
textLength = u_strlen(text);