Lisp_Object teml;
Lisp_Object up_event;
Lisp_Object enable;
- ptrdiff_t speccount = SPECPDL_INDEX ();
+ dynwind_begin ();
/* The index of the next element of this_command_keys to examine for
the 'e' interactive code. */
kset_last_command (current_kboard, save_last_command);
{
- Lisp_Object args[3];
+ Lisp_Object tem0, args[3];
args[0] = Qfuncall_interactively;
args[1] = function;
args[2] = specs;
- return unbind_to (speccount, Fapply (3, args));
+ tem0 = Fapply (3, args);
+ dynwind_end ();
+ return tem0;
}
}
case 'k': /* Key sequence. */
{
- ptrdiff_t speccount1 = SPECPDL_INDEX ();
+ dynwind_begin ();
specbind (Qcursor_in_echo_area, Qt);
/* Prompt in `minibuffer-prompt' face. */
Fput_text_property (make_number (0),
Qface, Qminibuffer_prompt, callint_message);
args[i] = Fread_key_sequence (callint_message,
Qnil, Qnil, Qnil, Qnil);
- unbind_to (speccount1, Qnil);
+ dynwind_end ();
teml = args[i];
visargs[i] = Fkey_description (teml, Qnil);
case 'K': /* Key sequence to be defined. */
{
- ptrdiff_t speccount1 = SPECPDL_INDEX ();
+ dynwind_begin ();
specbind (Qcursor_in_echo_area, Qt);
/* Prompt in `minibuffer-prompt' face. */
Fput_text_property (make_number (0),
Qnil, Qt, Qnil, Qnil);
teml = args[i];
visargs[i] = Fkey_description (teml, Qnil);
- unbind_to (speccount1, Qnil);
+ dynwind_end ();
/* If the key sequence ends with a down-event,
discard the following up-event. */
if (tem) tem++;
else tem = "";
}
- unbind_to (speccount, Qnil);
+ dynwind_end ();
QUIT;
{
Lisp_Object val = Ffuncall (nargs, args);
UNGCPRO;
- return unbind_to (speccount, val);
+ dynwind_end ();
+ return val;
}
}
void
syms_of_callint (void)
{
+#include "callint.x"
+
point_marker = Fmake_marker ();
staticpro (&point_marker);
Its purpose is to give temporary modes such as Isearch mode
a way to turn themselves off when a mouse command switches windows. */);
Vmouse_leave_buffer_hook = Qnil;
-
- defsubr (&Sinteractive);
- defsubr (&Scall_interactively);
- defsubr (&Sfuncall_interactively);
- defsubr (&Sprefix_numeric_value);
}