Mercurial Hosting > luan
changeset 1809:90187946d1a4
minor
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 12 May 2024 17:15:33 -0600 |
parents | 69623c62aa34 |
children | 3c43b07e12b7 |
files | src/goodjava/util/LineDiff.java src/luan/modules/StringLuan.java |
diffstat | 2 files changed, 15 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
diff -r 69623c62aa34 -r 90187946d1a4 src/goodjava/util/LineDiff.java --- a/src/goodjava/util/LineDiff.java Sun May 12 15:58:30 2024 -0600 +++ b/src/goodjava/util/LineDiff.java Sun May 12 17:15:33 2024 -0600 @@ -13,13 +13,15 @@ public static class Diff { public final char operation; - public final int line; public final String text; + public final int lineOld; + public final int lineNew; - private Diff(char operation,String[] lines,int i) { + private Diff(char operation,String line,int iOld,int iNew) { this.operation = operation; - this.line = i+1; - this.text = lines[i]; + this.text = line; + this.lineOld = iOld + 1; + this.lineNew = iNew + 1; } } @@ -67,18 +69,22 @@ iOld++; iNew++; } else if (opt[iOld+1][iNew] >= opt[iOld][iNew+1]) { - diffs.add( new Diff( DELETE, oldLines, iOld++ ) ); + diffs.add( new Diff( DELETE, oldLines[iOld], iOld, iNew ) ); + iOld++; } else { - diffs.add( new Diff( INSERT, newLines, iNew++ ) ); + diffs.add( new Diff( INSERT, newLines[iNew], iOld, iNew ) ); + iNew++; } } // dump out one remainder of one string if the other is exhausted while( iOld < nOld ) { - diffs.add( new Diff( DELETE, oldLines, iOld++ ) ); + diffs.add( new Diff( DELETE, oldLines[iOld], iOld, iNew ) ); + iOld++; } while( iNew < nNew ) { - diffs.add( new Diff( INSERT, newLines, iNew++ ) ); + diffs.add( new Diff( INSERT, newLines[iNew], iOld, iNew ) ); + iNew++; } return diffs;
diff -r 69623c62aa34 -r 90187946d1a4 src/luan/modules/StringLuan.java --- a/src/luan/modules/StringLuan.java Sun May 12 15:58:30 2024 -0600 +++ b/src/luan/modules/StringLuan.java Sun May 12 17:15:33 2024 -0600 @@ -162,7 +162,7 @@ List<LineDiff.Diff> diffs = LineDiff.diff(oldStr,newStr); StringBuilder sb = new StringBuilder(); for( LineDiff.Diff diff : diffs ) { - sb.append(diff.operation).append(' ').append(diff.line).append(" - ").append(diff.text).append('\n'); + sb.append(diff.operation).append(' ').append(diff.lineOld).append(' ').append(diff.lineNew).append(" - ").append(diff.text).append('\n'); } return sb.toString(); }