diff options
author | Stefan Kangas <stefankangas@gmail.com> | 2025-03-05 05:08:48 +0100 |
---|---|---|
committer | Stefan Kangas <stefankangas@gmail.com> | 2025-03-06 00:47:24 +0100 |
commit | 4b5cc0bfc6d25ff4b7cd16c840e325e9fada4593 (patch) | |
tree | 57cf82491cd5a9498f720657a0990cda1c6e5400 /lisp/emacs-lisp | |
parent | af44c7630cafba832a8b7c3b302dd0b16c4f271c (diff) | |
download | emacs-4b5cc0bfc6d25ff4b7cd16c840e325e9fada4593.tar.gz emacs-4b5cc0bfc6d25ff4b7cd16c840e325e9fada4593.tar.bz2 emacs-4b5cc0bfc6d25ff4b7cd16c840e325e9fada4593.zip |
Rewrite cl--parsing-keywords using backtick
* lisp/emacs-lisp/cl-seq.el (cl--parsing-keywords): Rewrite using
backtick.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/cl-seq.el | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/lisp/emacs-lisp/cl-seq.el b/lisp/emacs-lisp/cl-seq.el index f6be1dfd0c6..33f14df0291 100644 --- a/lisp/emacs-lisp/cl-seq.el +++ b/lisp/emacs-lisp/cl-seq.el @@ -47,7 +47,7 @@ ;; This is special-cased here so that we can compile ;; this file independent from cl-macs. -(defmacro cl--parsing-keywords (kwords other-keys &rest body) +(defmacro cl--parsing-keywords (keywords other-keys &rest body) (declare (indent 2) (debug (sexp sexp &rest form))) `(let* ,(mapcar (lambda (x) @@ -59,26 +59,22 @@ (setq mem `(and ,mem (setq cl-if ,mem) t))) (list (intern (format "cl-%s" (substring (symbol-name var) 1))) - (if (consp x) `(or ,mem ,(car (cdr x))) mem)))) - kwords) + (if (consp x) `(or ,mem ,(cadr x)) mem)))) + keywords) ,@(append (and (not (eq other-keys t)) - (list - (list 'let '((cl-keys-temp cl-keys)) - (list 'while 'cl-keys-temp - (list 'or (list 'memq '(car cl-keys-temp) - (list 'quote - (mapcar - (lambda (x) - (if (consp x) - (car x) x)) - (append kwords - other-keys)))) - '(car (cdr (memq (quote :allow-other-keys) - cl-keys))) - '(error "Bad keyword argument %s" - (car cl-keys-temp))) - '(setq cl-keys-temp (cdr (cdr cl-keys-temp))))))) + `((let ((cl-keys-temp cl-keys)) + (while cl-keys-temp + (or (memq (car cl-keys-temp) + (quote ,(mapcar + (lambda (x) + (if (consp x) + (car x) x)) + (append keywords other-keys)))) + (cadr (memq :allow-other-keys cl-keys)) + (error "Bad keyword argument %s" + (car cl-keys-temp))) + (setq cl-keys-temp (cddr cl-keys-temp)))))) body))) (defmacro cl--check-key (x) ;Expects `cl-key' in context of generated code. |