mercurial/crecord.py
changeset 31932 20a68f714f9b
parent 31931 0130c3e1b1d9
child 31933 b2478a996a82
--- a/mercurial/crecord.py	Thu Apr 06 11:25:33 2017 +0200
+++ b/mercurial/crecord.py	Thu Apr 06 11:25:13 2017 +0200
@@ -474,11 +474,13 @@
     ui.write(_('starting interactive selection\n'))
     chunkselector = curseschunkselector(headerlist, ui, operation)
     f = signal.getsignal(signal.SIGTSTP)
-    curses.wrapper(chunkselector.main)
-    if chunkselector.initerr is not None:
-        raise error.Abort(chunkselector.initerr)
-    # ncurses does not restore signal handler for SIGTSTP
-    signal.signal(signal.SIGTSTP, f)
+    try:
+        curses.wrapper(chunkselector.main)
+        if chunkselector.initerr is not None:
+            raise error.Abort(chunkselector.initerr)
+        # ncurses does not restore signal handler for SIGTSTP
+    finally:
+        signal.signal(signal.SIGTSTP, f)
     return chunkselector.opts
 
 def testdecorator(testfn, f):