| Index: third_party/pexpect/tests/sigwinch_report.py
|
| diff --git a/third_party/pexpect/tests/sigwinch_report.py b/third_party/pexpect/tests/sigwinch_report.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f10956ab1c9629fda50ebd7832c544bdefb2da8c
|
| --- /dev/null
|
| +++ b/third_party/pexpect/tests/sigwinch_report.py
|
| @@ -0,0 +1,50 @@
|
| +'''
|
| +PEXPECT LICENSE
|
| +
|
| + This license is approved by the OSI and FSF as GPL-compatible.
|
| + http://opensource.org/licenses/isc-license.txt
|
| +
|
| + Copyright (c) 2012, Noah Spurrier <noah@noah.org>
|
| + PERMISSION TO USE, COPY, MODIFY, AND/OR DISTRIBUTE THIS SOFTWARE FOR ANY
|
| + PURPOSE WITH OR WITHOUT FEE IS HEREBY GRANTED, PROVIDED THAT THE ABOVE
|
| + COPYRIGHT NOTICE AND THIS PERMISSION NOTICE APPEAR IN ALL COPIES.
|
| + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
| + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
| + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
| + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
| + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
| + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
| + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
| +
|
| +'''
|
| +from __future__ import print_function
|
| +
|
| +import signal, time, struct, fcntl, termios, sys
|
| +
|
| +def getwinsize():
|
| + '''This returns the window size of the child tty.
|
| + The return value is a tuple of (rows, cols).
|
| + '''
|
| + if 'TIOCGWINSZ' in dir(termios):
|
| + TIOCGWINSZ = termios.TIOCGWINSZ
|
| + else:
|
| + TIOCGWINSZ = 1074295912 # Assume
|
| + s = struct.pack('HHHH', 0, 0, 0, 0)
|
| + x = fcntl.ioctl(sys.stdout.fileno(), TIOCGWINSZ, s)
|
| + return struct.unpack('HHHH', x)[0:2]
|
| +
|
| +def handler(signum, frame):
|
| + print('signal')
|
| + sys.stdout.flush()
|
| + print('SIGWINCH:', getwinsize ())
|
| + sys.stdout.flush()
|
| +
|
| +print("Initial Size:", getwinsize())
|
| +print("setting handler for SIGWINCH")
|
| +signal.signal(signal.SIGWINCH, handler)
|
| +print("READY")
|
| +
|
| +while 1:
|
| + sys.stdout.flush()
|
| + time.sleep(1)
|
| +
|
|
|