usage: (funcall-interactively FUNCTION &rest ARGUMENTS) */)
(ptrdiff_t nargs, Lisp_Object *args)
{
- ptrdiff_t speccount = SPECPDL_INDEX ();
+ dynwind_begin ();
temporarily_switch_to_single_kboard (NULL);
/* Nothing special to do here, all the work is inside
`called-interactively-p'. Which will look for us as a marker in the
backtrace. */
- return unbind_to (speccount, Ffuncall (nargs, args));
+ Lisp_Object tem = Ffuncall (nargs, args);
+ dynwind_end ();
+ return tem;
}
DEFUN ("call-interactively", Fcall_interactively, Scall_interactively, 1, 3, 0,
else tem = "";
}
dynwind_end ();
+ dynwind_begin ();
QUIT;
/* This is for computing the SHADOWS arg for describe_map_tree. */
Lisp_Object active_maps = Fcurrent_active_maps (Qnil, Qnil);
Lisp_Object earlier_maps;
- ptrdiff_t count = SPECPDL_INDEX ();
+ dynwind_begin ();
changed = 1;
strp += 2; /* skip \{ or \< */
tem = Fbuffer_string ();
Ferase_buffer ();
set_buffer_internal (oldbuf);
- unbind_to (count, Qnil);
+ dynwind_end ();
subst_string:
start = SDATA (tem);
return Qnil;
}
- specpdl_count = SPECPDL_INDEX ();
+ dynwind_begin ();
/* Avoid crashes if, e.g., another client will connect while we
are in a menu. */
tty_menu_end:
- unbind_to (specpdl_count, Qnil);
+ dynwind_end ();
return entry;
}
could get an infloop in next_frame since the frame is not yet in
Vframe_list. */
{
- ptrdiff_t count2 = SPECPDL_INDEX ();
+ dynwind_begin ();
record_unwind_protect (unwind_create_frame_1, inhibit_lisp_code);
inhibit_lisp_code = Qt;
? make_number (0) : make_number (1),
NULL, NULL, RES_TYPE_NUMBER);
- unbind_to (count2, Qnil);
+ dynwind_end ();
}
x_default_parameter (f, parameters, Qbuffer_predicate, Qnil,
int n_leaf_windows;
ptrdiff_t k;
int i, n;
- ptrdiff_t count = SPECPDL_INDEX ();
+ dynwind_begin ();
/* If the frame has been resized since this window configuration was
made, we change the frame to the size specified in the
configuration, restore the configuration, and then resize it
adjust_frame_glyphs (f);
unblock_input ();
- unbind_to (count, Qnil);
+ dynwind_end ();
/* Scan dead buffer windows. */
for (; CONSP (dead_windows); dead_windows = XCDR (dead_windows))
Lisp_Object title;
const char *error_name;
Lisp_Object selection;
- ptrdiff_t specpdl_count = SPECPDL_INDEX ();
+ dynwind_begin ();
check_window_system (f);
selection = x_dialog_show (f, title, header, &error_name);
unblock_input ();
- unbind_to (specpdl_count, Qnil);
+ dynwind_end ();
discard_menu_items ();
if (error_name) error ("%s", error_name);