Project

General

Profile

Patch #7776 ยป diff_rb_fix_indentation.diff

Anonymous, 2011-03-04 14:17

View differences:

lib/diff.rb
28 28
      thresh = []
29 29
      links = []
30 30
      
31
      (astart..afinish).each { |aindex|
31
      (astart..afinish).each do |aindex|
32 32
        aelem = a[aindex]
33 33
        next unless bmatches.has_key? aelem
34 34
        k = nil
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
42
        }
43
      }
35
        bmatches[aelem].reverse.each do |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
42
        end
43
      end
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 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
......
79 79
        bi += 1
80 80
      end
81 81
      match(ai, bi)
82
      1
82
      return 1
83 83
    end
84 84

  
85 85
    def compactdiffs
86 86
      diffs = []
87
      @diffs.each { |df|
87
      @diffs.each do |df|
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
      end
105 105
      return diffs
106 106
    end
107 107

  
......
157 157

  
158 158
  def reverse_hash(range = (0...self.length))
159 159
    revmap = {}
160
    range.each { |i|
160
    range.each do |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
    end
168 168
    return revmap
169 169
  end
170 170

  
......
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

  
......
204 204
    end
205 205
    ai = 0
206 206
    bi = 0
207
    diff.diffs.each { |d|
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
207
    diff.diffs.each do |d|
208
      d.each do |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
228
      end
222 229
    end
223
    newary << mod[2]
224
    bi += 1
225
  else
226
    raise "Unknown diff action"
227
  end
228
      }
229
    }
230 230
    while ai < self.length
231 231
      newary << self[ai]
232 232
      ai += 1
    (1-1/1)