summaryrefslogtreecommitdiffstats
path: root/tools/aapt
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@android.com>2011-01-23 12:44:13 -0800
committerAndroid Code Review <code-review@android.com>2011-01-23 12:44:13 -0800
commitbcf2adeb10c41becec3baa2bcb8de9212272399a (patch)
tree9b9ae13d2fb955fc6ee37ba99221e3b2510c7829 /tools/aapt
parent265cf2e76bef9ee369a7d43d567a22a0c39355ef (diff)
parentbf50322a245c430f3b3a1e7ecc299fe0a939daec (diff)
downloadframeworks_base-bcf2adeb10c41becec3baa2bcb8de9212272399a.zip
frameworks_base-bcf2adeb10c41becec3baa2bcb8de9212272399a.tar.gz
frameworks_base-bcf2adeb10c41becec3baa2bcb8de9212272399a.tar.bz2
Merge "aapt: Allow raw "%" in unformatted string-arrays"
Diffstat (limited to 'tools/aapt')
-rw-r--r--tools/aapt/ResourceTable.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index fc576a6..818c3c6 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -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;