From: Gerd Moellmann Date: Thu, 15 Mar 2001 16:31:51 +0000 (+0000) Subject: (timer_check): Preserve the value of deactivate-mark. X-Git-Tag: emacs-pretest-21.0.101~300 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d0bbfc999a2c2375d2f56ea28b38efcd5ce33c27;p=emacs.git (timer_check): Preserve the value of deactivate-mark. (command_loop_1): Undo last change. --- diff --git a/src/ChangeLog b/src/ChangeLog index dfcfaa8dde2..da16e6e58da 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2001-03-15 Gerd Moellmann + * keyboard.c (timer_check): Preserve the value of deactivate-mark. + (command_loop_1): Undo last change. + * xterm.c (fast_find_position): Return the correct vpos. * data.c (store_symval_forwarding): Add parameter BUF. If BUF is diff --git a/src/keyboard.c b/src/keyboard.c index 02d923f33d3..3b774ea2753 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -1479,10 +1479,6 @@ command_loop_1 () this variable differently. */ Vdisable_point_adjustment = Qnil; - /* Process filters and timers may have messed with deactivate-mark. - reset it before we execute the command. */ - Vdeactivate_mark = Qnil; - /* Execute the command. */ Vthis_command = cmd; @@ -4021,17 +4017,18 @@ timer_check (do_it_now) if (NILP (vector[0])) { int was_locked = single_kboard; - int count = specpdl_ptr - specpdl; + int count = BINDING_STACK_SIZE (); + Lisp_Object old_deactivate_mark = Vdeactivate_mark; /* Mark the timer as triggered to prevent problems if the lisp code fails to reschedule it right. */ vector[0] = Qt; specbind (Qinhibit_quit, Qt); - + call1 (Qtimer_event_handler, chosen_timer); + Vdeactivate_mark = old_deactivate_mark; timers_run++; - unbind_to (count, Qnil); /* Resume allowing input from any kboard, if that was true before. */