]> git.saurik.com Git - android/aapt.git/commitdiff
am bcf2adeb: Merge "aapt: Allow raw "%" in unformatted string-arrays"
authorDianne Hackborn <hackbod@android.com>
Sun, 23 Jan 2011 20:57:33 +0000 (12:57 -0800)
committerAndroid Git Automerger <android-git-automerger@android.com>
Sun, 23 Jan 2011 20:57:33 +0000 (12:57 -0800)
* commit 'bcf2adeb10c41becec3baa2bcb8de9212272399a':
  aapt: Allow raw "%" in unformatted string-arrays

ResourceTable.cpp

index fc576a67f10d383d5ef6ffa8ba3e469979f10288..818c3c64cdb67033ad817b5b74ec01d4b3078973 100644 (file)
@@ -1322,6 +1322,22 @@ status_t compileResourceFile(Bundle* bundle,
                     }
                 }
             } else if (strcmp16(block.getElementName(&len), string_array16.string()) == 0) {
+                // Check whether these strings need valid formats.
+                // (simplified form of what string16 does above)
+                size_t n = block.getAttributeCount();
+                for (size_t i = 0; i < n; i++) {
+                    size_t length;
+                    const uint16_t* attr = block.getAttributeName(i, &length);
+                    if (strcmp16(attr, translatable16.string()) == 0
+                            || strcmp16(attr, formatted16.string()) == 0) {
+                        const uint16_t* value = block.getAttributeStringValue(i, &length);
+                        if (strcmp16(value, false16.string()) == 0) {
+                            curIsFormatted = false;
+                            break;
+                        }
+                    }
+                }
+
                 curTag = &string_array16;
                 curType = array16;
                 curFormat = ResTable_map::TYPE_REFERENCE|ResTable_map::TYPE_STRING;