GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — included new file diff capability to new unified diff parser · fgsoap/java-diff-utils@94ffdab

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • java-diff-utils/src
    • main/java/com/github/difflib/unifieddiff
      • UnifiedDiffWriter.java
    • test/java/com/github/difflib/unifieddiff
      • UnifiedDiffWriterTest.java
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎java-diff-utils/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffWriter.java‎

Copy file name to clipboardExpand all lines: java-diff-utils/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffWriter.java
+6-3Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.io.Writer;
2121
import java.util.ArrayList;
2222
import java.util.List;
23+
import java.util.Objects;
2324
import java.util.function.Consumer;
2425
import java.util.function.Function;
2526
import java.util.logging.Level;
@@ -34,6 +35,7 @@ public class UnifiedDiffWriter {
3435
private static final Logger LOG = Logger.getLogger(UnifiedDiffWriter.class.getName());
3536

3637
public static void write(UnifiedDiff diff, Function<String, List<String>> originalLinesProvider, Writer writer, int contextSize) throws IOException {
38+
Objects.requireNonNull(originalLinesProvider, "original lines provider needs to be specified");
3739
write(diff, originalLinesProvider, line -> {
3840
try {
3941
writer.append(line).append("\n");
@@ -138,7 +140,8 @@ private static void processDeltas(Consumer<String> writer,
138140
}
139141

140142
// output the context before the first Delta
141-
for (line = contextStart; line < curDelta.getSource().getPosition(); line++) { //
143+
for (line = contextStart; line < curDelta.getSource().getPosition()
144+
&& line < origLines.size(); line++) { //
142145
buffer.add(" " + origLines.get(line));
143146
origTotal++;
144147
revTotal++;
@@ -153,8 +156,8 @@ private static void processDeltas(Consumer<String> writer,
153156
AbstractDelta<String> nextDelta = deltas.get(deltaIndex);
154157
int intermediateStart = curDelta.getSource().getPosition()
155158
+ curDelta.getSource().getLines().size();
156-
for (line = intermediateStart; line < nextDelta.getSource()
157-
.getPosition(); line++) {
159+
for (line = intermediateStart; line < nextDelta.getSource().getPosition()
160+
&& line < origLines.size(); line++) {
158161
// output the code between the last Delta and this one
159162
buffer.add(" " + origLines.get(line));
160163
origTotal++;
Collapse file

‎java-diff-utils/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffWriterTest.java‎

Copy file name to clipboardExpand all lines: java-diff-utils/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffWriterTest.java
+2-3Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
import java.nio.file.Files;
2828
import java.nio.file.Paths;
2929
import java.util.ArrayList;
30+
import java.util.Collections;
3031
import java.util.List;
3132
import static org.junit.Assert.assertEquals;
32-
import org.junit.Ignore;
3333
import org.junit.Test;
3434

3535
/**
@@ -42,13 +42,12 @@ public UnifiedDiffWriterTest() {
4242
}
4343

4444
@Test
45-
@Ignore
4645
public void testWrite() throws URISyntaxException, IOException {
4746
String str = readFile(UnifiedDiffReaderTest.class.getResource("jsqlparser_patch_1.diff").toURI(), Charset.defaultCharset());
4847
UnifiedDiff diff = UnifiedDiffReader.parseUnifiedDiff(new ByteArrayInputStream(str.getBytes()));
4948

5049
StringWriter writer = new StringWriter();
51-
UnifiedDiffWriter.write(diff, f -> null, writer, 5);
50+
UnifiedDiffWriter.write(diff, f -> Collections.EMPTY_LIST, writer, 5);
5251
System.out.println(writer.toString());
5352
}
5453

0 commit comments

Comments
0 (0)
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.