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

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

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

* commit '25eb04642cb5a72f59a274bbfc92f4f65c6c343e':
  Normalize output from aapt d
parents 695a059c 73431999
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1983,6 +1983,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
@@ -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");
            }