diff options
| author | Stefan Monnier | 2012-08-08 15:53:44 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-08-08 15:53:44 -0400 |
| commit | cc92c454ade571f06d04a7578139b561c799b204 (patch) | |
| tree | 4f81c2a0bd2a6e7f922e6b20b309a7d8b9f7d953 /src/eval.c | |
| parent | 4250fdf5b34a9fddf6ee1cf12270d9e269c1aa6e (diff) | |
| download | emacs-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.c | 6 |
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; |