Do not bidi-isolate all-ASCII strings.

Fixes #11630
This commit is contained in:
Greyson Parrelli
2022-03-28 11:36:10 -04:00
parent 231248d20a
commit 7611c64493

View File

@@ -12,6 +12,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Set;
import java.util.regex.Pattern;
public final class StringUtil {
@@ -22,6 +23,8 @@ public final class StringUtil {
'\u2800'); // braille blank
private static final Pattern ALL_ASCII_PATTERN = Pattern.compile("^[\\x00-\\x7F]*$");
private static final class Bidi {
/** Override text direction */
private static final Set<Integer> OVERRIDES = SetUtil.newHashSet("\u202a".codePointAt(0), /* LRE */
@@ -217,6 +220,10 @@ public final class StringUtil {
return text;
}
if (ALL_ASCII_PATTERN.matcher(text).matches()) {
return text;
}
int overrideCount = 0;
int overrideCloseCount = 0;
int isolateCount = 0;