posix: workaround lack of TIOCGWINSZ on Irix (issue3449) stable
authorMark Round <hg@markround.com>
Mon, 14 May 2012 13:25:42 +0100
branchstable
changeset 16726 7002bb17cc5e
parent 16722 7bf48bc7de23
child 16727 3e24ce3de5f1
child 16734 3c398032bf46
posix: workaround lack of TIOCGWINSZ on Irix (issue3449) On an Irix 6.5.24 system, TIOCGWINSZ is not available. This means that any usage of the "hg" tool that looks up the terminal size (e.g. "hg help") will fail with an AttributeError. A simple work-around is just to wrap this block in mercurial/posix.py with a try/except so that it ends up using the default 80 characters width.
mercurial/posix.py
--- a/mercurial/posix.py	Mon May 14 12:56:43 2012 +0200
+++ b/mercurial/posix.py	Mon May 14 13:25:42 2012 +0100
@@ -409,10 +409,13 @@
                     continue
                 if not os.isatty(fd):
                     continue
-                arri = fcntl.ioctl(fd, termios.TIOCGWINSZ, '\0' * 8)
-                width = array.array('h', arri)[1]
-                if width > 0:
-                    return width
+                try:
+                    arri = fcntl.ioctl(fd, termios.TIOCGWINSZ, '\0' * 8)
+                    width = array.array('h', arri)[1]
+                    if width > 0:
+                        return width
+                except AttributeError:
+                    pass
             except ValueError:
                 pass
             except IOError, e: