aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/comp.c4
-rw-r--r--src/eval.c29
-rw-r--r--src/lisp.h2
3 files changed, 33 insertions, 2 deletions
diff --git a/src/comp.c b/src/comp.c
index f77faaa483e..12c5f1c7e49 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -4618,11 +4618,11 @@ eln_load_path_final_clean_up (void)
4618 FOR_EACH_TAIL (dir_tail) 4618 FOR_EACH_TAIL (dir_tail)
4619 { 4619 {
4620 Lisp_Object files_in_dir = 4620 Lisp_Object files_in_dir =
4621 internal_condition_case_4 (Fdirectory_files, 4621 internal_condition_case_5 (Fdirectory_files,
4622 concat2 (XCAR (dir_tail), 4622 concat2 (XCAR (dir_tail),
4623 Vcomp_native_version_dir), 4623 Vcomp_native_version_dir),
4624 Qt, build_string ("\\.eln\\.old\\'"), Qnil, 4624 Qt, build_string ("\\.eln\\.old\\'"), Qnil,
4625 Qt, return_nil); 4625 Qt, return_nil, Qnil);
4626 FOR_EACH_TAIL (files_in_dir) 4626 FOR_EACH_TAIL (files_in_dir)
4627 Fdelete_file (XCAR (files_in_dir), Qnil); 4627 Fdelete_file (XCAR (files_in_dir), Qnil);
4628 } 4628 }
diff --git a/src/eval.c b/src/eval.c
index 2b31b91175b..368fa0944a1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1534,6 +1534,35 @@ internal_condition_case_4 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object,
1534 } 1534 }
1535} 1535}
1536 1536
1537/* Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3,
1538 ARG4, ARG5 as its arguments. */
1539
1540Lisp_Object
1541internal_condition_case_5 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object,
1542 Lisp_Object, Lisp_Object,
1543 Lisp_Object),
1544 Lisp_Object arg1, Lisp_Object arg2,
1545 Lisp_Object arg3, Lisp_Object arg4,
1546 Lisp_Object arg5, Lisp_Object handlers,
1547 Lisp_Object (*hfun) (Lisp_Object))
1548{
1549 struct handler *c = push_handler (handlers, CONDITION_CASE);
1550 if (sys_setjmp (c->jmp))
1551 {
1552 Lisp_Object val = handlerlist->val;
1553 clobbered_eassert (handlerlist == c);
1554 handlerlist = handlerlist->next;
1555 return hfun (val);
1556 }
1557 else
1558 {
1559 Lisp_Object val = bfun (arg1, arg2, arg3, arg4, arg5);
1560 eassert (handlerlist == c);
1561 handlerlist = c->next;
1562 return val;
1563 }
1564}
1565
1537/* Like internal_condition_case but call BFUN with NARGS as first, 1566/* Like internal_condition_case but call BFUN with NARGS as first,
1538 and ARGS as second argument. */ 1567 and ARGS as second argument. */
1539 1568
diff --git a/src/lisp.h b/src/lisp.h
index 588316e01b8..923e742eec6 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -4157,6 +4157,8 @@ extern Lisp_Object internal_condition_case (Lisp_Object (*) (void), Lisp_Object,
4157extern Lisp_Object internal_condition_case_1 (Lisp_Object (*) (Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)); 4157extern Lisp_Object internal_condition_case_1 (Lisp_Object (*) (Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
4158extern Lisp_Object internal_condition_case_2 (Lisp_Object (*) (Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)); 4158extern Lisp_Object internal_condition_case_2 (Lisp_Object (*) (Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
4159extern Lisp_Object internal_condition_case_3 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)); 4159extern Lisp_Object internal_condition_case_3 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
4160extern Lisp_Object internal_condition_case_4 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
4161extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
4160extern Lisp_Object internal_condition_case_n 4162extern Lisp_Object internal_condition_case_n
4161 (Lisp_Object (*) (ptrdiff_t, Lisp_Object *), ptrdiff_t, Lisp_Object *, 4163 (Lisp_Object (*) (ptrdiff_t, Lisp_Object *), ptrdiff_t, Lisp_Object *,
4162 Lisp_Object, Lisp_Object (*) (Lisp_Object, ptrdiff_t, Lisp_Object *)); 4164 Lisp_Object, Lisp_Object (*) (Lisp_Object, ptrdiff_t, Lisp_Object *));