Commit 6f3de117d7e4015e3fc8d9195b69c345c028ad50

Authored by decalage2
1 parent 3b44d469

tablestream: handle newline characters properly in each cell

oletools/thirdparty/tablestream/tablestream.py
... ... @@ -51,8 +51,9 @@ from __future__ import print_function
51 51 # 2016-04-19 v0.03 PL: - enable colorclass on Windows, fixed issue #39
52 52 # 2016-05-25 v0.04 PL: - updated for colorclass 2.2.0 (now a package)
53 53 # 2016-07-29 v0.05 PL: - fixed oletools issue #57, bug when importing colorclass
  54 +# 2016-07-31 v0.06 PL: - handle newline characters properly in each cell
54 55  
55   -__version__ = '0.05'
  56 +__version__ = '0.06'
56 57  
57 58 #------------------------------------------------------------------------------
58 59 # TODO:
... ... @@ -247,7 +248,11 @@ class TableStream(object):
247 248 cell = unicode(cell)
248 249 # Wrap cell text according to the column width
249 250 # TODO: use a TextWrapper object for each column instead
250   - column = textwrap.wrap(cell, width=self.column_width[i])
  251 + # split the string if it contains newline characters, otherwise
  252 + # textwrap replaces them with spaces:
  253 + column = []
  254 + for line in cell.splitlines():
  255 + column.extend(textwrap.wrap(line, width=self.column_width[i]))
251 256 # apply colors to each line of the cell if needed:
252 257 if colors is not None and self.outfile.isatty():
253 258 color = colors[i]
... ...