######################################################################## # $Header: /var/local/cvsroot/4Suite/Ft/Lib/Terminfo.py,v 1.6 2005/11/15 07:36:24 mbrown Exp $ """ Provides some of the information from the terminfo database. Copyright 2005 Fourthought, Inc. (USA). Detailed license and copyright information: http://4suite.org/COPYRIGHT Project home, documentation, distributions: http://4suite.org/ """ import sys, os TERMTYPES = ['linux', 'console', 'con132x25', 'con132x30', 'con132x43', 'con132x60', 'con80x25', 'con80x28', 'con80x30', 'con80x43', 'con80x50', 'con80x60', 'xterm', 'xterm-color', 'color-xterm', 'vt100', 'vt100-color', 'rxvt', 'ansi', 'Eterm', 'putty', 'vt220-color', 'cygwin' ] # Default sizes should fit on all displays. DEFAULT_LINES = 24 DEFAULT_COLUMNS = 80 def GetLines(stream=sys.stdout): lines = DEFAULT_LINES if hasattr(stream, 'isatty') and stream.isatty() \ and os.environ.get('TERM') in TERMTYPES: try: import fcntl, termios, struct except ImportError: pass else: if hasattr(termios, 'TIOCGWINSZ'): ws = struct.pack("HHHH", 0, 0, 0, 0) ws = fcntl.ioctl(stream.fileno(), termios.TIOCGWINSZ, ws) lines, columns, x, y = struct.unpack("HHHH", ws) return lines def GetColumns(stream=sys.stdout): columns = DEFAULT_COLUMNS if stream.isatty() and os.environ.get('TERM') in TERMTYPES: try: import fcntl, termios, struct except ImportError: pass else: if hasattr(termios, 'TIOCGWINSZ'): ws = struct.pack("HHHH", 0, 0, 0, 0) ws = fcntl.ioctl(stream.fileno(), termios.TIOCGWINSZ, ws) lines, columns, x, y = struct.unpack("HHHH", ws) return columns