# HG changeset patch # User Richard M. Stallman # Date 823191041 0 # Node ID fb11ccbe5c7c0329b5bbfb4f0a6a07147c1b4945 # Parent 1ce19c0594b19ae7f3fed14a4179fbb3dd4a2104 (Qcursor_in_echo_area): New variable. (syms_of_fns): Set up Lisp var. (Fy_or_n_p): Bind Qcursor_in_echo_area in case of nonlocal exit. diff -r 1ce19c0594b1 -r fb11ccbe5c7c src/fns.c --- a/src/fns.c Thu Feb 01 07:22:14 1996 +0000 +++ b/src/fns.c Thu Feb 01 16:10:41 1996 +0000 @@ -41,6 +41,7 @@ Lisp_Object Qstring_lessp, Qprovide, Qrequire; Lisp_Object Qyes_or_no_p_history; +Lisp_Object Qcursor_in_echo_area; static int internal_equal (); @@ -1558,8 +1559,10 @@ register int answer; Lisp_Object xprompt; Lisp_Object args[2]; - int ocech = cursor_in_echo_area; struct gcpro gcpro1, gcpro2; + int count = specpdl_ptr - specpdl; + + specbind (Qcursor_in_echo_area, Qt); map = Fsymbol_value (intern ("query-replace-map")); @@ -1569,6 +1572,8 @@ while (1) { + + #ifdef HAVE_MENUS if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event)) && have_menus_p ()) @@ -1642,9 +1647,9 @@ cursor_in_echo_area = -1; message_nolog ("%s(y or n) %c", XSTRING (xprompt)->data, answer ? 'y' : 'n'); - cursor_in_echo_area = ocech; } + unbind_to (count, Qnil); return answer ? Qt : Qnil; } @@ -1823,6 +1828,8 @@ staticpro (&Qrequire); Qyes_or_no_p_history = intern ("yes-or-no-p-history"); staticpro (&Qyes_or_no_p_history); + Qcursor_in_echo_area = intern ("cursor-in-echo-area"); + staticpro (&Qcursor_in_echo_area); DEFVAR_LISP ("features", &Vfeatures, "A list of symbols which are the features of the executing emacs.\n\