Show More
@@ -151,7 +151,7 b' static int longest_match(struct bdiff_li' | |||||
151 | if (a2 - a1 > 30000) |
|
151 | if (a2 - a1 > 30000) | |
152 | a1 = a2 - 30000; |
|
152 | a1 = a2 - 30000; | |
153 |
|
153 | |||
154 | half = (a1 + a2) / 2; |
|
154 | half = (a1 + a2 - 1) / 2; | |
155 |
|
155 | |||
156 | for (i = a1; i < a2; i++) { |
|
156 | for (i = a1; i < a2; i++) { | |
157 | /* skip all lines in b after the current block */ |
|
157 | /* skip all lines in b after the current block */ | |
@@ -177,7 +177,7 b' static int longest_match(struct bdiff_li' | |||||
177 |
|
177 | |||
178 | /* best match so far? we prefer matches closer |
|
178 | /* best match so far? we prefer matches closer | |
179 | to the middle to balance recursion */ |
|
179 | to the middle to balance recursion */ | |
180 | if (k > mk || (k == mk && (i <= mi || i < half))) { |
|
180 | if (k > mk || (k == mk && (i <= mi || i <= half))) { | |
181 | mi = i; |
|
181 | mi = i; | |
182 | mj = j; |
|
182 | mj = j; | |
183 | mk = k; |
|
183 | mk = k; |
@@ -88,7 +88,7 b' print("Diff 1 to 3 lines - preference fo' | |||||
88 | showdiff('a\n', 'a\n' * 3) |
|
88 | showdiff('a\n', 'a\n' * 3) | |
89 | print("Diff 1 to 5 lines - preference for adding / removing at the end of sequences:") |
|
89 | print("Diff 1 to 5 lines - preference for adding / removing at the end of sequences:") | |
90 | showdiff('a\n', 'a\n' * 5) |
|
90 | showdiff('a\n', 'a\n' * 5) | |
91 |
print("Diff 3 to 1 lines - preference for |
|
91 | print("Diff 3 to 1 lines - preference for balanced recursion:") | |
92 | showdiff('a\n' * 3, 'a\n') |
|
92 | showdiff('a\n' * 3, 'a\n') | |
93 | print("Diff 5 to 1 lines - this diff seems weird:") |
|
93 | print("Diff 5 to 1 lines - preference for balanced recursion:") | |
94 | showdiff('a\n' * 5, 'a\n') |
|
94 | showdiff('a\n' * 5, 'a\n') |
@@ -67,16 +67,17 b' showdiff(' | |||||
67 | 'a\na\na\na\na\n'): |
|
67 | 'a\na\na\na\na\n'): | |
68 | 'a\n' |
|
68 | 'a\n' | |
69 | 2 2 '' -> 'a\na\na\na\n' |
|
69 | 2 2 '' -> 'a\na\na\na\n' | |
70 |
Diff 3 to 1 lines - preference for |
|
70 | Diff 3 to 1 lines - preference for balanced recursion: | |
71 | showdiff( |
|
71 | showdiff( | |
72 | 'a\na\na\n', |
|
72 | 'a\na\na\n', | |
73 | 'a\n'): |
|
73 | 'a\n'): | |
|
74 | 0 2 'a\n' -> '' | |||
74 | 'a\n' |
|
75 | 'a\n' | |
75 |
|
|
76 | 4 6 'a\n' -> '' | |
76 | Diff 5 to 1 lines - this diff seems weird: |
|
77 | Diff 5 to 1 lines - preference for balanced recursion: | |
77 | showdiff( |
|
78 | showdiff( | |
78 | 'a\na\na\na\na\n', |
|
79 | 'a\na\na\na\na\n', | |
79 | 'a\n'): |
|
80 | 'a\n'): | |
80 |
0 |
|
81 | 0 4 'a\na\n' -> '' | |
81 | 'a\n' |
|
82 | 'a\n' | |
82 |
|
|
83 | 6 10 'a\na\n' -> '' |
General Comments 0
You need to be logged in to leave comments.
Login now