diff options
author | Tor Norbye <tnorbye@google.com> | 2011-12-19 11:39:48 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-12-19 11:39:48 -0800 |
commit | 6e13c56a19f3994f8b710776e16b728ffb882051 (patch) | |
tree | e11acc3b516c5b21fc2f825ddc305fa605fe89dc | |
parent | 3d429cce90231d345fac172097223f3c8dec25d3 (diff) | |
parent | c563d4c4a574eb7884307a6be2e691188f6f6520 (diff) | |
download | sdk-6e13c56a19f3994f8b710776e16b728ffb882051.zip sdk-6e13c56a19f3994f8b710776e16b728ffb882051.tar.gz sdk-6e13c56a19f3994f8b710776e16b728ffb882051.tar.bz2 |
Merge "Handle lint input files with line ending errors"
-rw-r--r-- | lint/cli/src/com/android/tools/lint/PositionXmlParser.java | 7 | ||||
-rw-r--r-- | lint/libs/lint_checks/tests/src/com/android/tools/lint/PositionXmlParserTest.java | 22 |
2 files changed, 28 insertions, 1 deletions
diff --git a/lint/cli/src/com/android/tools/lint/PositionXmlParser.java b/lint/cli/src/com/android/tools/lint/PositionXmlParser.java index 0515993..c6c4574 100644 --- a/lint/cli/src/com/android/tools/lint/PositionXmlParser.java +++ b/lint/cli/src/com/android/tools/lint/PositionXmlParser.java @@ -300,7 +300,12 @@ public class PositionXmlParser implements IDomParser { // numbers while (mCurrentLine < line) { char c = mXml.charAt(mCurrentOffset); - if (c == '\n') { + if (c == '\r' && mCurrentOffset < mXml.length() - 1) { + if (mXml.charAt(mCurrentOffset + 1) != '\n') { + mCurrentLine++; + mCurrentColumn = 0; + } + } else if (c == '\n') { mCurrentLine++; mCurrentColumn = 0; } else { diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/PositionXmlParserTest.java b/lint/libs/lint_checks/tests/src/com/android/tools/lint/PositionXmlParserTest.java index 7c47ceb..1c78c44 100644 --- a/lint/libs/lint_checks/tests/src/com/android/tools/lint/PositionXmlParserTest.java +++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/PositionXmlParserTest.java @@ -123,4 +123,26 @@ public class PositionXmlParserTest extends TestCase { file.delete(); } + + public void testLineEndings() throws Exception { + // Test for http://code.google.com/p/android/issues/detail?id=22925 + String xml = + "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" + + "<LinearLayout>\r\n" + + "\r" + + "<LinearLayout></LinearLayout>\r\n" + + "</LinearLayout>\r\n"; + PositionXmlParser parser = new PositionXmlParser(); + File file = File.createTempFile("parsertest2", ".xml"); + Writer fw = new BufferedWriter(new FileWriter(file)); + fw.write(xml); + fw.close(); + Project project = new Project(null, file.getParentFile(), file.getParentFile()); + XmlContext context = new XmlContext(new Main(), project, file, + EnumSet.of(Scope.RESOURCE_FILE)); + Document document = parser.parseXml(context); + assertNotNull(document); + + file.delete(); + } } |