From a30fdbd1b32947e9052421e9211b52854c5aaf7f Mon Sep 17 00:00:00 2001 From: jupart Date: Mon, 13 Nov 2017 09:46:31 -0500 Subject: [PATCH] Wrap text in submission page PAGER output --- rtv/submission_page.py | 6 ++++-- rtv/terminal.py | 12 ++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/rtv/submission_page.py b/rtv/submission_page.py index ff587d3..a11ae03 100644 --- a/rtv/submission_page.py +++ b/rtv/submission_page.py @@ -155,13 +155,15 @@ class SubmissionPage(Page): Open the selected item with the system's pager """ + n_rows, n_cols = self.term.stdscr.getmaxyx() + data = self.get_selected_item() if data['type'] == 'Submission': text = '\n\n'.join((data['permalink'], data['text'])) - self.term.open_pager(text) + self.term.open_pager(text, wrap=n_cols) elif data['type'] == 'Comment': text = '\n\n'.join((data['permalink'], data['body'])) - self.term.open_pager(text) + self.term.open_pager(text, wrap=n_cols) else: self.term.flash() diff --git a/rtv/terminal.py b/rtv/terminal.py index 0f6078f..3de28a8 100644 --- a/rtv/terminal.py +++ b/rtv/terminal.py @@ -20,7 +20,7 @@ from tempfile import NamedTemporaryFile import six from kitchen.text.display import textual_width_chop -from . import exceptions, mime_parsers +from . import exceptions, mime_parsers, content from .theme import Theme from .objects import LoadScreen @@ -552,7 +552,7 @@ class Terminal(object): with self.suspend(): webbrowser.open_new_tab(url) - def open_pager(self, data): + def open_pager(self, data, wrap=False): """ View a long block of text using the system's default pager. @@ -561,6 +561,14 @@ class Terminal(object): pager = os.getenv('PAGER') or 'less' command = shlex.split(pager) + + if wrap: + data_lines = content.Content.wrap_text(data, wrap) + data = '' + for line in data_lines: + data += line + '\n' + + try: with self.suspend(): _logger.debug('Running command: %s', command)