From f3ff104a9cf316bd709b0abd05db0836a9fd6791 Mon Sep 17 00:00:00 2001 From: wumpz Date: Sat, 21 Sep 2019 13:59:21 +0200 Subject: [PATCH 1/3] fixes #33 --- .../difflib/unifieddiff/UnifiedDiffReader.java | 4 +++- .../unifieddiff/UnifiedDiffReaderTest.java | 15 +++++++++++++++ .../difflib/unifieddiff/problem_diff_issue33.diff | 6 ++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/com/github/difflib/unifieddiff/problem_diff_issue33.diff diff --git a/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java b/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java index db14116..c208786 100644 --- a/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java +++ b/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java @@ -78,7 +78,9 @@ public final class UnifiedDiffReader { headerTxt += line + "\n"; } } - data.setHeader(headerTxt); + if (!"".equals(headerTxt)) { + data.setHeader(headerTxt); + } while (line != null) { if (!CHUNK.validLine(line)) { diff --git a/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java b/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java index 905cb24..eb0280d 100644 --- a/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java +++ b/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java @@ -126,4 +126,19 @@ public class UnifiedDiffReaderTest { assertThat(diff.getTail()).isNull(); } + + @Test + public void testParseIssue33() throws IOException { + UnifiedDiff diff = UnifiedDiffReader.parseUnifiedDiff( + UnifiedDiffReaderTest.class.getResourceAsStream("problem_diff_issue33.diff")); + + assertThat(diff.getFiles().size()).isEqualTo(1); + + UnifiedDiffFile file1 = diff.getFiles().get(0); + assertThat(file1.getFromFile()).isEqualTo("Main.java"); + assertThat(file1.getPatch().getDeltas().size()).isEqualTo(1); + + assertThat(diff.getTail()).isNull(); + assertThat(diff.getHeader()).isNull(); + } } diff --git a/src/test/resources/com/github/difflib/unifieddiff/problem_diff_issue33.diff b/src/test/resources/com/github/difflib/unifieddiff/problem_diff_issue33.diff new file mode 100644 index 0000000..a78344d --- /dev/null +++ b/src/test/resources/com/github/difflib/unifieddiff/problem_diff_issue33.diff @@ -0,0 +1,6 @@ +--- a/Main.java ++++ b/Main.java +@@ -2,2 +2,3 @@ public class Main { + public static void main(String[] args) { ++ System.out.println("Hello, world!"); + } \ No newline at end of file From c5b88e02dbf5113c53a7d83fa57639544a66cb2c Mon Sep 17 00:00:00 2001 From: rosta Date: Sat, 21 Sep 2019 14:05:24 +0200 Subject: [PATCH 2/3] Proposal/issue 44 (#45) * Correction of problem It appears that the configuration reportLinesUnchanged has no effect when showInlineDiffs is true. That is '<' and '>' characters are converted to HTML entities regardless. * Implement rawValues option * Revert "Implement rawValues option" This reverts commit d9c302cec8836eac38ec65db07ead1c29176dc86. --- .../com/github/difflib/text/DiffRowGenerator.java | 8 +++++--- .../github/difflib/text/DiffRowGeneratorTest.java | 12 ++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/difflib/text/DiffRowGenerator.java b/src/main/java/com/github/difflib/text/DiffRowGenerator.java index 90babc7..4f963cd 100644 --- a/src/main/java/com/github/difflib/text/DiffRowGenerator.java +++ b/src/main/java/com/github/difflib/text/DiffRowGenerator.java @@ -267,9 +267,11 @@ public final class DiffRowGenerator { } List normalizeLines(List list) { - return list.stream() - .map(lineNormalizer::apply) - .collect(toList()); + return reportLinesUnchanged + ? list + : list.stream() + .map(lineNormalizer::apply) + .collect(toList()); } /** diff --git a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java index 752560b..c667b25 100644 --- a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java +++ b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java @@ -405,4 +405,16 @@ public class DiffRowGeneratorTest { rows = generator.generateDiffRows(Arrays.asList("\t<"), Arrays.asList("<")); assertEquals("[[CHANGE, <,<]]", rows.toString()); } + + @Test + public void testGenerationIssue44reportLinesUnchangedProblem() throws DiffException { + DiffRowGenerator generator = DiffRowGenerator.create() + .showInlineDiffs(true) + .reportLinesUnchanged(true) + .oldTag(f -> "~~") + .newTag(f -> "**") + .build(); + List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); + assertEquals("[[CHANGE,
~~T~~o~~ do~~
,
**D**o**ne**
]]", rows.toString()); + } } From 156f4f2986392a8e633fc4c2e5619a3b1e4e6457 Mon Sep 17 00:00:00 2001 From: "David R. Smith" Date: Mon, 23 Sep 2019 01:21:43 -0400 Subject: [PATCH 3/3] Update README.md (#50) Updated README.md with current Gradle artifact, as "compile" has been deprecated --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3c09334..e0d8f12 100644 --- a/README.md +++ b/README.md @@ -88,5 +88,5 @@ or using gradle: ```groovy // https://mvnrepository.com/artifact/io.github.java-diff-utils/java-diff-utils -compile group: 'io.github.java-diff-utils', name: 'java-diff-utils', version: '4.0' +implementation "io.github.java-diff-utils:java-diff-utils:4.0" ```