Edgewall Software

Changes between Initial Version and Version 1 of Ticket #12984, comment 3


Ignore:
Timestamp:
Feb 25, 2018, 9:00:53 PM (3 years ago)
Author:
Jun Omae

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #12984, comment 3

    initial v1  
    33{{{#!diff
    44diff --git a/trac/mimeview/pygments.py b/trac/mimeview/pygments.py
    5 index 4dab18e59..c45cd4d37 100644
     5index 4dab18e59..890ef6f13 100644
    66--- a/trac/mimeview/pygments.py
    77+++ b/trac/mimeview/pygments.py
    8 @@ -295,10 +295,14 @@ class GenshiHtmlFormatter(HtmlFormatter):
     8@@ -291,14 +291,19 @@ class GenshiHtmlFormatter(HtmlFormatter):
     9         pos = None, -1, -1
     10         span = QName('span')
     11         class_ = QName('class')
     12+        newlines_re = re.compile(r'(\n+)')
     13
    914         def _generate():
    1015             for c, text in self._chunk(tokens):
    1116                 if c:
    12 -                    attrs = Attrs([(class_, c)])
     17                     attrs = Attrs([(class_, c)])
    1318-                    yield START, (span, attrs), pos
    1419-                    yield TEXT, text, pos
    1520-                    yield END, span, pos
    16 +                    for idx, t in enumerate(text.split('\n')):
    17 +                        if t:
    18 +                            attrs = Attrs([(class_, c)])
     21+                    for t in newlines_re.split(text):
     22+                        if t.startswith('\n'):
     23+                            yield TEXT, t, pos
     24+                        elif t:
    1925+                            yield START, (span, attrs), pos
    2026+                            yield TEXT, t, pos
    2127+                            yield END, span, pos
    22 +                        if idx > 0:
    23 +                            yield TEXT, '\n', pos
    2428                 else:
    2529                     yield TEXT, text, pos