WebCore: Swedish search (and other languages as well) is broken while fixing Japanese...
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Oct 2009 23:10:16 +0000 (23:10 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Oct 2009 23:10:16 +0000 (23:10 +0000)
https://bugs.webkit.org/show_bug.cgi?id=30646

Patch by Darin Adler <darin@apple.com> on 2009-10-21
Rolled Japanese tailoring out that was done to fix
https://bugs.webkit.org/show_bug.cgi?id=30437 earlier.
It was overriding the locale-specific tailoring.
We'll land a fix once we figure out how to add the
Japanese tailoring without removing anything.

* editing/TextIterator.cpp: Rolled out r49924.

LayoutTests: Update since we rolled Japanese tailoring out that was done to fix
https://bugs.webkit.org/show_bug.cgi?id=30437 earlier.

Patch by Darin Adler <darin@apple.com> on 2009-10-21
* fast/text/international/japanese-kana-letters-expected.txt: Update
test results to expect failure. We'll land results that expect
success once we re-fix the bug.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@49926 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/text/international/japanese-kana-letters-expected.txt
WebCore/ChangeLog
WebCore/editing/TextIterator.cpp

index f3c74a04d892303b7d867d3361903a7a9caa21c6..1505782ed9e43e568425ebcbbcab8e8bda4a5b53 100644 (file)
@@ -1,3 +1,12 @@
+2009-10-21  Darin Adler  <darin@apple.com>
+
+        Update since we rolled Japanese tailoring out that was done to fix
+        https://bugs.webkit.org/show_bug.cgi?id=30437 earlier.
+
+        * fast/text/international/japanese-kana-letters-expected.txt: Update
+        test results to expect failure. We'll land results that expect
+        success once we re-fix the bug.
+
 2009-10-21  Andrew Scherkus  <scherkus@chromium.org>
 
         Reviewed by Eric Seidel.
 2009-10-21  Andrew Scherkus  <scherkus@chromium.org>
 
         Reviewed by Eric Seidel.
index fc47f5941fd84aaba0dd5965f1ee39a0b7ceb8ee..95d4f0d622016655ed467d2703209daecf19f98a 100644 (file)
@@ -1 +1 @@
-SUCCESS: Found hiragana and katakana correctly.
+FAILURE: Found small hiragana A when searching for hiragana A. Found small katakana A when searching for katakana A. Found halfwidth small katakana A when searching for halfwidth katakana A. Found small hiragana A when searching for katakana A. Found katakana A when searching for halfwidth small katakana A. Found halfwidth katakana A when searching for small hiragana A. Found hiragana Ka when searching for hiragana Ga.
index d8bb534d6ec8ff4d65fa0c6eea229e2f90b80e81..05676b8a22859bfe897f5d46b422585b66b00be5 100644 (file)
@@ -1,3 +1,16 @@
+2009-10-21  Darin Adler  <darin@apple.com>
+
+        Swedish search (and other languages as well) is broken while fixing Japanese search
+        https://bugs.webkit.org/show_bug.cgi?id=30646
+
+        Rolled Japanese tailoring out that was done to fix
+        https://bugs.webkit.org/show_bug.cgi?id=30437 earlier.
+        It was overriding the locale-specific tailoring.
+        We'll land a fix once we figure out how to add the
+        Japanese tailoring without removing anything.
+
+        * editing/TextIterator.cpp: Rolled out r49924.
+
 2009-10-21  Pavel Feldman  <pfeldman@chromium.org>
 
         Not reviewed: chromium build fix - add missing image to gypi.
 2009-10-21  Pavel Feldman  <pfeldman@chromium.org>
 
         Not reviewed: chromium build fix - add missing image to gypi.
index dbeb35c7b42d55b345828eb4aa66deee012ab34a..d36849c012954661377de2be2f25489f9038b03d 100644 (file)
@@ -1432,95 +1432,6 @@ static const size_t minimumSearchBufferSize = 8192;
 static bool searcherInUse;
 #endif
 
 static bool searcherInUse;
 #endif
 
-// Tailored collation rules for Japanese text search.
-// The default Unicode Collation Algorithm is unnatural in Japanese.
-// These rules intend to treat the following characters as different characters.
-//
-// - Small kana letters and normal kana letters
-// - Voiceless letters, voiced letters and semi-voiced letters
-//
-// This is original work built in reference to the following Unicode standard documents.
-//
-// - http://unicode.org/reports/tr10/
-// - http://unicode.org/Public/UCA/latest/allkeys.txt
-//
-static const UChar japaneseKanaCollationRules[] = {
-    '&', 0x3041, '=', 0x30a1, '=', 0xff67, '<', 0x3042,
-    '=', 0x30a2, '=', 0xff71, '<', 0x3043, '=', 0x30a3,
-    '=', 0xff68, '<', 0x3044, '=', 0x30a4, '=', 0xff72,
-    '<', 0x3045, '=', 0x30a5, '=', 0xff69, '<', 0x3046,
-    '=', 0x30a6, '=', 0xff73, '<', 0x3094, '=', 0x30f4,
-    '<', 0x3047, '=', 0x30a7, '=', 0xff6a, '<', 0x3048,
-    '=', 0x30a8, '=', 0xff74, '<', 0x3049, '=', 0x30a9,
-    '=', 0xff6b, '<', 0x304a, '=', 0x30aa, '=', 0xff75,
-    '<', 0x3095, '=', 0x30f5, '<', 0x304b, '=', 0x30ab,
-    '=', 0xff76, '<', 0x304c, '=', 0x30ac, '<', 0x304d,
-    '=', 0x30ad, '=', 0xff77, '<', 0x304e, '=', 0x30ae,
-    '<', 0x304f, '=', 0x30af, '=', 0xff78, '<', 0x3050,
-    '=', 0x30b0, '<', 0x3096, '=', 0x30f6, '<', 0x3051,
-    '=', 0x30b1, '=', 0xff79, '<', 0x3052, '=', 0x30b2,
-    '<', 0x3053, '=', 0x30b3, '=', 0xff7a, '<', 0x3054,
-    '=', 0x30b4, '<', 0x3055, '=', 0x30b5, '=', 0xff7b,
-    '<', 0x3056, '=', 0x30b6, '<', 0x3057, '=', 0x30b7,
-    '=', 0xff7c, '<', 0x3058, '=', 0x30b8, '<', 0x3059,
-    '=', 0x30b9, '=', 0xff7d, '<', 0x305a, '=', 0x30ba,
-    '<', 0x305b, '=', 0x30bb, '=', 0xff7e, '<', 0x305c,
-    '=', 0x30bc, '<', 0x305d, '=', 0x30bd, '=', 0xff7f,
-    '<', 0x305e, '=', 0x30be, '<', 0x305f, '=', 0x30bf,
-    '=', 0xff80, '<', 0x3060, '=', 0x30c0, '<', 0x3061,
-    '=', 0x30c1, '=', 0xff81, '<', 0x3062, '=', 0x30c2,
-    '<', 0x3063, '=', 0x30c3, '=', 0xff6f, '<', 0x3064,
-    '=', 0x30c4, '=', 0xff82, '<', 0x3065, '=', 0x30c5,
-    '<', 0x3066, '=', 0x30c6, '=', 0xff83, '<', 0x3067,
-    '=', 0x30c7, '<', 0x3068, '=', 0x30c8, '=', 0xff84,
-    '<', 0x3069, '=', 0x30c9, '<', 0x306a, '=', 0x30ca,
-    '=', 0xff85, '<', 0x306b, '=', 0x30cb, '=', 0xff86,
-    '<', 0x306c, '=', 0x30cc, '=', 0xff87, '<', 0x306d,
-    '=', 0x30cd, '=', 0xff88, '<', 0x306e, '=', 0x30ce,
-    '=', 0xff89, '<', 0x306f, '=', 0x30cf, '=', 0xff8a,
-    '<', 0x3070, '=', 0x30d0, '<', 0x3071, '=', 0x30d1,
-    '<', 0x3072, '=', 0x30d2, '=', 0xff8b, '<', 0x3073,
-    '=', 0x30d3, '<', 0x3074, '=', 0x30d4, '<', 0x3075,
-    '=', 0x30d5, '=', 0xff8c, '<', 0x3076, '=', 0x30d6,
-    '<', 0x3077, '=', 0x30d7, '<', 0x3078, '=', 0x30d8,
-    '=', 0xff8d, '<', 0x3079, '=', 0x30d9, '<', 0x307a,
-    '=', 0x30da, '<', 0x307b, '=', 0x30db, '=', 0xff8e,
-    '<', 0x307c, '=', 0x30dc, '<', 0x307d, '=', 0x30dd,
-    '<', 0x307e, '=', 0x30de, '=', 0xff8f, '<', 0x307f,
-    '=', 0x30df, '=', 0xff90, '<', 0x3080, '=', 0x30e0,
-    '=', 0xff91, '<', 0x3081, '=', 0x30e1, '=', 0xff92,
-    '<', 0x3082, '=', 0x30e2, '=', 0xff93, '<', 0x3083,
-    '=', 0x30e3, '=', 0xff6c, '<', 0x3084, '=', 0x30e4,
-    '=', 0xff94, '<', 0x3085, '=', 0x30e5, '=', 0xff6d,
-    '<', 0x3086, '=', 0x30e6, '=', 0xff95, '<', 0x3087,
-    '=', 0x30e7, '=', 0xff6e, '<', 0x3088, '=', 0x30e8,
-    '=', 0xff96, '<', 0x3089, '=', 0x30e9, '=', 0xff97,
-    '<', 0x308a, '=', 0x30ea, '=', 0xff98, '<', 0x308b,
-    '=', 0x30eb, '=', 0xff99, '<', 0x308c, '=', 0x30ec,
-    '=', 0xff9a, '<', 0x308d, '=', 0x30ed, '=', 0xff9b,
-    '<', 0x308e, '=', 0x30ee, '<', 0x308f, '=', 0x30ef,
-    '=', 0xff9c, '<', 0x30f7, '<', 0x3090, '=', 0x30f0,
-    '<', 0x30f8, '<', 0x3091, '=', 0x30f1, '<', 0x3092,
-    '=', 0x30f2, '=', 0xff66, '<', 0x3093, '=', 0x30f3,
-    '=', 0xff9d, 0
-};
-
-static UCollator* createCollator()
-{
-    // Set tailored collation rules to fix Japanese text search.
-    // See the comments before japaneseKanaCollationRules for details.
-    UErrorCode status = U_ZERO_ERROR;
-    UCollator* collator = ucol_openRules(japaneseKanaCollationRules, -1, UCOL_DEFAULT, UCOL_DEFAULT_STRENGTH, 0, &status);
-    ASSERT(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING || status == U_USING_DEFAULT_WARNING);
-    return collator;
-}
-
-static UCollator* collator()
-{
-    static UCollator* collator = createCollator();
-    return collator;
-}
-    
 static UStringSearch* createSearcher()
 {
     // Provide a non-empty pattern and non-empty text so usearch_open will not fail,
 static UStringSearch* createSearcher()
 {
     // Provide a non-empty pattern and non-empty text so usearch_open will not fail,
@@ -1529,10 +1440,6 @@ static UStringSearch* createSearcher()
     UErrorCode status = U_ZERO_ERROR;
     UStringSearch* searcher = usearch_open(&newlineCharacter, 1, &newlineCharacter, 1, currentSearchLocaleID(), 0, &status);
     ASSERT(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING || status == U_USING_DEFAULT_WARNING);
     UErrorCode status = U_ZERO_ERROR;
     UStringSearch* searcher = usearch_open(&newlineCharacter, 1, &newlineCharacter, 1, currentSearchLocaleID(), 0, &status);
     ASSERT(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING || status == U_USING_DEFAULT_WARNING);
-    status = U_ZERO_ERROR;
-    usearch_setCollator(searcher, collator(), &status);
-    ASSERT(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING || status == U_USING_DEFAULT_WARNING);
-    usearch_reset(searcher);
     return searcher;
 }
 
     return searcher;
 }