[2.10] display: use stdout for column width ()

stdout may differ from stdin so it should be used to determine the column
width, especially since it is the target file descriptor.

(cherry picked from commit 45e0f74702)

Co-authored-by: Pavel Březina <pbrezina@redhat.com>
This commit is contained in:
Abhijeet Kasurde 2020-07-17 23:26:40 +05:30 committed by GitHub
parent 273159da4c
commit 3afa0424b3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 2 deletions
changelogs/fragments
lib/ansible/utils

View file

@ -0,0 +1,2 @@
bugfixes:
- Ansible output now uses stdout to determine column width instead of stdin

View file

@ -430,8 +430,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)