Commit d227775c authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(internal_condition_case_1): New function.

parent f1ff6645
......@@ -1094,6 +1094,43 @@ internal_condition_case (bfun, handlers, hfun)
return val;
}
Lisp_Object
internal_condition_case_1 (bfun, arg, handlers, hfun)
Lisp_Object (*bfun) ();
Lisp_Object arg;
Lisp_Object handlers;
Lisp_Object (*hfun) ();
{
Lisp_Object val;
struct catchtag c;
struct handler h;
c.tag = Qnil;
c.val = Qnil;
c.backlist = backtrace_list;
c.handlerlist = handlerlist;
c.lisp_eval_depth = lisp_eval_depth;
c.pdlcount = specpdl_ptr - specpdl;
c.poll_suppress_count = poll_suppress_count;
c.gcpro = gcprolist;
if (_setjmp (c.jmp))
{
return (*hfun) (Fcdr (c.val));
}
c.next = catchlist;
catchlist = &c;
h.handler = handlers;
h.var = Qnil;
h.next = handlerlist;
h.tag = &c;
handlerlist = &h;
val = (*bfun) (arg);
catchlist = c.next;
handlerlist = h.next;
return val;
}
static Lisp_Object find_handler_clause ();
DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment