@@ -33,20 +33,20 module RedmineDiff | |||
|
33 | 33 | next unless bmatches.has_key? aelem |
|
34 | 34 | k = nil |
|
35 | 35 | bmatches[aelem].reverse.each { |bindex| |
|
36 | if k && (thresh[k] > bindex) && (thresh[k-1] < bindex) | |
|
37 | thresh[k] = bindex | |
|
38 | else | |
|
39 | k = thresh.replacenextlarger(bindex, k) | |
|
40 | end | |
|
41 | links[k] = [ (k==0) ? nil : links[k-1], aindex, bindex ] if k | |
|
36 | if k && (thresh[k] > bindex) && (thresh[k-1] < bindex) | |
|
37 | thresh[k] = bindex | |
|
38 | else | |
|
39 | k = thresh.replacenextlarger(bindex, k) | |
|
40 | end | |
|
41 | links[k] = [ (k==0) ? nil : links[k-1], aindex, bindex ] if k | |
|
42 | 42 | } |
|
43 | 43 | } |
|
44 | 44 | |
|
45 | 45 | if !thresh.empty? |
|
46 | 46 | link = links[thresh.length-1] |
|
47 | 47 | while link |
|
48 | mvector[link[1]] = link[2] | |
|
49 | link = link[0] | |
|
48 | mvector[link[1]] = link[2] | |
|
49 | link = link[0] | |
|
50 | 50 | end |
|
51 | 51 | end |
|
52 | 52 | |
@@ -59,14 +59,14 module RedmineDiff | |||
|
59 | 59 | while ai < mvector.length |
|
60 | 60 | bline = mvector[ai] |
|
61 | 61 | if bline |
|
62 | while bi < bline | |
|
63 | discardb(bi, b[bi]) | |
|
64 | bi += 1 | |
|
65 | end | |
|
66 | match(ai, bi) | |
|
67 | bi += 1 | |
|
62 | while bi < bline | |
|
63 | discardb(bi, b[bi]) | |
|
64 | bi += 1 | |
|
65 | end | |
|
66 | match(ai, bi) | |
|
67 | bi += 1 | |
|
68 | 68 | else |
|
69 | discarda(ai, a[ai]) | |
|
69 | discarda(ai, a[ai]) | |
|
70 | 70 | end |
|
71 | 71 | ai += 1 |
|
72 | 72 | end |
@@ -88,17 +88,17 module RedmineDiff | |||
|
88 | 88 | i = 0 |
|
89 | 89 | curdiff = [] |
|
90 | 90 | while i < df.length |
|
91 | whot = df[i][0] | |
|
92 | s = @isstring ? df[i][2].chr : [df[i][2]] | |
|
93 | p = df[i][1] | |
|
94 | last = df[i][1] | |
|
95 | i += 1 | |
|
96 | while df[i] && df[i][0] == whot && df[i][1] == last+1 | |
|
97 | s << df[i][2] | |
|
98 | last = df[i][1] | |
|
99 | i += 1 | |
|
100 | end | |
|
101 | curdiff.push [whot, p, s] | |
|
91 | whot = df[i][0] | |
|
92 | s = @isstring ? df[i][2].chr : [df[i][2]] | |
|
93 | p = df[i][1] | |
|
94 | last = df[i][1] | |
|
95 | i += 1 | |
|
96 | while df[i] && df[i][0] == whot && df[i][1] == last+1 | |
|
97 | s << df[i][2] | |
|
98 | last = df[i][1] | |
|
99 | i += 1 | |
|
100 | end | |
|
101 | curdiff.push [whot, p, s] | |
|
102 | 102 | end |
|
103 | 103 | diffs.push curdiff |
|
104 | 104 | } |
@@ -160,9 +160,9 module Diffable | |||
|
160 | 160 | range.each { |i| |
|
161 | 161 | elem = self[i] |
|
162 | 162 | if revmap.has_key? elem |
|
163 | revmap[elem].push i | |
|
163 | revmap[elem].push i | |
|
164 | 164 | else |
|
165 | revmap[elem] = [i] | |
|
165 | revmap[elem] = [i] | |
|
166 | 166 | end |
|
167 | 167 | } |
|
168 | 168 | return revmap |
@@ -181,9 +181,9 module Diffable | |||
|
181 | 181 | found = self[index] |
|
182 | 182 | return nil if value == found |
|
183 | 183 | if value > found |
|
184 | low = index + 1 | |
|
184 | low = index + 1 | |
|
185 | 185 | else |
|
186 | high = index | |
|
186 | high = index | |
|
187 | 187 | end |
|
188 | 188 | end |
|
189 | 189 | |
@@ -206,25 +206,25 module Diffable | |||
|
206 | 206 | bi = 0 |
|
207 | 207 | diff.diffs.each { |d| |
|
208 | 208 | d.each { |mod| |
|
209 | case mod[0] | |
|
210 | when '-' | |
|
211 | while ai < mod[1] | |
|
212 | newary << self[ai] | |
|
213 | ai += 1 | |
|
214 | bi += 1 | |
|
215 | end | |
|
216 | ai += 1 | |
|
217 | when '+' | |
|
218 | while bi < mod[1] | |
|
219 | newary << self[ai] | |
|
220 | ai += 1 | |
|
221 | bi += 1 | |
|
222 | end | |
|
223 | newary << mod[2] | |
|
224 | bi += 1 | |
|
225 | else | |
|
226 | raise "Unknown diff action" | |
|
227 | end | |
|
209 | case mod[0] | |
|
210 | when '-' | |
|
211 | while ai < mod[1] | |
|
212 | newary << self[ai] | |
|
213 | ai += 1 | |
|
214 | bi += 1 | |
|
215 | end | |
|
216 | ai += 1 | |
|
217 | when '+' | |
|
218 | while bi < mod[1] | |
|
219 | newary << self[ai] | |
|
220 | ai += 1 | |
|
221 | bi += 1 | |
|
222 | end | |
|
223 | newary << mod[2] | |
|
224 | bi += 1 | |
|
225 | else | |
|
226 | raise "Unknown diff action" | |
|
227 | end | |
|
228 | 228 | } |
|
229 | 229 | } |
|
230 | 230 | while ai < self.length |
General Comments 0
You need to be logged in to leave comments.
Login now