mirror of https://github.com/python/cpython
Fix for issue1488943 - difflib.Differ() doesn't always add hints for tab
characters.
This commit is contained in:
parent
f058d2dc08
commit
5c456e6f45
|
@ -1061,20 +1061,21 @@ class Differ:
|
|||
Example:
|
||||
|
||||
>>> d = Differ()
|
||||
>>> results = d._qformat('\tabcDefghiJkl\n', '\t\tabcdefGhijkl\n',
|
||||
... ' ^ ^ ^ ', '+ ^ ^ ^ ')
|
||||
>>> results = d._qformat('\tabcDefghiJkl\n', '\tabcdefGhijkl\n',
|
||||
... ' ^ ^ ^ ', ' ^ ^ ^ ')
|
||||
>>> for line in results: print repr(line)
|
||||
...
|
||||
'- \tabcDefghiJkl\n'
|
||||
'? \t ^ ^ ^\n'
|
||||
'+ \t\tabcdefGhijkl\n'
|
||||
'? \t ^ ^ ^\n'
|
||||
'+ \tabcdefGhijkl\n'
|
||||
'? \t ^ ^ ^\n'
|
||||
"""
|
||||
|
||||
# Can hurt, but will probably help most of the time.
|
||||
common = min(_count_leading(aline, "\t"),
|
||||
_count_leading(bline, "\t"))
|
||||
common = min(common, _count_leading(atags[:common], " "))
|
||||
common = min(common, _count_leading(btags[:common], " "))
|
||||
atags = atags[common:].rstrip()
|
||||
btags = btags[common:].rstrip()
|
||||
|
||||
|
|
|
@ -20,6 +20,14 @@ class TestSFbugs(unittest.TestCase):
|
|||
diff_gen = difflib.unified_diff([], [])
|
||||
self.assertRaises(StopIteration, diff_gen.next)
|
||||
|
||||
def test_added_tab_hint(self):
|
||||
# Check fix for bug #1488943
|
||||
diff = list(difflib.Differ().compare(["\tI am a buggy"],["\t\tI am a bug"]))
|
||||
self.assertEqual("- \tI am a buggy", diff[0])
|
||||
self.assertEqual("? --\n", diff[1])
|
||||
self.assertEqual("+ \t\tI am a bug", diff[2])
|
||||
self.assertEqual("? +\n", diff[3])
|
||||
|
||||
patch914575_from1 = """
|
||||
1. Beautiful is beTTer than ugly.
|
||||
2. Explicit is better than implicit.
|
||||
|
|
Loading…
Reference in New Issue