- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
102 lines
3.3 KiB
Java
102 lines
3.3 KiB
Java
package com.google.protobuf;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public final class TextFormatEscaper {
|
|
|
|
public interface ByteSequence {
|
|
byte byteAt(int i);
|
|
|
|
int size();
|
|
}
|
|
|
|
private TextFormatEscaper() {
|
|
}
|
|
|
|
public static String escapeBytes(ByteSequence byteSequence) {
|
|
StringBuilder sb = new StringBuilder(byteSequence.size());
|
|
for (int i = 0; i < byteSequence.size(); i++) {
|
|
byte byteAt = byteSequence.byteAt(i);
|
|
if (byteAt == 34) {
|
|
sb.append("\\\"");
|
|
} else if (byteAt == 39) {
|
|
sb.append("\\'");
|
|
} else if (byteAt != 92) {
|
|
switch (byteAt) {
|
|
case 7:
|
|
sb.append("\\a");
|
|
break;
|
|
case 8:
|
|
sb.append("\\b");
|
|
break;
|
|
case 9:
|
|
sb.append("\\t");
|
|
break;
|
|
case 10:
|
|
sb.append("\\n");
|
|
break;
|
|
case 11:
|
|
sb.append("\\v");
|
|
break;
|
|
case 12:
|
|
sb.append("\\f");
|
|
break;
|
|
case 13:
|
|
sb.append("\\r");
|
|
break;
|
|
default:
|
|
if (byteAt >= 32 && byteAt <= 126) {
|
|
sb.append((char) byteAt);
|
|
break;
|
|
} else {
|
|
sb.append('\\');
|
|
sb.append((char) (((byteAt >>> 6) & 3) + 48));
|
|
sb.append((char) (((byteAt >>> 3) & 7) + 48));
|
|
sb.append((char) ((byteAt & 7) + 48));
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
} else {
|
|
sb.append("\\\\");
|
|
}
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
public static String escapeBytes(final ByteString byteString) {
|
|
return escapeBytes(new ByteSequence() { // from class: com.google.protobuf.TextFormatEscaper.1
|
|
@Override // com.google.protobuf.TextFormatEscaper.ByteSequence
|
|
public int size() {
|
|
return ByteString.this.size();
|
|
}
|
|
|
|
@Override // com.google.protobuf.TextFormatEscaper.ByteSequence
|
|
public byte byteAt(int i) {
|
|
return ByteString.this.byteAt(i);
|
|
}
|
|
});
|
|
}
|
|
|
|
public static String escapeBytes(final byte[] bArr) {
|
|
return escapeBytes(new ByteSequence() { // from class: com.google.protobuf.TextFormatEscaper.2
|
|
@Override // com.google.protobuf.TextFormatEscaper.ByteSequence
|
|
public int size() {
|
|
return bArr.length;
|
|
}
|
|
|
|
@Override // com.google.protobuf.TextFormatEscaper.ByteSequence
|
|
public byte byteAt(int i) {
|
|
return bArr[i];
|
|
}
|
|
});
|
|
}
|
|
|
|
public static String escapeText(String str) {
|
|
return escapeBytes(ByteString.copyFromUtf8(str));
|
|
}
|
|
|
|
public static String escapeDoubleQuotesAndBackslashes(String str) {
|
|
return str.replace("\\", "\\\\").replace("\"", "\\\"");
|
|
}
|
|
}
|