Kaydet (Commit) 758025cb authored tarafından Senthil Kumaran's avatar Senthil Kumaran

Merged revisions 76464 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76464 | senthil.kumaran | 2009-11-24 00:11:31 +0530 (Tue, 24 Nov 2009) | 4 lines

  Fix for issue1488943 - difflib.Differ() doesn't always add hints for tab
  characters.
........
üst 71db3cd6
...@@ -1060,20 +1060,21 @@ class Differ: ...@@ -1060,20 +1060,21 @@ class Differ:
Example: Example:
>>> d = Differ() >>> d = Differ()
>>> results = d._qformat('\tabcDefghiJkl\n', '\t\tabcdefGhijkl\n', >>> results = d._qformat('\tabcDefghiJkl\n', '\tabcdefGhijkl\n',
... ' ^ ^ ^ ', '+ ^ ^ ^ ') ... ' ^ ^ ^ ', ' ^ ^ ^ ')
>>> for line in results: print(repr(line)) >>> for line in results: print(repr(line))
... ...
'- \tabcDefghiJkl\n' '- \tabcDefghiJkl\n'
'? \t ^ ^ ^\n' '? \t ^ ^ ^\n'
'+ \t\tabcdefGhijkl\n' '+ \tabcdefGhijkl\n'
'? \t ^ ^ ^\n' '? \t ^ ^ ^\n'
""" """
# Can hurt, but will probably help most of the time. # Can hurt, but will probably help most of the time.
common = min(_count_leading(aline, "\t"), common = min(_count_leading(aline, "\t"),
_count_leading(bline, "\t")) _count_leading(bline, "\t"))
common = min(common, _count_leading(atags[:common], " ")) common = min(common, _count_leading(atags[:common], " "))
common = min(common, _count_leading(btags[:common], " "))
atags = atags[common:].rstrip() atags = atags[common:].rstrip()
btags = btags[common:].rstrip() btags = btags[common:].rstrip()
......
...@@ -20,6 +20,14 @@ class TestSFbugs(unittest.TestCase): ...@@ -20,6 +20,14 @@ class TestSFbugs(unittest.TestCase):
diff_gen = difflib.unified_diff([], []) diff_gen = difflib.unified_diff([], [])
self.assertRaises(StopIteration, next, diff_gen) self.assertRaises(StopIteration, next, diff_gen)
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 = """ patch914575_from1 = """
1. Beautiful is beTTer than ugly. 1. Beautiful is beTTer than ugly.
2. Explicit is better than implicit. 2. Explicit is better than implicit.
......
...@@ -140,6 +140,8 @@ C-API ...@@ -140,6 +140,8 @@ C-API
Library Library
------- -------
- Issue #1488943: difflib.Differ() doesn't always add hints for tab characters
- Issue #6123: tarfile now opens empty archives correctly and consistently - Issue #6123: tarfile now opens empty archives correctly and consistently
raises ReadError on empty files. raises ReadError on empty files.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment