Skip to content

Commit 2ed7204

Browse files
bradfitzAndroid Code Review
authored andcommitted
Merge "Always return a valid index from Rfc822Tokenizer.findTokenEnd()"
2 parents e558a00 + 114f98a commit 2ed7204

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

core/java/android/text/util/Rfc822Tokenizer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ public int findTokenEnd(CharSequence text, int cursor) {
256256
if (c == '"') {
257257
i++;
258258
break;
259-
} else if (c == '\\') {
259+
} else if (c == '\\' && i + 1 < len) {
260260
i += 2;
261261
} else {
262262
i++;
@@ -275,7 +275,7 @@ public int findTokenEnd(CharSequence text, int cursor) {
275275
} else if (c == '(') {
276276
level++;
277277
i++;
278-
} else if (c == '\\') {
278+
} else if (c == '\\' && i + 1 < len) {
279279
i += 2;
280280
} else {
281281
i++;

core/tests/coretests/src/android/text/TextUtilsTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,23 @@ public void testRfc822TokenizeItemWithError() {
255255
assertEquals("Foo Bar", tokens[0].getAddress());
256256
}
257257

258+
@SmallTest
259+
public void testRfc822FindToken() {
260+
Rfc822Tokenizer tokenizer = new Rfc822Tokenizer();
261+
// 0 1 2 3 4
262+
// 0 1234 56789012345678901234 5678 90123456789012345
263+
String address = "\"Foo\" <foo@google.com>, \"Bar\" <bar@google.com>";
264+
assertEquals(0, tokenizer.findTokenStart(address, 21));
265+
assertEquals(22, tokenizer.findTokenEnd(address, 21));
266+
assertEquals(24, tokenizer.findTokenStart(address, 25));
267+
assertEquals(46, tokenizer.findTokenEnd(address, 25));
268+
}
269+
270+
@SmallTest
271+
public void testRfc822FindTokenWithError() {
272+
assertEquals(9, new Rfc822Tokenizer().findTokenEnd("\"Foo Bar\\", 0));
273+
}
274+
258275
@LargeTest
259276
public void testEllipsize() {
260277
CharSequence s1 = "The quick brown fox jumps over \u00FEhe lazy dog.";

0 commit comments

Comments
 (0)