'The patience diff algorithm sometimes results in a block of replace
lines with identical leading lines. Remove these. This can cause extra
lines of context, but that is better than having extra lines of diff
with no actual changes.'

def trim_identical_leading_lines(self, alo, ahi, blo, bhi):

    (a, b) = (self.left_lines, self.right_lines)
    leading = 0
    while ((alo < ahi) and (blo < bhi) and (a[alo] == b[blo])):
        leading += 1
        alo += 1
        blo += 1
    if (leading > 0):
        self.equal((alo - leading), alo, (blo - leading), blo)
    return (alo, ahi, blo, bhi)
