From 8fd33291cf79d22b1498b134b6f512fe4a3074b1 Mon Sep 17 00:00:00 2001 From: Jan Holthuis Date: Mon, 12 Sep 2016 14:08:39 +0200 Subject: [PATCH] linux/reicast-joyconfig: Flush stdin via termios if possible This might be necessary to get rid of input characters from mapping keyboard buttons. --- shell/linux/tools/reicast-joyconfig.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/shell/linux/tools/reicast-joyconfig.py b/shell/linux/tools/reicast-joyconfig.py index 240575b89..05bfc52ce 100755 --- a/shell/linux/tools/reicast-joyconfig.py +++ b/shell/linux/tools/reicast-joyconfig.py @@ -22,6 +22,11 @@ except ImportError: print(" pip install evdev") sys.exit(1) +try: + import termios +except ImportError: + termios = None + DEV_ID_PATTERN = re.compile('(\d+)') DREAMCAST_BUTTONS = ['A', 'B', 'C', 'D', 'X', 'Y', 'Z', 'START'] DREAMCAST_DPAD = [('X', 'LEFT', 'RIGHT'), ('Y', 'UP', 'DOWN')] @@ -212,6 +217,10 @@ def setup_device(dev_id): def ask_yes_no(question, default=True): + # Flush stdin (if possible) + if termios is not None: + termios.tcflush(sys.stdin, termios.TCIFLUSH) + valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False} prompt = "Y/n" if default else "y/N"