From f9f2f4b7ec62c75d55bd1240ae182615e62fbe64 Mon Sep 17 00:00:00 2001 From: Karen Tracey Date: Sat, 19 Mar 2011 22:13:35 +0000 Subject: [PATCH] [1.2.X] Fixed #15565: Ensure terminal echo is on after reloader reloads (something turns it off on some systems if reload happens while at a pdb prompt). Thanks for the report zimnyx. r15883 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15884 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/autoreload.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py index 51aaccdc8e62f..e5a421e586ca0 100644 --- a/django/utils/autoreload.py +++ b/django/utils/autoreload.py @@ -42,6 +42,10 @@ except ImportError: pass +try: + import termios +except ImportError: + termios = None RUN_RELOADER = True @@ -67,7 +71,16 @@ def code_changed(): return True return False +def ensure_echo_on(): + if termios: + fd = sys.stdin.fileno() + attr_list = termios.tcgetattr(fd) + if not attr_list[3] & termios.ECHO: + attr_list[3] |= termios.ECHO + termios.tcsetattr(fd, termios.TCSANOW, attr_list) + def reloader_thread(): + ensure_echo_on() while RUN_RELOADER: if code_changed(): sys.exit(3) # force reload