X-Git-Url: https://git.saurik.com/android/aapt.git/blobdiff_plain/0ff29cbb9fe68cc9e3a1f90ec67ef5fd69f94994..af949fdd618113755b85860f88c0736aa1ed09e7:/ResourceTable.cpp
diff --git a/ResourceTable.cpp b/ResourceTable.cpp
index 95a2384..a9cbd11 100644
--- a/ResourceTable.cpp
+++ b/ResourceTable.cpp
@@ -39,6 +39,10 @@ status_t compileXmlFile(const sp& assets,
root->removeWhitespace(false, NULL);
}
+ if ((options&XML_COMPILE_UTF8) != 0) {
+ root->setUTF8(true);
+ }
+
bool hasErrors = false;
if ((options&XML_COMPILE_ASSIGN_ATTRIBUTE_IDS) != 0) {
@@ -480,22 +484,22 @@ static status_t compileAttribute(const sp& in,
enumOrFlagsComment.append((attr.type&ResTable_map::TYPE_ENUM)
? String16(" be one of the following constant values.")
: String16(" be one or more (separated by '|') of the following constant values."));
- enumOrFlagsComment.append(String16("
\n\n"
+ enumOrFlagsComment.append(String16("\n\n"
"\n"
"\n"
"\n"
- "Constant | Value | Description |
"));
+ "Constant | Value | Description |
"));
}
- enumOrFlagsComment.append(String16("\n"));
+ enumOrFlagsComment.append(String16("\n"));
enumOrFlagsComment.append(itemIdent);
- enumOrFlagsComment.append(String16(" | "));
+ enumOrFlagsComment.append(String16(" | "));
enumOrFlagsComment.append(value);
- enumOrFlagsComment.append(String16(" | "));
+ enumOrFlagsComment.append(String16(" | "));
if (block.getComment(&len)) {
enumOrFlagsComment.append(String16(block.getComment(&len)));
}
- enumOrFlagsComment.append(String16(" | "));
+ enumOrFlagsComment.append(String16(" |
"));
err = outTable->addBag(SourcePos(in->getPrintableSource(), block.getLineNumber()),
myPackage,
@@ -984,7 +988,7 @@ status_t compileResourceFile(Bundle* bundle,
while ((code=block.next()) != ResXMLTree::END_DOCUMENT && code != ResXMLTree::BAD_DOCUMENT) {
if (code == ResXMLTree::END_TAG) {
- if (strcmp16(block.getElementName(&len), private_symbols16.string()) == 0) {
+ if (strcmp16(block.getElementName(&len), add_resource16.string()) == 0) {
break;
}
}
@@ -2364,13 +2368,12 @@ ResourceTable::validateLocalizations(void)
String8 region(config.string(), 2);
if (configSet.find(region) == configSet.end()) {
if (configSet.count(defaultLocale) == 0) {
- fprintf(stdout, "aapt: error: "
+ fprintf(stdout, "aapt: warning: "
"*** string '%s' has no default or required localization "
"for '%s' in %s\n",
String8(nameIter->first).string(),
config.string(),
mBundle->getResourceSourceDirs()[0]);
- err = UNKNOWN_ERROR;
}
}
}
@@ -2506,7 +2509,7 @@ status_t ResourceTable::flatten(Bundle* bundle, const sp& dest)
// Iterate through all data, collecting all values (strings,
// references, etc).
- StringPool valueStrings;
+ StringPool valueStrings = StringPool(false, bundle->getUTF8());
for (pi=0; pi p = mOrderedPackages.itemAt(pi);
if (p->getTypes().size() == 0) {
@@ -2514,8 +2517,8 @@ status_t ResourceTable::flatten(Bundle* bundle, const sp& dest)
continue;
}
- StringPool typeStrings;
- StringPool keyStrings;
+ StringPool typeStrings = StringPool(false, bundle->getUTF8());
+ StringPool keyStrings = StringPool(false, bundle->getUTF8());
const size_t N = p->getOrderedTypes().size();
for (size_t ti=0; ti