When using -g, reset terminal state on exit
Fixes various problems where gnome-shell would kill gdb and then leave the terminal in a broken state.
This commit is contained in:
parent
f5aed5127b
commit
b153e4ed0f
@ -10,6 +10,7 @@ import signal
|
|||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import termios
|
||||||
import time
|
import time
|
||||||
import errno
|
import errno
|
||||||
|
|
||||||
@ -248,6 +249,11 @@ else:
|
|||||||
if options.verbose:
|
if options.verbose:
|
||||||
print "Starting shell"
|
print "Starting shell"
|
||||||
|
|
||||||
|
if options.debug:
|
||||||
|
# Record initial terminal state so we can reset it to that
|
||||||
|
# later, in case we kill gdb at a bad time
|
||||||
|
termattrs = termios.tcgetattr(0);
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if run_in_xephyr:
|
if run_in_xephyr:
|
||||||
shell = start_xephyr()
|
shell = start_xephyr()
|
||||||
@ -274,6 +280,9 @@ except KeyboardInterrupt, e:
|
|||||||
print "Shell killed"
|
print "Shell killed"
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
|
if options.debug:
|
||||||
|
termios.tcsetattr(0, termios.TCSANOW, termattrs);
|
||||||
|
|
||||||
if not run_in_xephyr:
|
if not run_in_xephyr:
|
||||||
# Restart gnome-panel and window manager
|
# Restart gnome-panel and window manager
|
||||||
if metacity_pid:
|
if metacity_pid:
|
||||||
|
Loading…
Reference in New Issue
Block a user