diff options
-rw-r--r-- | tools/aapt2/ResourceParser_test.cpp | 4 | ||||
-rw-r--r-- | tools/aapt2/ResourceUtils.cpp | 5 |
2 files changed, 4 insertions, 5 deletions
diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp index 251ca0c9256e..53361414e9b8 100644 --- a/tools/aapt2/ResourceParser_test.cpp +++ b/tools/aapt2/ResourceParser_test.cpp @@ -183,11 +183,11 @@ TEST_F(ResourceParserTest, ParseStringTruncateASCII) { EXPECT_THAT(str->untranslatable_sections, IsEmpty()); // Preserve non-ASCII whitespace including extended ASCII characters - EXPECT_TRUE(TestParse(R"(<string name="foo3"> Hello </string>)")); + EXPECT_TRUE(TestParse(R"(<string name="foo3"> Hello World </string>)")); str = test::GetValue<String>(&table_, "string/foo3"); ASSERT_THAT(str, NotNull()); - EXPECT_THAT(*str->value, StrEq("\xC2\xA0Hello\xC2\xA0")); + EXPECT_THAT(*str->value, StrEq("\xC2\xA0Hello\xE2\x80\xAFWorld\xC2\xA0")); EXPECT_THAT(str->untranslatable_sections, IsEmpty()); EXPECT_TRUE(TestParse(R"(<string name="foo4">2005年6月1日</string>)")); diff --git a/tools/aapt2/ResourceUtils.cpp b/tools/aapt2/ResourceUtils.cpp index f0e4d9e7ce8c..a571aee61546 100644 --- a/tools/aapt2/ResourceUtils.cpp +++ b/tools/aapt2/ResourceUtils.cpp @@ -40,8 +40,6 @@ using ::android::base::StringPrintf; namespace aapt { namespace ResourceUtils { -constexpr int32_t kNonBreakingSpace = 0xa0; - Maybe<ResourceName> ToResourceName( const android::ResTable::resource_name& name_in) { // TODO: Remove this when ResTable and AssetManager(1) are removed from AAPT2 @@ -854,7 +852,8 @@ StringBuilder& StringBuilder::AppendText(const std::string& text) { Utf8Iterator iter(text); while (iter.HasNext()) { char32_t codepoint = iter.Next(); - if (!preserve_spaces_ && !quote_ && codepoint != kNonBreakingSpace && iswspace(codepoint)) { + if (!preserve_spaces_ && !quote_ && (codepoint <= std::numeric_limits<char>::max()) + && isspace(static_cast<char>(codepoint))) { if (!last_codepoint_was_space_) { // Emit a space if it's the first. xml_string_.text += ' '; |