From 1d533a66e8eba6ae80a97ea5ea81d7d53fcca5d3 Mon Sep 17 00:00:00 2001 From: Markus Scherer Date: Wed, 9 Jul 2014 23:36:43 +0000 Subject: [PATCH] ICU-10998 collation reorder others=Zzzz, recognize only others = reset X-SVN-Rev: 36019 --- .../icu/impl/coll/CollationRuleParser.java | 12 ++++----- .../src/com/ibm/icu/text/Collator.java | 3 +++ .../com/ibm/icu/text/RuleBasedCollator.java | 7 ++++-- .../com/ibm/icu/dev/data/collationtest.txt | 25 +++++++++++++++++++ .../dev/test/collator/CollationMiscTest.java | 7 ++++++ .../icu/dev/test/collator/CollationTest.java | 12 ++++++--- 6 files changed, 53 insertions(+), 13 deletions(-) diff --git a/icu4j/main/classes/collate/src/com/ibm/icu/impl/coll/CollationRuleParser.java b/icu4j/main/classes/collate/src/com/ibm/icu/impl/coll/CollationRuleParser.java index 9ebbcb26417..cf2681648d3 100644 --- a/icu4j/main/classes/collate/src/com/ibm/icu/impl/coll/CollationRuleParser.java +++ b/icu4j/main/classes/collate/src/com/ibm/icu/impl/coll/CollationRuleParser.java @@ -719,8 +719,7 @@ public final class CollationRuleParser { i = limit; } int length = reorderCodes.size(); - if(length == 1 && reorderCodes.get(0) == Collator.ReorderCodes.DEFAULT) { - // The root collator does not have a reordering, by definition. + if(length == 1 && reorderCodes.get(0) == Collator.ReorderCodes.NONE) { settings.resetReordering(); return; } @@ -739,8 +738,7 @@ public final class CollationRuleParser { /** * Gets a script or reorder code from its string representation. * @return the script/reorder code, or - * -1==Collator.ReorderCodes.REORDER_CODE_DEFAULT, or - * -2 if not recognized + * -1 if not recognized */ public static int getReorderCode(String word) { for(int i = 0; i < gSpecialReorderCodes.length; ++i) { @@ -756,10 +754,10 @@ public final class CollationRuleParser { } catch (IllegalIcuArgumentException e) { // fall through } - if(word.equalsIgnoreCase("default")) { - return Collator.ReorderCodes.DEFAULT; + if(word.equalsIgnoreCase("others")) { + return Collator.ReorderCodes.OTHERS; // same as Zzzz = USCRIPT_UNKNOWN } - return -2; + return -1; } private static int getOnOffValue(String s) { diff --git a/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java b/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java index 6c8dc49dde9..03e7765793f 100644 --- a/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java +++ b/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java @@ -644,6 +644,9 @@ public abstract class Collator implements Comparator, Freezable