Index: keyboard.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/keyboard.c,v retrieving revision 1.626.4.4 diff -c -r1.626.4.4 keyboard.c *** keyboard.c 29 Sep 2002 17:50:27 -0000 1.626.4.4 --- keyboard.c 23 Feb 2003 21:51:33 -0000 *************** *** 1309,1314 **** --- 1309,1323 ---- void safe_run_hooks P_ ((Lisp_Object)); static void adjust_point_for_property P_ ((int)); + /* Cancel hourglass from protect_unwind. + ARG is not used. */ + static Lisp_Object + cancel_hourglass_unwind (arg) + Lisp_Object arg; + { + cancel_hourglass (); + } + Lisp_Object command_loop_1 () { *************** *** 1632,1652 **** } /* Here for a command that isn't executed directly */ ! #ifdef HAVE_X_WINDOWS ! if (display_hourglass_p) ! start_hourglass (); #endif ! nonundocount = 0; ! if (NILP (current_kboard->Vprefix_arg)) ! Fundo_boundary (); ! Fcommand_execute (Vthis_command, Qnil, Qnil, Qnil); #ifdef HAVE_X_WINDOWS ! if (display_hourglass_p) ! cancel_hourglass (); #endif } directly_done: ; current_kboard->Vlast_prefix_arg = Vcurrent_prefix_arg; --- 1641,1668 ---- } /* Here for a command that isn't executed directly */ ! ! { #ifdef HAVE_X_WINDOWS ! int scount = specpdl_ptr - specpdl; ! ! if (display_hourglass_p) ! { ! record_unwind_protect (cancel_hourglass_unwind, Qnil); ! start_hourglass (); ! } #endif ! nonundocount = 0; ! if (NILP (current_kboard->Vprefix_arg)) ! Fundo_boundary (); ! Fcommand_execute (Vthis_command, Qnil, Qnil, Qnil); #ifdef HAVE_X_WINDOWS ! if (display_hourglass_p) ! unbind_to (scount, Qnil); #endif + } } directly_done: ; current_kboard->Vlast_prefix_arg = Vcurrent_prefix_arg;