# HG changeset patch
# User Yuya Nishihara <yuya@tcha.org>
# Date 1476967829 -32400
#      Thu Oct 20 21:50:29 2016 +0900
# Node ID 80708959161a2cf7cd72835aceef07f3b7072c72
# Parent  5c379b1f56c706defbb61dbe1b5b18ab46974bae
scmutil: narrow ImportError handling in termwidth()

The array module must exist. It's sufficient to suppress the ImportError of
termios. Also salvaged the comment why we have to handle AttributeError, from
7002bb17cc5e.

diff --git a/mercurial/scmposix.py b/mercurial/scmposix.py
--- a/mercurial/scmposix.py
+++ b/mercurial/scmposix.py
@@ -1,5 +1,6 @@
 from __future__ import absolute_import
 
+import array
 import errno
 import fcntl
 import os
@@ -43,8 +44,11 @@
 
 def termwidth(ui):
     try:
-        import array
         import termios
+        TIOCGWINSZ = termios.TIOCGWINSZ  # unavailable on IRIX (issue3449)
+    except (AttributeError, ImportError):
+        return 80
+    if True:
         for dev in (ui.ferr, ui.fout, ui.fin):
             try:
                 try:
@@ -53,13 +57,11 @@
                     continue
                 if not os.isatty(fd):
                     continue
-                try:
-                    arri = fcntl.ioctl(fd, termios.TIOCGWINSZ, '\0' * 8)
+                if True:
+                    arri = fcntl.ioctl(fd, TIOCGWINSZ, '\0' * 8)
                     width = array.array('h', arri)[1]
                     if width > 0:
                         return width
-                except AttributeError:
-                    pass
             except ValueError:
                 pass
             except IOError as e:
@@ -67,6 +69,4 @@
                     pass
                 else:
                     raise
-    except ImportError:
-        pass
     return 80