mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-06-14 12:31:25 +00:00
Generalize 'scrape-elpa--safe-evil'
* admin/scrape-elpa.el (scrape-elpa--safe-eval): Extend support from just 'cons' and 'concat' to any side-effect-free function.
This commit is contained in:
parent
5bc7185afa
commit
0afb026a99
1 changed files with 3 additions and 6 deletions
|
|
@ -43,12 +43,9 @@ be comprehensive, but just to handle the kinds of expressions that
|
||||||
(cons
|
(cons
|
||||||
(if (eq (car-safe car) '\,) (scrape-elpa--safe-eval (cadr car) vars) car)
|
(if (eq (car-safe car) '\,) (scrape-elpa--safe-eval (cadr car) vars) car)
|
||||||
(if (eq (car-safe cdr) '\,) (scrape-elpa--safe-eval (cadr cdr) vars) cdr)))
|
(if (eq (car-safe cdr) '\,) (scrape-elpa--safe-eval (cadr cdr) vars) cdr)))
|
||||||
;; supported functions
|
;; allow calling `side-effect-free' functions
|
||||||
(`(cons ,car ,cdr)
|
(`(,(and (pred symbolp) (pred (get _ 'side-effect-free)) fn) . ,args)
|
||||||
(cons (scrape-elpa--safe-eval car vars)
|
(apply fn (mapcar #'scrape-elpa--safe-eval args)))
|
||||||
(scrape-elpa--safe-eval cdr vars)))
|
|
||||||
(`(concat . ,args)
|
|
||||||
(apply #'concat (mapcar #'scrape-elpa--safe-eval args)))
|
|
||||||
;; self-evaluating forms
|
;; self-evaluating forms
|
||||||
((pred macroexp-const-p) exp)
|
((pred macroexp-const-p) exp)
|
||||||
;; variable evaluation
|
;; variable evaluation
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue