diff options
| -rw-r--r-- | src/eval.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/eval.c b/src/eval.c index 8bb201c5df5..0eb1482ee0b 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3130,10 +3130,10 @@ unbind_to (count, value) int count; Lisp_Object value; { - int quitf = !NILP (Vquit_flag); - struct gcpro gcpro1; + Lisp_Object quitf = Vquit_flag; + struct gcpro gcpro1, gcpro2; - GCPRO1 (value); + GCPRO2 (value, quitf); Vquit_flag = Qnil; while (specpdl_ptr != specpdl + count) @@ -3182,8 +3182,8 @@ unbind_to (count, value) } } - if (NILP (Vquit_flag) && quitf) - Vquit_flag = Qt; + if (NILP (Vquit_flag) && !NILP (quitf)) + Vquit_flag = quitf; UNGCPRO; return value; |
