summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android_icu4j/src/main/java/android/icu/impl/CaseMapImpl.java1
-rw-r--r--android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java1
-rw-r--r--icu4c/source/test/intltest/strcase.cpp1
-rw-r--r--icu4j/main/classes/core/src/com/ibm/icu/impl/CaseMapImpl.java1
-rw-r--r--icu4j/main/tests/core/src/com/ibm/icu/dev/test/lang/UCharacterCaseTest.java1
5 files changed, 5 insertions, 0 deletions
diff --git a/android_icu4j/src/main/java/android/icu/impl/CaseMapImpl.java b/android_icu4j/src/main/java/android/icu/impl/CaseMapImpl.java
index 97dddc76a..3b6bbcc53 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CaseMapImpl.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CaseMapImpl.java
@@ -856,6 +856,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 {
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java
index b0728633a..731cdb692 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/lang/UCharacterCaseTest.java
@@ -709,6 +709,7 @@ public final class UCharacterCaseTest extends TestFmwk
assertGreekUpper("Το ένα ή το άλλο.", "ΤΟ ΕΝΑ Ή ΤΟ ΑΛΛΟ.");
// http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/
assertGreekUpper("ρωμέικα", "ΡΩΜΕΪΚΑ");
+ assertGreekUpper("ή.", "Ή.");
}
private static final class EditChange {
diff --git a/icu4c/source/test/intltest/strcase.cpp b/icu4c/source/test/intltest/strcase.cpp
index 7054b7f1e..e0f64c945 100644
--- a/icu4c/source/test/intltest/strcase.cpp
+++ b/icu4c/source/test/intltest/strcase.cpp
@@ -747,6 +747,7 @@ StringCaseTest::TestGreekUpper() {
// http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/
assertGreekUpper("\\u03C1\\u03C9\\u03BC\\u03AD\\u03B9\\u03BA\\u03B1",
"\\u03A1\\u03A9\\u039C\\u0395\\u03AA\\u039A\\u0391");
+ assertGreekUpper("\\u03AE.", "\\u0397\\u0301.");
}
void
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/impl/CaseMapImpl.java b/icu4j/main/classes/core/src/com/ibm/icu/impl/CaseMapImpl.java
index f28e60ed5..1b2e8b790 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/impl/CaseMapImpl.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/impl/CaseMapImpl.java
@@ -852,6 +852,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 {
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/lang/UCharacterCaseTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/lang/UCharacterCaseTest.java
index 6f8a67983..217078842 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/lang/UCharacterCaseTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/lang/UCharacterCaseTest.java
@@ -708,6 +708,7 @@ public final class UCharacterCaseTest extends TestFmwk
assertGreekUpper("Το ένα ή το άλλο.", "ΤΟ ΕΝΑ Ή ΤΟ ΑΛΛΟ.");
// http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/
assertGreekUpper("ρωμέικα", "ΡΩΜΕΪΚΑ");
+ assertGreekUpper("ή.", "Ή.");
}
private static final class EditChange {