Skip to content

Commit c56423e

Browse files
committed
1 parent 52adbb8 commit c56423e

File tree

3 files changed

+7
-62
lines changed

3 files changed

+7
-62
lines changed

src/main/java/difflib/algorithm/myers/MyersDiff.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,7 @@
3333
import java.util.Objects;
3434

3535
/**
36-
* A clean-room implementation of <a href="http://www.cs.arizona.edu/people/gene/">
37-
* Eugene Myers</a> differencing algorithm.
38-
*
39-
* <p>
40-
* See the paper at <a href="http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps">
41-
* http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps</a></p>
42-
*
43-
* @author <a href="mailto:juanco@suigeneris.org">Juanco Anez</a>
44-
* @param T The type of the compared elements in the 'lines'.
36+
* A clean-room implementation of Eugene Myers greedy differencing algorithm.
4537
*/
4638
public final class MyersDiff<T> implements DiffAlgorithm<T> {
4739

@@ -116,8 +108,8 @@ private PathNode buildPath(final List<T> orig, final List<T> rev)
116108
final int kplus = kmiddle + 1;
117109
final int kminus = kmiddle - 1;
118110
PathNode prev = null;
119-
120111
int i;
112+
121113
if ((k == -d) || (k != d && diagonal[kminus].i < diagonal[kplus].i)) {
122114
i = diagonal[kplus].i;
123115
prev = diagonal[kplus];

src/main/java/difflib/algorithm/myers/package.html

Lines changed: 0 additions & 42 deletions
This file was deleted.

src/main/java/difflib/text/DiffRowGenerator.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,10 @@ public static Builder create() {
172172
return new Builder();
173173
}
174174

175+
public static final Equalizer<String> IGNORE_WHITESPACE_EQUALIZER = (original, revised)
176+
-> original.trim().replaceAll("\\s+", " ").equals(revised.trim().replaceAll("\\s+", " "));
177+
public static final Equalizer<String> DEFAULT_EQUALIZER = Object::equals;
178+
175179
private DiffRowGenerator(Builder builder) {
176180
showInlineDiffs = builder.showInlineDiffs;
177181
ignoreWhiteSpaces = builder.ignoreWhiteSpaces;
@@ -180,16 +184,7 @@ private DiffRowGenerator(Builder builder) {
180184
columnWidth = builder.columnWidth;
181185
mergeOriginalRevised = builder.mergeOriginalRevised;
182186
inlineDiffByWord = builder.inlineDiffByWord;
183-
equalizer = new Equalizer<String>() {
184-
@Override
185-
public boolean equals(String original, String revised) {
186-
if (ignoreWhiteSpaces) {
187-
return original.trim().replaceAll("\\s+", " ").equals(revised.trim().replaceAll("\\s+", " "));
188-
} else {
189-
return original.equals(revised);
190-
}
191-
}
192-
};
187+
equalizer = ignoreWhiteSpaces?IGNORE_WHITESPACE_EQUALIZER:DEFAULT_EQUALIZER;
193188
}
194189

195190
/**

0 commit comments

Comments
 (0)