diff mercurial/scmposix.py @ 30314:365812902904

scmutil: extend termwidth() to return terminal height, renamed to termsize() It appears crecord.py has its own termsize() function. I want to get rid of it. The fallback height is chosen from the default of cmd.exe on Windows, and VT100 on Unix.
author Yuya Nishihara <yuya@tcha.org>
date Thu, 20 Oct 2016 23:09:05 +0900
parents 1ad1c5017043
children 5b0baa9f3362
line wrap: on
line diff
--- a/mercurial/scmposix.py	Thu Oct 20 22:57:12 2016 +0900
+++ b/mercurial/scmposix.py	Thu Oct 20 23:09:05 2016 +0900
@@ -42,12 +42,12 @@
     else:
         return [os.path.expanduser('~/.hgrc')]
 
-def termwidth(ui):
+def termsize(ui):
     try:
         import termios
         TIOCGWINSZ = termios.TIOCGWINSZ  # unavailable on IRIX (issue3449)
     except (AttributeError, ImportError):
-        return 80
+        return 80, 24
 
     for dev in (ui.ferr, ui.fout, ui.fin):
         try:
@@ -58,9 +58,9 @@
             if not os.isatty(fd):
                 continue
             arri = fcntl.ioctl(fd, TIOCGWINSZ, '\0' * 8)
-            width = array.array('h', arri)[1]
-            if width > 0:
-                return width
+            height, width = array.array('h', arri)[:2]
+            if width > 0 and height > 0:
+                return width, height
         except ValueError:
             pass
         except IOError as e:
@@ -68,4 +68,4 @@
                 pass
             else:
                 raise
-    return 80
+    return 80, 24