emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Recent keyboard changes breaks quitting


From: Chong Yidong
Subject: Re: Recent keyboard changes breaks quitting
Date: Sun, 23 Sep 2012 16:33:33 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux)

I found the problem.  The Fcopy_sequence in timer_check can QUIT,
jumping back to the command loop.  If this happens when timer_check is
from inside wait_reading_process_output, it screws up the
wait_reading_process_output's handling of the quit flag.

=== modified file 'src/keyboard.c'
*** src/keyboard.c      2012-09-22 13:16:03 +0000
--- src/keyboard.c      2012-09-23 08:22:06 +0000
***************
*** 4496,4501 ****
--- 4496,4504 ----
    Lisp_Object timers, idle_timers;
    struct gcpro gcpro1, gcpro2;
  
+   Lisp_Object tem = Vinhibit_quit;
+   Vinhibit_quit = Qt;
+ 
    /* We use copies of the timers' lists to allow a timer to add itself
       again, without locking up Emacs if the newly added timer is
       already ripe when added.  */
***************
*** 4508,4513 ****
--- 4511,4518 ----
    else
      idle_timers = Qnil;
  
+   Vinhibit_quit = tem;
+ 
    GCPRO2 (timers, idle_timers);
  
    do





reply via email to

[Prev in Thread] Current Thread [Next in Thread]