summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2024-08-07 09:21:27 +0800
committerPo Lu <luangruo@yahoo.com>2024-08-07 09:21:27 +0800
commit1a4c26d413f06342fc7fa9230f9312a95a37dae3 (patch)
tree26a1bde5bef543ea897022c1e44f807adfd040de /src/eval.c
parentaa5c725fe7ba0a5e67ce1029061b2d887ddeb949 (diff)
parent679f7ccc49f6300681309029f4e58cffe3e9ff1a (diff)
Merge from savannah/emacs-30
679f7ccc49f Prevent accesses to /content files without a GUI connection f0a7eec5a7d * lisp/net/tramp-integration.el (shortdoc): Use `tramp--w... fb642d9cf54 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... f1e37ae423f Avoid crashes in very large buffers with long lines 4dc9e99349d Update description of string comparison functions 3817355aed5 Add sanity check when adding Tramp functions to shortdoc 1bbb3220179 ; * lisp/erc/erc-fill.el (erc-fill-wrap-mode): Doc fix. 3f6e7e1da68 js-ts-mode: Make jsdoc's "description" block a comment (b... 1c7e00f4f65 Also condition cjk-misc font-spec on Android b89d65df5fa ; * etc/PROBLEMS: How to install sources on SUSE Linux (b... 729b17c2026 ; * src/lread.c (Fload): Add comment. (Bug#72433) bfb1aee9989 Fix ':defer nil' in 'use-package' d787817076e Document unsupported color Emoji on OpenBSD db1f749db55 Fix regressions in Customize caused by 'widget-unselected... f94d58008eb Avoid inserting extra space in SVG data 292fcd20099 Fix c-ts-common filling function (bug#71760) e50d597f450 Fix missing type checks before specbind # Conflicts: # lisp/progmodes/c-ts-common.el
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/eval.c b/src/eval.c
index 2161ab1e1ea..16ece744f42 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1018,8 +1018,8 @@ usage: (let* VARLIST BODY...) */)
}
var = maybe_remove_pos_from_symbol (var);
- if (!NILP (lexenv) && BARE_SYMBOL_P (var)
- && !XBARE_SYMBOL (var)->u.s.declared_special
+ CHECK_TYPE (BARE_SYMBOL_P (var), Qsymbolp, var);
+ if (!NILP (lexenv) && !XBARE_SYMBOL (var)->u.s.declared_special
&& NILP (Fmemq (var, Vinternal_interpreter_environment)))
/* Lexically bind VAR by adding it to the interpreter's binding
alist. */
@@ -1090,10 +1090,10 @@ usage: (let VARLIST BODY...) */)
varlist = XCDR (varlist);
Lisp_Object var = maybe_remove_pos_from_symbol (SYMBOLP (elt) ? elt
: Fcar (elt));
+ CHECK_TYPE (BARE_SYMBOL_P (var), Qsymbolp, var);
tem = temps[argnum];
- if (!NILP (lexenv) && SYMBOLP (var)
- && !XSYMBOL (var)->u.s.declared_special
+ if (!NILP (lexenv) && !XBARE_SYMBOL (var)->u.s.declared_special
&& NILP (Fmemq (var, Vinternal_interpreter_environment)))
/* Lexically bind VAR by adding it to the lexenv alist. */
lexenv = Fcons (Fcons (var, tem), lexenv);
@@ -1492,7 +1492,7 @@ internal_lisp_condition_case (Lisp_Object var, Lisp_Object bodyform,
ptrdiff_t CACHEABLE clausenb = 0;
var = maybe_remove_pos_from_symbol (var);
- CHECK_SYMBOL (var);
+ CHECK_TYPE (BARE_SYMBOL_P (var), Qsymbolp, var);
Lisp_Object success_handler = Qnil;
@@ -3272,18 +3272,18 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs, Lisp_Object *arg_vector)
{
maybe_quit ();
- Lisp_Object next = XCAR (syms_left);
- if (!SYMBOLP (next))
+ Lisp_Object next = maybe_remove_pos_from_symbol (XCAR (syms_left));
+ if (!BARE_SYMBOL_P (next))
xsignal1 (Qinvalid_function, fun);
- if (EQ (next, Qand_rest))
+ if (BASE_EQ (next, Qand_rest))
{
if (rest || previous_rest)
xsignal1 (Qinvalid_function, fun);
rest = 1;
previous_rest = true;
}
- else if (EQ (next, Qand_optional))
+ else if (BASE_EQ (next, Qand_optional))
{
if (optional || rest || previous_rest)
xsignal1 (Qinvalid_function, fun);
@@ -3305,12 +3305,12 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs, Lisp_Object *arg_vector)
arg = Qnil;
/* Bind the argument. */
- if (!NILP (lexenv) && SYMBOLP (next))
+ if (!NILP (lexenv))
/* Lexically bind NEXT by adding it to the lexenv alist. */
lexenv = Fcons (Fcons (next, arg), lexenv);
else
/* Dynamically bind NEXT. */
- specbind (maybe_remove_pos_from_symbol (next), arg);
+ specbind (next, arg);
previous_rest = false;
}
}