From a30fdbd1b32947e9052421e9211b52854c5aaf7f Mon Sep 17 00:00:00 2001 From: jupart Date: Mon, 13 Nov 2017 09:46:31 -0500 Subject: [PATCH 1/2] 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) From 0f75b170d61583bb1fd8572d8a71dca7031a4101 Mon Sep 17 00:00:00 2001 From: jupart Date: Thu, 16 Nov 2017 08:13:27 -0500 Subject: [PATCH 2/2] Wrap PAGER text, updated with PR review feedback --- rtv/terminal.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/rtv/terminal.py b/rtv/terminal.py index 3de28a8..53a5b6a 100644 --- a/rtv/terminal.py +++ b/rtv/terminal.py @@ -552,7 +552,7 @@ class Terminal(object): with self.suspend(): webbrowser.open_new_tab(url) - def open_pager(self, data, wrap=False): + def open_pager(self, data, wrap=None): """ View a long block of text using the system's default pager. @@ -564,10 +564,7 @@ class Terminal(object): if wrap: data_lines = content.Content.wrap_text(data, wrap) - data = '' - for line in data_lines: - data += line + '\n' - + data = '\n'.join(data_lines) try: with self.suspend():