diff options
-rw-r--r-- | pygments/formatters/rtf.py | 53 |
1 files changed, 25 insertions, 28 deletions
diff --git a/pygments/formatters/rtf.py b/pygments/formatters/rtf.py index de768ac1..ac786610 100644 --- a/pygments/formatters/rtf.py +++ b/pygments/formatters/rtf.py @@ -9,8 +9,6 @@ :license: BSD, see LICENSE for details. """ -from __future__ import unicode_literals - from pygments.formatter import Formatter from pygments.util import get_int_opt, _surrogatepair @@ -67,14 +65,14 @@ class RtfFormatter(Formatter): self.fontsize = get_int_opt(options, 'fontsize', 0) def _escape(self, text): - return text.replace('\\', '\\\\') \ - .replace('{', '\\{') \ - .replace('}', '\\}') + return text.replace(u'\\', u'\\\\') \ + .replace(u'{', u'\\{') \ + .replace(u'}', u'\\}') def _escape_text(self, text): # empty strings, should give a small performance improvment if not text: - return '' + return u'' # escape text text = self._escape(text) @@ -87,22 +85,21 @@ class RtfFormatter(Formatter): buf.append(str(c)) elif (2**7) <= cn < (2**16): # single unicode escape sequence - buf.append('{\\u%d}' % cn) + buf.append(u'{\\u%d}' % cn) elif (2**16) <= cn: # RTF limits unicode to 16 bits. # Force surrogate pairs - h,l = _surrogatepair(cn) - buf.append('{\\u%d}{\\u%d}' % (h,l)) + buf.append(u'{\\u%d}{\\u%d}' % _surrogatepair(cn)) - return ''.join(buf).replace('\n', '\\par\n') + return u''.join(buf).replace(u'\n', u'\\par\n') def format_unencoded(self, tokensource, outfile): # rtf 1.8 header - outfile.write('{\\rtf1\\ansi\\uc0\\deff0' - r'{\fonttbl{\f0\fmodern\fprq1\fcharset0%s;}}' - r'{\colortbl;' % (self.fontface and - ' ' + self._escape(self.fontface) or - '')) + outfile.write(u'{\\rtf1\\ansi\\uc0\\deff0' + ur'{\fonttbl{\f0\fmodern\fprq1\fcharset0%s;}}' + ur'{\colortbl;' % (self.fontface and + u' ' + self._escape(self.fontface) or + u'')) # convert colors and save them in a mapping to access them later. color_mapping = {} @@ -111,15 +108,15 @@ class RtfFormatter(Formatter): for color in style['color'], style['bgcolor'], style['border']: if color and color not in color_mapping: color_mapping[color] = offset - outfile.write(r'\red%d\green%d\blue%d;' % ( + outfile.write(ur'\red%d\green%d\blue%d;' % ( int(color[0:2], 16), int(color[2:4], 16), int(color[4:6], 16) )) offset += 1 - outfile.write(r'}\f0 ') + outfile.write(ur'}\f0 ') if self.fontsize: - outfile.write(r'\fs%d' % (self.fontsize)) + outfile.write(ur'\fs%d' % (self.fontsize)) # highlight stream for ttype, value in tokensource: @@ -128,23 +125,23 @@ class RtfFormatter(Formatter): style = self.style.style_for_token(ttype) buf = [] if style['bgcolor']: - buf.append(r'\cb%d' % color_mapping[style['bgcolor']]) + buf.append(ur'\cb%d' % color_mapping[style['bgcolor']]) if style['color']: - buf.append(r'\cf%d' % color_mapping[style['color']]) + buf.append(ur'\cf%d' % color_mapping[style['color']]) if style['bold']: - buf.append(r'\b') + buf.append(ur'\b') if style['italic']: - buf.append(r'\i') + buf.append(ur'\i') if style['underline']: - buf.append('\\ul') + buf.append(u'\\ul') if style['border']: - buf.append(r'\chbrdr\chcfpat%d' % + buf.append(ur'\chbrdr\chcfpat%d' % color_mapping[style['border']]) - start = ''.join(buf) + start = u''.join(buf) if start: - outfile.write('{%s ' % start) + outfile.write(u'{%s ' % start) outfile.write(self._escape_text(value)) if start: - outfile.write('}') + outfile.write(u'}') - outfile.write('}') + outfile.write(u'}') |