From 4187ad0621dd2b3a9b8e90f7e1ddf6f083f9406c Mon Sep 17 00:00:00 2001 From: Alan Liu Date: Thu, 8 Mar 2001 21:20:10 +0000 Subject: [PATCH] ICU-872 Fix another round-trip problem X-SVN-Rev: 3977 --- icu4c/data/ljamo.txt | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/icu4c/data/ljamo.txt b/icu4c/data/ljamo.txt index 3da2050ff9a..69bca99cfdc 100644 --- a/icu4c/data/ljamo.txt +++ b/icu4c/data/ljamo.txt @@ -5,11 +5,11 @@ //-------------------------------------------------------------------- // THIS IS A MACHINE-GENERATED FILE // Tool: dumpICUrules.bat -// Source: /icu4j/src/com/ibm/text/resources/Transliterator_Latin_Jamo.utf8.txt -// Date: Wed Feb 28 14:45:49 2001 +// Source: \icu4j\src\com\ibm\text\resources/Transliterator_Latin_Jamo.utf8.txt +// Date: Thu Mar 8 12:27:24 2001 //-------------------------------------------------------------------- -// Latin-Jamo +// Latin_Jamo ljamo { Rule { @@ -209,20 +209,23 @@ ljamo { // "a" by itself and "e" by itself are vowels, then we want to map A E // to "a-e" so as not to round trip to AE. However, in the text Ki EO // IEUNG E we don't need to map to "keo-e". "keoe" suffices. For -// vowels of the form "aei", in theory both "ae" + "i" and "a" + "ei" -// must be tested, but in practice only the former occurs. +// vowels of the form "aei", both "ae" + "i" and "a" + "ei" must be +// tested. NOTE: These rules used to have a left context of +// $latinInitial instead of [^$latinMedial]. The problem with this is +// sequences where an initial IEUNG is transliterated away: +// (IEUNG)(A)(IEUNG)(EO) => aeo => (IEUNG)(AE)(IEUNG)(O) - "'-' < $latinInitial [y w] e {} [$O $OE];" - "'-' < $latinInitial e {} [$O $OE $U];" - "'-' < $latinInitial [o a] {} [$E $EO $EU];" - "'-' < $latinInitial [w y] a {} [$E $EO $EU];" + "'-' < [^$latinMedial] [y w] e {} [$O $OE];" + "'-' < [^$latinMedial] e {} [$O $OE $U];" + "'-' < [^$latinMedial] [o a] {} [$E $EO $EU];" + "'-' < [^$latinMedial] [w y] a {} [$E $EO $EU];" // Similar to the above, but with an intervening $IEUNG. - "'-' < $latinInitial [y w] e {} $IEUNG [$O $OE];" - "'-' < $latinInitial e {} $IEUNG [$O $OE $U];" - "'-' < $latinInitial [o a] {} $IEUNG [$E $EO $EU];" - "'-' < $latinInitial [w y] a {} $IEUNG [$E $EO $EU];" + "'-' < [^$latinMedial] [y w] e {} $IEUNG [$O $OE];" + "'-' < [^$latinMedial] e {} $IEUNG [$O $OE $U];" + "'-' < [^$latinMedial] [o a] {} $IEUNG [$E $EO $EU];" + "'-' < [^$latinMedial] [w y] a {} $IEUNG [$E $EO $EU];" // Single finals followed by IEUNG. The jamo sequence A Xf IEUNG E, // where Xi also exists, must be transliterated as "ax-e" to prevent