diff options
author | Dianne Hackborn <hackbod@android.com> | 2011-01-23 12:44:13 -0800 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2011-01-23 12:44:13 -0800 |
commit | bcf2adeb10c41becec3baa2bcb8de9212272399a (patch) | |
tree | 9b9ae13d2fb955fc6ee37ba99221e3b2510c7829 /tools/aapt | |
parent | 265cf2e76bef9ee369a7d43d567a22a0c39355ef (diff) | |
parent | bf50322a245c430f3b3a1e7ecc299fe0a939daec (diff) | |
download | frameworks_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.cpp | 16 |
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; |