Index: third_party/pexpect/tests/getch.py |
diff --git a/third_party/pexpect/tests/getch.py b/third_party/pexpect/tests/getch.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a362e521d31c2f42bfa45b7a8b8df8f0bd9fa09d |
--- /dev/null |
+++ b/third_party/pexpect/tests/getch.py |
@@ -0,0 +1,50 @@ |
+#!/usr/bin/env python |
+''' |
+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 sys, tty, termios |
+ |
+if hasattr(sys.stdin, 'buffer'): |
+ # Python 3: we want to read raw bytes |
+ stdin = sys.stdin.buffer |
+else: |
+ stdin = sys.stdin |
+ |
+def main(): |
+ print('READY', end='\r\n') |
+ while True: |
+ try: |
+ val = ord(stdin.read(1)) |
+ except KeyboardInterrupt: |
+ val = 3 |
+ print('%d<STOP>' % (val,), end='\r\n') |
+ if val == 0: |
+ # StopIteration equivalent is ctrl+' ' (\x00, NUL) |
+ break |
+ |
+if __name__ == '__main__': |
+ fd = sys.stdin.fileno() |
+ old_settings = termios.tcgetattr(fd) |
+ try: |
+ tty.setraw(sys.stdin.fileno()) |
+ main() |
+ finally: |
+ termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) |
+ sys.stdout.flush() |