Reverting whitespace normalization. test_difflib fails with it -- the

test depends on invisible trailing whitespace in .py files.  The author will
have to repair that.
This commit is contained in:
Tim Peters 2004-08-29 19:33:36 +00:00
parent 45e77c55ff
commit afb5f94217
2 changed files with 47 additions and 47 deletions

View File

@ -1289,7 +1289,7 @@ def _mdiff(fromlines, tolines, context=None, linejunk=None,
if None, all from/to text lines will be generated.
linejunk -- passed on to ndiff (see ndiff documentation)
charjunk -- passed on to ndiff (see ndiff documentation)
This function returns an interator which returns a tuple:
(from line tuple, to line tuple, boolean flag)
@ -1300,7 +1300,7 @@ def _mdiff(fromlines, tolines, context=None, linejunk=None,
'\0-' -- marks start of deleted text
'\0^' -- marks start of changed text
'\1' -- marks end of added/deleted/changed text
boolean flag -- None indicates context separation, True indicates
either "from" or "to" line contains a change, otherwise False.
@ -1310,13 +1310,13 @@ def _mdiff(fromlines, tolines, context=None, linejunk=None,
Note, this function utilizes the ndiff function to generate the side by
side difference markup. Optional ndiff arguments may be passed to this
function and they in turn will be passed to ndiff.
function and they in turn will be passed to ndiff.
"""
import re
import re
# regular expression for finding intraline change indices
change_re = re.compile('(\++|\-+|\^+)')
# create the difference iterator to generate the differences
diff_lines_iterator = ndiff(fromlines,tolines,linejunk,charjunk)
@ -1375,7 +1375,7 @@ def _mdiff(fromlines, tolines, context=None, linejunk=None,
# thing (such as adding the line number) then replace the special
# marks with what the user's change markup.
return (num_lines[side],text)
def _line_iterator():
"""Yields from/to lines of text with a change indication.
@ -1392,7 +1392,7 @@ def _mdiff(fromlines, tolines, context=None, linejunk=None,
"""
lines = []
num_blanks_pending, num_blanks_to_yield = 0, 0
while True:
while True:
# Load up next 4 lines so we can look ahead, create strings which
# are a concatenation of the first character of each of the 4 lines
# so we can do some very readable comparisons.
@ -1550,7 +1550,7 @@ _file_template = """
<html>
<head>
<meta http-equiv="Content-Type"
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1" />
<title></title>
<style type="text/css">%(styles)s
@ -1573,9 +1573,9 @@ _styles = """
.diff_sub {background-color:#ffaaaa}"""
_table_template = """
<table class="diff" id="difflib_chg_%(prefix)s_top"
cellspacing="0" cellpadding="0" rules="groups" >
<colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>
<table class="diff" id="difflib_chg_%(prefix)s_top"
cellspacing="0" cellpadding="0" rules="groups" >
<colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>
<colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>
%(header_row)s
<tbody>
@ -1604,15 +1604,15 @@ class HtmlDiff(object):
This class can be used to create an HTML table (or a complete HTML file
containing the table) showing a side by side, line by line comparision
of text with inter-line and intra-line change highlights. The table can
of text with inter-line and intra-line change highlights. The table can
be generated in either full or contextual difference mode.
The following methods are provided for HTML generation:
make_table -- generates HTML for a single side by side table
make_file -- generates complete HTML file with a single side by side table
See tools/scripts/diff.py for an example usage of this class.
See tools/scripts/diff.py for an example usage of this class.
"""
_file_template = _file_template
@ -1620,7 +1620,7 @@ class HtmlDiff(object):
_table_template = _table_template
_legend = _legend
_default_prefix = 0
def __init__(self,tabsize=8,wrapcolumn=None,linejunk=None,
charjunk=IS_CHARACTER_JUNK):
"""HtmlDiff instance initializer
@ -1630,7 +1630,7 @@ class HtmlDiff(object):
wrapcolumn -- column number where lines are broken and wrapped,
defaults to None where lines are not wrapped.
linejunk,charjunk -- keyword arguments passed into ndiff() (used to by
HtmlDiff() to generate the side by side HTML differences). See
HtmlDiff() to generate the side by side HTML differences). See
ndiff() documentation for argument default values and descriptions.
"""
self._tabsize = tabsize
@ -1655,13 +1655,13 @@ class HtmlDiff(object):
the "next" link anchors before the next change (so click of
"next" link jumps to just before the change).
"""
return self._file_template % dict(
styles = self._styles,
legend = self._legend,
table = self.make_table(fromlines,tolines,fromdesc,todesc,
context=context,numlines=numlines))
def _tab_newline_replace(self,fromlines,tolines):
"""Returns from/to line lists with tabs expanded and newlines removed.
@ -1734,10 +1734,10 @@ class HtmlDiff(object):
line1 = line1 + '\1'
line2 = '\0' + mark + line2
# tack on first line onto the output list
# tack on first line onto the output list
data_list.append((line_num,line1))
# use this routine again to wrap the remaining text
# use this routine again to wrap the remaining text
self._split_line(data_list,'>',line2)
def _line_wrapper(self,diffs):
@ -1776,7 +1776,7 @@ class HtmlDiff(object):
"""
fromlist,tolist,flaglist = [],[],[]
# pull from/to data and flags from mdiff style iterator
# pull from/to data and flags from mdiff style iterator
for fromdata,todata,flag in diffs:
try:
# store HTML markup of the lines into the lists
@ -1788,7 +1788,7 @@ class HtmlDiff(object):
tolist.append(None)
flaglist.append(flag)
return fromlist,tolist,flaglist
def _format_line(self,side,flag,linenum,text):
"""Returns HTML markup of "from" / "to" text lines
@ -1802,7 +1802,7 @@ class HtmlDiff(object):
id = ' id="%s%s"' % (self._prefix[side],linenum)
except TypeError:
# handle blank lines where linenum is '>' or ''
id = ''
id = ''
# replace those things that would get confused with HTML symbols
text=text.replace("&","&amp;").replace(">","&gt;").replace("<","&lt;")
@ -1825,10 +1825,10 @@ class HtmlDiff(object):
def _convert_flags(self,fromlist,tolist,flaglist,context,numlines):
"""Makes list of "next" links"""
# all anchor names will be generated using the unique "to" prefix
toprefix = self._prefix[1]
# process change flags, generating middle column of next anchors/links
next_id = ['']*len(flaglist)
next_href = ['']*len(flaglist)
@ -1840,11 +1840,11 @@ class HtmlDiff(object):
in_change = True
last = i
# at the beginning of a change, drop an anchor a few lines
# (the context lines) before the change for the previous
# (the context lines) before the change for the previous
# link
i = max([0,i-numlines])
next_id[i] = ' id="difflib_chg_%s_%d"' % (toprefix,num_chg)
# at the beginning of a change, drop a link to the next
# at the beginning of a change, drop a link to the next
# change
num_chg += 1
next_href[last] = '<a href="#difflib_chg_%s_%d">n</a>' % (
@ -1891,11 +1891,11 @@ class HtmlDiff(object):
# make unique anchor prefixes so that multiple tables may exist
# on the same page without conflict.
self._make_prefix()
# change tabs to spaces before it gets more difficult after we insert
# markkup
fromlines,tolines = self._tab_newline_replace(fromlines,tolines)
# create diffs iterator which generates side by side from/to data
if context:
context_lines = numlines
@ -1907,7 +1907,7 @@ class HtmlDiff(object):
# set up iterator to wrap lines that exceed desired width
if self._wrapcolumn:
diffs = self._line_wrapper(diffs)
# collect up from/to lines and flags into lists (also format the lines)
fromlist,tolist,flaglist = self._collect_lines(diffs)
@ -1947,7 +1947,7 @@ class HtmlDiff(object):
replace('\0^','<span class="diff_chg">'). \
replace('\1','</span>'). \
replace('\t','&nbsp;')
del re
def restore(delta, which):

View File

@ -46,7 +46,7 @@ patch914575_to2 = """
\tLine 2: preceeded by from:[sstt] to:[sssst]
Line 3: preceeded by from:[sstst] to:[ssssss]
Line 4: has from:[sst] to:[sss] after :
Line 5: has from:[t] to:[ss] at end
Line 5: has from:[t] to:[ss] at end
"""
patch914575_from3 = """line 0
@ -54,9 +54,9 @@ patch914575_from3 = """line 0
line 1
line 2
line 3
line 4 changed
line 5 changed
line 6 changed
line 4 changed
line 5 changed
line 6 changed
line 7
line 8 subtracted
line 9
@ -71,9 +71,9 @@ patch914575_to3 = """line 0
line 1
line 2 added
line 3
line 4 chanGEd
line 5a chanGed
line 6a changEd
line 4 chanGEd
line 5a chanGed
line 6a changEd
line 7
line 8
line 9
@ -102,21 +102,21 @@ class TestSFpatches(unittest.TestCase):
i = difflib.HtmlDiff()
j = difflib.HtmlDiff(tabsize=2)
k = difflib.HtmlDiff(wrapcolumn=14)
full = i.make_file(f1a,t1a,'from','to',context=False,numlines=5)
tables = '\n'.join(
[
'<h2>Context (first diff within numlines=5(default))</h2>',
'<h2>Context (first diff within numlines=5(default))</h2>',
i.make_table(f1a,t1a,'from','to',context=True),
'<h2>Context (first diff after numlines=5(default))</h2>',
'<h2>Context (first diff after numlines=5(default))</h2>',
i.make_table(f1b,t1b,'from','to',context=True),
'<h2>Context (numlines=6)</h2>',
'<h2>Context (numlines=6)</h2>',
i.make_table(f1a,t1a,'from','to',context=True,numlines=6),
'<h2>Context (numlines=0)</h2>',
'<h2>Context (numlines=0)</h2>',
i.make_table(f1a,t1a,'from','to',context=True,numlines=0),
'<h2>Same Context</h2>',
'<h2>Same Context</h2>',
i.make_table(f1a,f1a,'from','to',context=True),
'<h2>Same Full</h2>',
'<h2>Same Full</h2>',
i.make_table(f1a,f1a,'from','to',context=False),
'<h2>Empty Context</h2>',
i.make_table([],[],'from','to',context=True),
@ -139,8 +139,8 @@ class TestSFpatches(unittest.TestCase):
#f.write(actual)
#f.close()
expect = open(findfile('test_difflib_expect.html')).read()
self.assertEqual(actual,expect)
Doctests = doctest.DocTestSuite(difflib)