diff --git a/src/main/java/difflib/algorithm/myers/MyersDiff.java b/src/main/java/difflib/algorithm/myers/MyersDiff.java
index e616643..e5b39e6 100644
--- a/src/main/java/difflib/algorithm/myers/MyersDiff.java
+++ b/src/main/java/difflib/algorithm/myers/MyersDiff.java
@@ -33,15 +33,7 @@ import java.util.List;
import java.util.Objects;
/**
- * A clean-room implementation of
- * Eugene Myers differencing algorithm.
- *
- *
- * See the paper at
- * http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps
- *
- * @author Juanco Anez
- * @param T The type of the compared elements in the 'lines'.
+ * A clean-room implementation of Eugene Myers greedy differencing algorithm.
*/
public final class MyersDiff implements DiffAlgorithm {
@@ -116,8 +108,8 @@ public final class MyersDiff implements DiffAlgorithm {
final int kplus = kmiddle + 1;
final int kminus = kmiddle - 1;
PathNode prev = null;
-
int i;
+
if ((k == -d) || (k != d && diagonal[kminus].i < diagonal[kplus].i)) {
i = diagonal[kplus].i;
prev = diagonal[kplus];
diff --git a/src/main/java/difflib/algorithm/myers/package.html b/src/main/java/difflib/algorithm/myers/package.html
deleted file mode 100644
index 922bab2..0000000
--- a/src/main/java/difflib/algorithm/myers/package.html
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- The {@link difflib.myers diff.myers} package
- implements Gene Myers'
- differencing algorithm.
-
-
- Myer's algorithm produces optimum results (minimum diffs), but
- consumes considerably more memory than SimpleDiff, so its not
- suitable for very large files.
-
- @author Juanco Anez
-
-
diff --git a/src/main/java/difflib/text/DiffRowGenerator.java b/src/main/java/difflib/text/DiffRowGenerator.java
index 08e2984..1fc847e 100644
--- a/src/main/java/difflib/text/DiffRowGenerator.java
+++ b/src/main/java/difflib/text/DiffRowGenerator.java
@@ -172,6 +172,10 @@ public class DiffRowGenerator {
return new Builder();
}
+ public static final Equalizer IGNORE_WHITESPACE_EQUALIZER = (original, revised)
+ -> original.trim().replaceAll("\\s+", " ").equals(revised.trim().replaceAll("\\s+", " "));
+ public static final Equalizer DEFAULT_EQUALIZER = Object::equals;
+
private DiffRowGenerator(Builder builder) {
showInlineDiffs = builder.showInlineDiffs;
ignoreWhiteSpaces = builder.ignoreWhiteSpaces;
@@ -180,16 +184,7 @@ public class DiffRowGenerator {
columnWidth = builder.columnWidth;
mergeOriginalRevised = builder.mergeOriginalRevised;
inlineDiffByWord = builder.inlineDiffByWord;
- equalizer = new Equalizer() {
- @Override
- public boolean equals(String original, String revised) {
- if (ignoreWhiteSpaces) {
- return original.trim().replaceAll("\\s+", " ").equals(revised.trim().replaceAll("\\s+", " "));
- } else {
- return original.equals(revised);
- }
- }
- };
+ equalizer = ignoreWhiteSpaces?IGNORE_WHITESPACE_EQUALIZER:DEFAULT_EQUALIZER;
}
/**