]> granicus.if.org Git - icu/commitdiff
ICU-13332 CaseMapImpl.isFollowedByCasedLetter() must increment the string index while...
authorMarkus Scherer <markus.icu@gmail.com>
Thu, 24 Aug 2017 20:36:19 +0000 (20:36 +0000)
committerMarkus Scherer <markus.icu@gmail.com>
Thu, 24 Aug 2017 20:36:19 +0000 (20:36 +0000)
X-SVN-Rev: 40353

icu4c/source/test/intltest/strcase.cpp
icu4j/main/classes/core/src/com/ibm/icu/impl/CaseMapImpl.java
icu4j/main/tests/core/src/com/ibm/icu/dev/test/lang/UCharacterCaseTest.java

index 28c93e1ec1efab54e19c471b89849006a48e600c..2cf3ecf13e1ced4edf9a4df422b044299f84d491 100644 (file)
@@ -799,6 +799,7 @@ StringCaseTest::TestGreekUpper() {
     assertGreekUpper(u"Το ένα ή το άλλο.", u"ΤΟ ΕΝΑ Ή ΤΟ ΑΛΛΟ.");
     // http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/
     assertGreekUpper(u"ρωμέικα", u"ΡΩΜΕΪΚΑ");
+    assertGreekUpper(u"ή.", u"Ή.");
 }
 
 void
index b59b54fdc33b19d2587a50dffef8e0f55a75266e..4963bb7f9e83a2edc7214f17111c9d4972785a49 100644 (file)
@@ -1038,6 +1038,7 @@ public final class CaseMapImpl {
                 int type = UCaseProps.INSTANCE.getTypeOrIgnorable(c);
                 if ((type & UCaseProps.IGNORABLE) != 0) {
                     // Case-ignorable, continue with the loop.
+                    i += Character.charCount(c);
                 } else if (type != UCaseProps.NONE) {
                     return true;  // Followed by cased letter.
                 } else {
index a0c3dee246cd13a1ed44b3011f528a3e42aa3722..79f4139a39521d40453c27278582ae763dbbe94e 100644 (file)
@@ -766,6 +766,7 @@ public final class UCharacterCaseTest extends TestFmwk
         assertGreekUpper("Το ένα ή το άλλο.", "ΤΟ ΕΝΑ Ή ΤΟ ΑΛΛΟ.");
         // http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/
         assertGreekUpper("ρωμέικα", "ΡΩΜΕΪΚΑ");
+        assertGreekUpper("ή.", "Ή.");
     }
 
     private static final class EditChange {