ICU-871 fixed ignorable skipping bug

X-SVN-Rev: 13696
This commit is contained in:
Syn Wee Quek 2003-11-12 21:03:47 +00:00
parent 7b219d0761
commit 533bb04fe4
2 changed files with 37 additions and 0 deletions

View File

@ -1876,4 +1876,30 @@ public class CollationMiscTest extends TestFmwk{
}
}
}
public void Test3249()
{
String rule = "&x < a &z < a";
try {
RuleBasedCollator coll = new RuleBasedCollator(rule);
} catch (Exception e) {
errln("Error creating RuleBasedCollator with " + rule + " failed");
}
}
public void TestTibetanConformance()
{
String test[] = {"\u0FB2\u0591\u0F71\u0061", "\u0FB2\u0F71\u0061"};
try {
Collator coll = Collator.getInstance();
coll.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
if (coll.compare(test[0], test[1]) != 0) {
errln("Tibetan comparison error");
}
CollationTest.doTest(this, (RuleBasedCollator)coll,
test[0], test[1], 0);
} catch (Exception e) {
errln("Error creating UCA collator");
}
}
}

View File

@ -1835,6 +1835,15 @@ public final class CollationElementIterator
}
break;
}
if (collator.m_contractionCE_[entryoffset] != CE_NOT_FOUND_
&& !wasIgnorable) {
// there are further contractions to be performed, so we store
// the so-far completed ce, so that if we fail in the next
// round we just return this one.
entryce = collator.m_contractionCE_[entryoffset];
backupInternalState(m_utilSpecialBackUp_);
}
// get the discontiguos maximum combining class
byte maxCC = (byte)(collator.m_contractionIndex_[offset] & 0xFF);
@ -1941,6 +1950,7 @@ public final class CollationElementIterator
}
// ccontinue looping to check for the remaining contraction.
/***
if (collator.m_contractionCE_[entryoffset] != CE_NOT_FOUND_) {
// there are further contractions to be performed, so we store
// the so-far completed ce, so that if we fail in the next
@ -1954,6 +1964,7 @@ public final class CollationElementIterator
m_utilSpecialBackUp_.m_offset_ --;
}
}
***/
}
return ce;
}