diff --git a/java-diff-utils/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java b/java-diff-utils/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java index 181b41ae..0ac22ce8 100644 --- a/java-diff-utils/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java +++ b/java-diff-utils/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java @@ -353,7 +353,7 @@ private String extractFileName(String _line) { line = line.substring(0, matcher.start()); } line = line.split("\t")[0]; - return line.substring(4).replaceFirst("^(a|b|old|new)(\\/)?", "") + return line.substring(4).replaceFirst("^(a|b|old|new)/", "") .trim(); } diff --git a/java-diff-utils/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java b/java-diff-utils/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java index 912b72fd..dcf32182 100644 --- a/java-diff-utils/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java +++ b/java-diff-utils/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java @@ -122,7 +122,7 @@ public void testParseIssue46() throws IOException { assertThat(diff.getFiles().size()).isEqualTo(1); UnifiedDiffFile file1 = diff.getFiles().get(0); - assertThat(file1.getFromFile()).isEqualTo(".vhd"); + assertThat(file1.getFromFile()).isEqualTo("a.vhd"); assertThat(file1.getPatch().getDeltas().size()).isEqualTo(1); assertThat(diff.getTail()).isNull(); @@ -384,4 +384,14 @@ public void testParseIssue123() throws IOException { assertThat(diff.getFiles()).extracting(f -> f.getFromFile()).contains("src/java/main/org/apache/zookeeper/server/FinalRequestProcessor.java"); } + + @Test + public void testParseIssue141() throws IOException { + UnifiedDiff diff = UnifiedDiffReader.parseUnifiedDiff( + UnifiedDiffReaderTest.class.getResourceAsStream("problem_diff_issue141.diff")); + UnifiedDiffFile file1 = diff.getFiles().get(0); + + assertThat(file1.getFromFile()).isEqualTo("a.txt"); + assertThat(file1.getToFile()).isEqualTo("a1.txt"); + } } diff --git a/java-diff-utils/src/test/resources/com/github/difflib/unifieddiff/problem_diff_issue141.diff b/java-diff-utils/src/test/resources/com/github/difflib/unifieddiff/problem_diff_issue141.diff new file mode 100644 index 00000000..ab33c250 --- /dev/null +++ b/java-diff-utils/src/test/resources/com/github/difflib/unifieddiff/problem_diff_issue141.diff @@ -0,0 +1,11 @@ +--- a.txt ++++ a1.txt +@@ -8,7 +8,7 @@ + + + +- 23 ++ 24 + + + 1