From 45e0f747026c5b6e29b2a32c78785ff970da5655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20B=C5=99ezina?= Date: Thu, 25 Jun 2020 09:27:24 +0200 Subject: [PATCH] display: use stdout for column width (#70199) stdout may differ from stdin so it should be used to determine the column width, especially since it is the target file descriptor. --- changelogs/fragments/display-stdout-column-width.yml | 2 ++ lib/ansible/utils/display.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/display-stdout-column-width.yml diff --git a/changelogs/fragments/display-stdout-column-width.yml b/changelogs/fragments/display-stdout-column-width.yml new file mode 100644 index 00000000000..da0febc2230 --- /dev/null +++ b/changelogs/fragments/display-stdout-column-width.yml @@ -0,0 +1,2 @@ +bugfixes: + - Ansible output now uses stdout to determine column width instead of stdin diff --git a/lib/ansible/utils/display.py b/lib/ansible/utils/display.py index 3914a516718..425c5b1d00f 100644 --- a/lib/ansible/utils/display.py +++ b/lib/ansible/utils/display.py @@ -530,8 +530,8 @@ class Display(with_metaclass(Singleton, object)): return encoding def _set_column_width(self): - if os.isatty(0): - tty_size = unpack('HHHH', fcntl.ioctl(0, TIOCGWINSZ, pack('HHHH', 0, 0, 0, 0)))[1] + if os.isatty(1): + tty_size = unpack('HHHH', fcntl.ioctl(1, TIOCGWINSZ, pack('HHHH', 0, 0, 0, 0)))[1] else: tty_size = 0 self.columns = max(79, tty_size - 1)