diff options
author | Dianne Hackborn <hackbod@android.com> | 2011-01-29 23:04:50 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-01-29 23:04:50 -0800 |
commit | a1f5e82f37c77af7b1d630b5bca715d1742f1234 (patch) | |
tree | c7b1d7c8c18f5d74370558cbcf48ca6747661096 /libs | |
parent | 71bb59f9e6799083830077dbb7e0f1effdd3faf7 (diff) | |
parent | a30063d80c08434ac3c7316f338c6d54110449ab (diff) | |
download | frameworks_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.cpp | 36 |
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"); } |