aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorStefan Monnier2012-08-08 15:53:44 -0400
committerStefan Monnier2012-08-08 15:53:44 -0400
commitcc92c454ade571f06d04a7578139b561c799b204 (patch)
tree4f81c2a0bd2a6e7f922e6b20b309a7d8b9f7d953 /src/eval.c
parent4250fdf5b34a9fddf6ee1cf12270d9e269c1aa6e (diff)
downloademacs-cc92c454ade571f06d04a7578139b561c799b204.tar.gz
emacs-cc92c454ade571f06d04a7578139b561c799b204.zip
* src/xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
the failing expression, include them in the error message. * src/eval.c (internal_condition_case_n): Pass nargs and args to hfun. * src/lisp.h (internal_condition_case_n): Update declaration.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c
index d648be81b8d..b531f790cc5 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1399,7 +1399,9 @@ internal_condition_case_n (Lisp_Object (*bfun) (ptrdiff_t, Lisp_Object *),
1399 ptrdiff_t nargs, 1399 ptrdiff_t nargs,
1400 Lisp_Object *args, 1400 Lisp_Object *args,
1401 Lisp_Object handlers, 1401 Lisp_Object handlers,
1402 Lisp_Object (*hfun) (Lisp_Object)) 1402 Lisp_Object (*hfun) (Lisp_Object err,
1403 ptrdiff_t nargs,
1404 Lisp_Object *args))
1403{ 1405{
1404 Lisp_Object val; 1406 Lisp_Object val;
1405 struct catchtag c; 1407 struct catchtag c;
@@ -1417,7 +1419,7 @@ internal_condition_case_n (Lisp_Object (*bfun) (ptrdiff_t, Lisp_Object *),
1417 c.byte_stack = byte_stack_list; 1419 c.byte_stack = byte_stack_list;
1418 if (_setjmp (c.jmp)) 1420 if (_setjmp (c.jmp))
1419 { 1421 {
1420 return (*hfun) (c.val); 1422 return (*hfun) (c.val, nargs, args);
1421 } 1423 }
1422 c.next = catchlist; 1424 c.next = catchlist;
1423 catchlist = &c; 1425 catchlist = &c;