summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Tracey <kmtracey@gmail.com>2011-03-19 22:09:38 +0000
committerKaren Tracey <kmtracey@gmail.com>2011-03-19 22:09:38 +0000
commitf5b22ed9977d19bc35ed02bcb965c0e0f48ef127 (patch)
tree555601ff9e43a2c550d862eccfc87631b0e517ad
parent775a6e694fedc6b057dc560da8e4a07dc7e9457c (diff)
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.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15883 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/utils/autoreload.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py
index 51aaccdc8e..e5a421e586 100644
--- a/django/utils/autoreload.py
+++ b/django/utils/autoreload.py
@@ -42,6 +42,10 @@ try:
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