aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann2000-07-14 13:57:10 +0000
committerGerd Moellmann2000-07-14 13:57:10 +0000
commit10b29d414ed6ed70bad2d3c8cd12f13ee8607784 (patch)
treee49fd17a2dcd7a3f133255c342ccc5923e25a4fd /src
parent0d8b31c0ff1b0814b8b38206961d5c6a83a3ac69 (diff)
downloademacs-10b29d414ed6ed70bad2d3c8cd12f13ee8607784.tar.gz
emacs-10b29d414ed6ed70bad2d3c8cd12f13ee8607784.zip
(internal_condition_case_2): New function.
Diffstat (limited to 'src')
-rw-r--r--src/eval.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c
index da63f9833a1..d7561353961 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1274,6 +1274,50 @@ internal_condition_case_1 (bfun, arg, handlers, hfun)
1274 handlerlist = h.next; 1274 handlerlist = h.next;
1275 return val; 1275 return val;
1276} 1276}
1277
1278
1279/* Like internal_condition_case but call HFUN with NARGS as first,
1280 and ARGS as second argument. */
1281
1282Lisp_Object
1283internal_condition_case_2 (bfun, nargs, args, handlers, hfun)
1284 Lisp_Object (*bfun) ();
1285 int nargs;
1286 Lisp_Object *args;
1287 Lisp_Object handlers;
1288 Lisp_Object (*hfun) ();
1289{
1290 Lisp_Object val;
1291 struct catchtag c;
1292 struct handler h;
1293
1294 c.tag = Qnil;
1295 c.val = Qnil;
1296 c.backlist = backtrace_list;
1297 c.handlerlist = handlerlist;
1298 c.lisp_eval_depth = lisp_eval_depth;
1299 c.pdlcount = specpdl_ptr - specpdl;
1300 c.poll_suppress_count = poll_suppress_count;
1301 c.gcpro = gcprolist;
1302 c.byte_stack = byte_stack_list;
1303 if (_setjmp (c.jmp))
1304 {
1305 return (*hfun) (c.val);
1306 }
1307 c.next = catchlist;
1308 catchlist = &c;
1309 h.handler = handlers;
1310 h.var = Qnil;
1311 h.next = handlerlist;
1312 h.tag = &c;
1313 handlerlist = &h;
1314
1315 val = (*bfun) (nargs, args);
1316 catchlist = c.next;
1317 handlerlist = h.next;
1318 return val;
1319}
1320
1277 1321
1278static Lisp_Object find_handler_clause (); 1322static Lisp_Object find_handler_clause ();
1279 1323