diff options
| -rw-r--r-- | youtube_dl/compat.py | 24 | 
1 files changed, 15 insertions, 9 deletions
| diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index 1ff42d94b..c36c9c23f 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -416,7 +416,7 @@ if hasattr(shutil, 'get_terminal_size'):  # Python >= 3.3  else:      _terminal_size = collections.namedtuple('terminal_size', ['columns', 'lines']) -    def compat_get_terminal_size(): +    def compat_get_terminal_size(fallback=(80, 24)):          columns = compat_getenv('COLUMNS', None)          if columns:              columns = int(columns) @@ -428,14 +428,20 @@ else:          else:              lines = None -        try: -            sp = subprocess.Popen( -                ['stty', 'size'], -                stdout=subprocess.PIPE, stderr=subprocess.PIPE) -            out, err = sp.communicate() -            lines, columns = map(int, out.split()) -        except Exception: -            pass +        if columns <= 0 or lines <= 0: +            try: +                sp = subprocess.Popen( +                    ['stty', 'size'], +                    stdout=subprocess.PIPE, stderr=subprocess.PIPE) +                out, err = sp.communicate() +                _columns, _lines = map(int, out.split()) +            except Exception: +                _columns, _lines = _terminal_size(*fallback) + +            if columns <= 0: +                columns = _columns +            if lines <= 0: +                lines = _lines          return _terminal_size(columns, lines)  try: | 
