Changeset - 84d2df525238
[Not reviewed]
default
0 1 0
Mads Kiilerich - 5 years ago 2020-10-28 16:08:04
mads@kiilerich.com
Grafted from: 5afdce6eb7d4
diff: polish _escaper function - clarify purpose and pass it strings
1 file changed with 4 insertions and 4 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/diffs.py
Show inline comments
 
@@ -448,9 +448,9 @@ class DiffProcessor(object):
 
_escape_re = re.compile(r'(&)|(<)|(>)|(\t)|(\r)|(?<=.)( \n| $)|(\t\n|\t$)')
 

	
 

	
 
def _escaper(string):
 
def _escaper(diff_line):
 
    """
 
    Do HTML escaping/markup
 
    Do HTML escaping/markup of a single diff line (including first +/- column)
 
    """
 

	
 
    def substitute(m):
 
@@ -471,7 +471,7 @@ def _escaper(string):
 
            return '<u>\t</u><i></i>'
 
        assert False
 

	
 
    return _escape_re.sub(substitute, safe_str(string))
 
    return _escape_re.sub(substitute, diff_line)
 

	
 

	
 
_git_header_re = re.compile(br"""
 
@@ -536,7 +536,7 @@ def _get_header(vcs, diff_chunk):
 
    rest = diff_chunk[match.end():]
 
    if rest and _header_next_check.match(rest):
 
        raise Exception('cannot parse %s diff header: %r followed by %r' % (vcs, safe_str(bytes(diff_chunk[:match.end()])), safe_str(bytes(rest[:1000]))))
 
    diff_lines = (_escaper(m.group(0)) for m in re.finditer(br'.*\n|.+$', rest)) # don't split on \r as str.splitlines do
 
    diff_lines = (_escaper(safe_str(m.group(0))) for m in re.finditer(br'.*\n|.+$', rest)) # don't split on \r as str.splitlines do
 
    return meta_info, diff_lines
 

	
 

	
0 comments (0 inline, 0 general)