summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@android.com>2011-01-29 23:04:50 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-01-29 23:04:50 -0800
commita1f5e82f37c77af7b1d630b5bca715d1742f1234 (patch)
treec7b1d7c8c18f5d74370558cbcf48ca6747661096 /libs
parent71bb59f9e6799083830077dbb7e0f1effdd3faf7 (diff)
parenta30063d80c08434ac3c7316f338c6d54110449ab (diff)
downloadframeworks_base-a1f5e82f37c77af7b1d630b5bca715d1742f1234.zip
frameworks_base-a1f5e82f37c77af7b1d630b5bca715d1742f1234.tar.gz
frameworks_base-a1f5e82f37c77af7b1d630b5bca715d1742f1234.tar.bz2
am a30063d8: am 25eb0464: Merge "Normalize output from aapt d"
* commit 'a30063d80c08434ac3c7316f338c6d54110449ab': Normalize output from aapt d
Diffstat (limited to 'libs')
-rw-r--r--libs/utils/ResourceTypes.cpp36
1 files changed, 34 insertions, 2 deletions
diff --git a/libs/utils/ResourceTypes.cpp b/libs/utils/ResourceTypes.cpp
index 8345cc3..7fb7ae3 100644
--- a/libs/utils/ResourceTypes.cpp
+++ b/libs/utils/ResourceTypes.cpp
@@ -4038,6 +4038,38 @@ void print_complex(uint32_t complex, bool isFraction)
}
}
+// Normalize a string for output
+String8 ResTable::normalizeForOutput( const char *input )
+{
+ String8 ret;
+ char buff[2];
+ buff[1] = '\0';
+
+ while (*input != '\0') {
+ switch (*input) {
+ // All interesting characters are in the ASCII zone, so we are making our own lives
+ // easier by scanning the string one byte at a time.
+ case '\\':
+ ret += "\\\\";
+ break;
+ case '\n':
+ ret += "\\n";
+ break;
+ case '"':
+ ret += "\\\"";
+ break;
+ default:
+ buff[0] = *input;
+ ret += buff;
+ break;
+ }
+
+ input++;
+ }
+
+ return ret;
+}
+
void ResTable::print_value(const Package* pkg, const Res_value& value) const
{
if (value.dataType == Res_value::TYPE_NULL) {
@@ -4051,13 +4083,13 @@ void ResTable::print_value(const Package* pkg, const Res_value& value) const
const char* str8 = pkg->header->values.string8At(
value.data, &len);
if (str8 != NULL) {
- printf("(string8) \"%s\"\n", str8);
+ printf("(string8) \"%s\"\n", normalizeForOutput(str8).string());
} else {
const char16_t* str16 = pkg->header->values.stringAt(
value.data, &len);
if (str16 != NULL) {
printf("(string16) \"%s\"\n",
- String8(str16, len).string());
+ normalizeForOutput(String8(str16, len).string()).string());
} else {
printf("(string) null\n");
}