summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorVictoria Lease <violets@google.com>2013-11-01 13:30:51 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-11-01 13:30:51 -0700
commit24aecc3fb609ce999a7fef7a610891d5a32eb92c (patch)
treec1805e3f7c2ea5912ff28466a4469af9bea3fb42 /core/java
parentd35e94a3cbd27f08430c593930c989a36f17a833 (diff)
parent24a24b27903785dedb507b11583b70975fe9f8e4 (diff)
am 24a24b27: am ee4c8464: Merge "Handle surrogate pairs in Html.toHtml()" into klp-dev
* commit '24a24b27903785dedb507b11583b70975fe9f8e4': Handle surrogate pairs in Html.toHtml()
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/text/Html.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/text/Html.java b/core/java/android/text/Html.java
index 160c630bf527..f839d52b0126 100644
--- a/core/java/android/text/Html.java
+++ b/core/java/android/text/Html.java
@@ -391,6 +391,15 @@ public class Html {
out.append("&gt;");
} else if (c == '&') {
out.append("&amp;");
+ } else if (c >= 0xD800 && c <= 0xDFFF) {
+ if (c < 0xDC00 && i + 1 < end) {
+ char d = text.charAt(i + 1);
+ if (d >= 0xDC00 && d <= 0xDFFF) {
+ i++;
+ int codepoint = 0x010000 | (int) c - 0xD800 << 10 | (int) d - 0xDC00;
+ out.append("&#").append(codepoint).append(";");
+ }
+ }
} else if (c > 0x7E || c < ' ') {
out.append("&#").append((int) c).append(";");
} else if (c == ' ') {