Commits

Anonymous committed ef3e59a

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.

Comments (0)

Files changed (1)

django/utils/autoreload.py

 except ImportError:
     pass
 
+try:
+    import termios
+except ImportError:
+    termios = None
 
 RUN_RELOADER = True
 
             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