summaryrefslogtreecommitdiff
path: root/admin
diff options
context:
space:
mode:
authorPhilip Kaludercic <philipk@posteo.net>2026-02-11 20:47:26 +0100
committerPhilip Kaludercic <philipk@posteo.net>2026-02-11 20:47:26 +0100
commit0afb026a997a4636658a635d4ff82f21467ca55d (patch)
treef9ace871e305d7d6113ed8569fd01e28b30593f1 /admin
parent5bc7185afa4538853df5ea2a1dcd85d079d075ef (diff)
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.
Diffstat (limited to 'admin')
-rw-r--r--admin/scrape-elpa.el9
1 files changed, 3 insertions, 6 deletions
diff --git a/admin/scrape-elpa.el b/admin/scrape-elpa.el
index f1bd0307b43..e1072564db6 100644
--- a/admin/scrape-elpa.el
+++ b/admin/scrape-elpa.el
@@ -43,12 +43,9 @@ be comprehensive, but just to handle the kinds of expressions that
(cons
(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)))
- ;; supported functions
- (`(cons ,car ,cdr)
- (cons (scrape-elpa--safe-eval car vars)
- (scrape-elpa--safe-eval cdr vars)))
- (`(concat . ,args)
- (apply #'concat (mapcar #'scrape-elpa--safe-eval args)))
+ ;; allow calling `side-effect-free' functions
+ (`(,(and (pred symbolp) (pred (get _ 'side-effect-free)) fn) . ,args)
+ (apply fn (mapcar #'scrape-elpa--safe-eval args)))
;; self-evaluating forms
((pred macroexp-const-p) exp)
;; variable evaluation