AAPT2: Do not interpret %n as a format specifier in string resources
%n is a special value marking a platform independent newline and is not to be considered a format argument. Bug: 37132275 Test: make aapt2_tests Change-Id: I806521e44afe20004344dee9f18ecee6cc7086ea
This commit is contained in:
@@ -843,4 +843,9 @@ TEST_F(ResourceParserTest, ParseElementWithNoValue) {
|
||||
EXPECT_THAT(*str->value, Eq(""));
|
||||
}
|
||||
|
||||
TEST_F(ResourceParserTest, ParsePlatformIndependentNewline) {
|
||||
std::string input = R"(<string name="foo">%1$s %n %2$s</string>)";
|
||||
ASSERT_TRUE(TestParse(input));
|
||||
}
|
||||
|
||||
} // namespace aapt
|
||||
|
||||
@@ -203,7 +203,7 @@ bool VerifyJavaStringFormat(const StringPiece& str) {
|
||||
if (*c == '%' && c + 1 < end) {
|
||||
c++;
|
||||
|
||||
if (*c == '%') {
|
||||
if (*c == '%' || *c == 'n') {
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user