summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/text/util/Rfc822Tokenizer.java4
-rw-r--r--core/tests/coretests/src/android/text/TextUtilsTest.java17
2 files changed, 19 insertions, 2 deletions
diff --git a/core/java/android/text/util/Rfc822Tokenizer.java b/core/java/android/text/util/Rfc822Tokenizer.java
index 69cf93c..68334e4 100644
--- a/core/java/android/text/util/Rfc822Tokenizer.java
+++ b/core/java/android/text/util/Rfc822Tokenizer.java
@@ -256,7 +256,7 @@ public class Rfc822Tokenizer implements MultiAutoCompleteTextView.Tokenizer {
if (c == '"') {
i++;
break;
- } else if (c == '\\') {
+ } else if (c == '\\' && i + 1 < len) {
i += 2;
} else {
i++;
@@ -275,7 +275,7 @@ public class Rfc822Tokenizer implements MultiAutoCompleteTextView.Tokenizer {
} else if (c == '(') {
level++;
i++;
- } else if (c == '\\') {
+ } else if (c == '\\' && i + 1 < len) {
i += 2;
} else {
i++;
diff --git a/core/tests/coretests/src/android/text/TextUtilsTest.java b/core/tests/coretests/src/android/text/TextUtilsTest.java
index e111662..79d57f1 100644
--- a/core/tests/coretests/src/android/text/TextUtilsTest.java
+++ b/core/tests/coretests/src/android/text/TextUtilsTest.java
@@ -255,6 +255,23 @@ public class TextUtilsTest extends TestCase {
assertEquals("Foo Bar", tokens[0].getAddress());
}
+ @SmallTest
+ public void testRfc822FindToken() {
+ Rfc822Tokenizer tokenizer = new Rfc822Tokenizer();
+ // 0 1 2 3 4
+ // 0 1234 56789012345678901234 5678 90123456789012345
+ String address = "\"Foo\" <foo@google.com>, \"Bar\" <bar@google.com>";
+ assertEquals(0, tokenizer.findTokenStart(address, 21));
+ assertEquals(22, tokenizer.findTokenEnd(address, 21));
+ assertEquals(24, tokenizer.findTokenStart(address, 25));
+ assertEquals(46, tokenizer.findTokenEnd(address, 25));
+ }
+
+ @SmallTest
+ public void testRfc822FindTokenWithError() {
+ assertEquals(9, new Rfc822Tokenizer().findTokenEnd("\"Foo Bar\\", 0));
+ }
+
@LargeTest
public void testEllipsize() {
CharSequence s1 = "The quick brown fox jumps over \u00FEhe lazy dog.";