diff options
| author | Po Lu <luangruo@yahoo.com> | 2024-08-07 09:21:27 +0800 |
|---|---|---|
| committer | Po Lu <luangruo@yahoo.com> | 2024-08-07 09:21:27 +0800 |
| commit | 1a4c26d413f06342fc7fa9230f9312a95a37dae3 (patch) | |
| tree | 26a1bde5bef543ea897022c1e44f807adfd040de /src/eval.c | |
| parent | aa5c725fe7ba0a5e67ce1029061b2d887ddeb949 (diff) | |
| parent | 679f7ccc49f6300681309029f4e58cffe3e9ff1a (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.c | 22 |
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; } } |
