diff options
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/eval.c b/src/eval.c index 9f90e6df4b5..0e47d7c757c 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -117,10 +117,10 @@ Lisp_Object Vsignaling_function; | |||
| 117 | 117 | ||
| 118 | int handling_signal; | 118 | int handling_signal; |
| 119 | 119 | ||
| 120 | static Lisp_Object apply_lambda (Lisp_Object fun, Lisp_Object args); | ||
| 121 | static Lisp_Object funcall_lambda (Lisp_Object, size_t, Lisp_Object *); | 120 | static Lisp_Object funcall_lambda (Lisp_Object, size_t, Lisp_Object *); |
| 122 | static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN; | 121 | static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN; |
| 123 | static int interactive_p (int); | 122 | static int interactive_p (int); |
| 123 | static Lisp_Object apply_lambda (Lisp_Object fun, Lisp_Object args); | ||
| 124 | 124 | ||
| 125 | void | 125 | void |
| 126 | init_eval_once (void) | 126 | init_eval_once (void) |
| @@ -684,7 +684,7 @@ usage: (defmacro NAME ARGLIST [DOCSTRING] [DECL] BODY...) */) | |||
| 684 | tail = Fcons (lambda_list, tail); | 684 | tail = Fcons (lambda_list, tail); |
| 685 | else | 685 | else |
| 686 | tail = Fcons (lambda_list, Fcons (doc, tail)); | 686 | tail = Fcons (lambda_list, Fcons (doc, tail)); |
| 687 | 687 | ||
| 688 | defn = Fcons (Qlambda, tail); | 688 | defn = Fcons (Qlambda, tail); |
| 689 | if (!NILP (Vinternal_interpreter_environment)) /* Mere optimization! */ | 689 | if (!NILP (Vinternal_interpreter_environment)) /* Mere optimization! */ |
| 690 | defn = Ffunction (Fcons (defn, Qnil)); | 690 | defn = Ffunction (Fcons (defn, Qnil)); |
| @@ -1012,11 +1012,8 @@ usage: (let* VARLIST BODY...) */) | |||
| 1012 | 1012 | ||
| 1013 | varlist = XCDR (varlist); | 1013 | varlist = XCDR (varlist); |
| 1014 | } | 1014 | } |
| 1015 | |||
| 1016 | UNGCPRO; | 1015 | UNGCPRO; |
| 1017 | |||
| 1018 | val = Fprogn (Fcdr (args)); | 1016 | val = Fprogn (Fcdr (args)); |
| 1019 | |||
| 1020 | return unbind_to (count, val); | 1017 | return unbind_to (count, val); |
| 1021 | } | 1018 | } |
| 1022 | 1019 | ||
| @@ -2083,7 +2080,8 @@ then strings and vectors are not accepted. */) | |||
| 2083 | return Qnil; | 2080 | return Qnil; |
| 2084 | funcar = XCAR (fun); | 2081 | funcar = XCAR (fun); |
| 2085 | if (EQ (funcar, Qclosure)) | 2082 | if (EQ (funcar, Qclosure)) |
| 2086 | return !NILP (Fassq (Qinteractive, Fcdr (Fcdr (XCDR (fun))))) ? Qt : if_prop; | 2083 | return (!NILP (Fassq (Qinteractive, Fcdr (Fcdr (XCDR (fun))))) |
| 2084 | ? Qt : if_prop); | ||
| 2087 | else if (EQ (funcar, Qlambda)) | 2085 | else if (EQ (funcar, Qlambda)) |
| 2088 | return !NILP (Fassq (Qinteractive, Fcdr (XCDR (fun)))) ? Qt : if_prop; | 2086 | return !NILP (Fassq (Qinteractive, Fcdr (XCDR (fun)))) ? Qt : if_prop; |
| 2089 | else if (EQ (funcar, Qautoload)) | 2087 | else if (EQ (funcar, Qautoload)) |
| @@ -2898,7 +2896,7 @@ call7 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2, Lisp_Object arg3, | |||
| 2898 | /* The caller should GCPRO all the elements of ARGS. */ | 2896 | /* The caller should GCPRO all the elements of ARGS. */ |
| 2899 | 2897 | ||
| 2900 | DEFUN ("functionp", Ffunctionp, Sfunctionp, 1, 1, 0, | 2898 | DEFUN ("functionp", Ffunctionp, Sfunctionp, 1, 1, 0, |
| 2901 | doc: /* Return non-nil if OBJECT is a type of object that can be called as a function. */) | 2899 | doc: /* Non-nil if OBJECT is a function. */) |
| 2902 | (Lisp_Object object) | 2900 | (Lisp_Object object) |
| 2903 | { | 2901 | { |
| 2904 | if (SYMBOLP (object) && !NILP (Ffboundp (object))) | 2902 | if (SYMBOLP (object) && !NILP (Ffboundp (object))) |
| @@ -3220,7 +3218,7 @@ funcall_lambda (Lisp_Object fun, size_t nargs, | |||
| 3220 | xsignal2 (Qwrong_number_of_arguments, fun, make_number (nargs)); | 3218 | xsignal2 (Qwrong_number_of_arguments, fun, make_number (nargs)); |
| 3221 | else | 3219 | else |
| 3222 | val = Qnil; | 3220 | val = Qnil; |
| 3223 | 3221 | ||
| 3224 | /* Bind the argument. */ | 3222 | /* Bind the argument. */ |
| 3225 | if (!NILP (lexenv) && SYMBOLP (next)) | 3223 | if (!NILP (lexenv) && SYMBOLP (next)) |
| 3226 | /* Lexically bind NEXT by adding it to the lexenv alist. */ | 3224 | /* Lexically bind NEXT by adding it to the lexenv alist. */ |
| @@ -3501,7 +3499,6 @@ context where binding is lexical by default. */) | |||
| 3501 | } | 3499 | } |
| 3502 | 3500 | ||
| 3503 | 3501 | ||
| 3504 | |||
| 3505 | DEFUN ("backtrace-debug", Fbacktrace_debug, Sbacktrace_debug, 2, 2, 0, | 3502 | DEFUN ("backtrace-debug", Fbacktrace_debug, Sbacktrace_debug, 2, 2, 0, |
| 3506 | doc: /* Set the debug-on-exit flag of eval frame LEVEL levels down to FLAG. | 3503 | doc: /* Set the debug-on-exit flag of eval frame LEVEL levels down to FLAG. |
| 3507 | The debugger is entered when that frame exits, if the flag is non-nil. */) | 3504 | The debugger is entered when that frame exits, if the flag is non-nil. */) |