Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 371de969 authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android Git Automerger
Browse files

am a1f5e82f: am a30063d8: am 25eb0464: Merge "Normalize output from aapt d"

* commit 'a1f5e82f':
  Normalize output from aapt d
parents bda99568 a1f5e82f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1985,6 +1985,7 @@ public:

#ifndef HAVE_ANDROID_OS
    void print(bool inclValues) const;
    static String8 normalizeForOutput(const char* input);
#endif

private:
+34 −2
Original line number Diff line number Diff line
@@ -4141,6 +4141,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) {
@@ -4154,13 +4186,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");
            }
+4 −2
Original line number Diff line number Diff line
@@ -451,13 +451,15 @@ void printXMLBlock(ResXMLTree* block)
                    printf("=?0x%x", (int)value.data);
                } else if (value.dataType == Res_value::TYPE_STRING) {
                    printf("=\"%s\"",
                           String8(block->getAttributeStringValue(i, &len)).string());
                            ResTable::normalizeForOutput(String8(block->getAttributeStringValue(i,
                                        &len)).string()).string());
                } else {
                    printf("=(type 0x%x)0x%x", (int)value.dataType, (int)value.data);
                }
                const char16_t* val = block->getAttributeStringValue(i, &len);
                if (val != NULL) {
                    printf(" (Raw: \"%s\")", String8(val).string());
                    printf(" (Raw: \"%s\")", ResTable::normalizeForOutput(String8(val).string()).
                            string());
                }
                printf("\n");
            }