global

def lcs(seq1, seq2, &block) #:yields seq1[i] for each matched:

:yields seq1[i] for each matched:
def lcs(seq1, seq2, &block) #:yields seq1[i] for each matched:
  matches = Diff::LCS::Internals.lcs(seq1, seq2)
  ret = []
  string = seq1.kind_of? String
  matches.each_with_index do |e, i|
    unless matches[i].nil?
      v = string ? seq1[i, 1] : seq1[i]
      v = block[v] if block
      ret << v
    end
  end
  ret
end