diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2021-01-30 18:56:37 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2021-01-30 18:56:37 -0500 |
commit | 12189ae415f88984dd26712bdf4e4f9a50e10c8f (patch) | |
tree | 2d9bb8acc5c400a015c32fb480d2149c621922e3 /lisp/gnus/nnoo.el | |
parent | daa4e0120dc32a8c3eeafdf8914a0e29e5c149e9 (diff) | |
download | emacs-scratch/lexical-gnus-rc.tar.gz |
* lisp/gnus: Use closures now that we activated `lexical-binding`scratch/lexical-gnus-rc
* lisp/gnus/nnml.el (nnml-request-accept-article):
* lisp/gnus/nnmairix.el (nnmairix-request-marks):
* lisp/gnus/nnmail.el (nnmail-get-new-mail-1):
* lisp/gnus/mm-view.el (mm-inline-image)
(mm-inline-text-html-render-with-w3m, mm-inline-text)
(mm-insert-inline, mm-inline-message):
* lisp/gnus/mm-partial.el (mm-inline-partial):
* lisp/gnus/mm-archive.el (mm-archive-dissect-and-inline):
* lisp/gnus/gnus-util.el (gnus-create-info-command):
* lisp/gnus/gnus-topic.el (gnus-topic-edit-parameters)
(gnus-topic-sort-topics-1):
* lisp/gnus/gnus-sum.el (gnus-summary-edit-article):
* lisp/gnus/gnus-srvr.el (gnus-server-edit-server):
* lisp/gnus/gnus-msg.el (gnus-inews-make-draft)
(gnus-inews-add-send-actions, gnus-summary-cancel-article)
(gnus-summary-supersede-article, gnus-summary-resend-message)
(gnus-configure-posting-styles):
* lisp/gnus/gnus-kill.el (gnus-execute):
* lisp/gnus/gnus-html.el (gnus-html-wash-images):
* lisp/gnus/gnus-group.el (gnus-group-edit-group)
(gnus-group-nnimap-edit-acl):
* lisp/gnus/gnus-draft.el (gnus-draft-edit-message, gnus-draft-setup):
* lisp/gnus/gnus-art.el (gnus-article-edit-part)
(gnus-mm-display-part, gnus-article-edit):
* lisp/gnus/gnus-agent.el (gnus-category-edit-predicate)
(gnus-category-edit-score, gnus-category-edit-groups):
Use closures instead of `(lambda ...).
* lisp/gnus/nnoo.el (noo--defalias): New function.
(nnoo-import-1, nnoo-define-skeleton-1): Use it to avoid `eval`.
Diffstat (limited to 'lisp/gnus/nnoo.el')
-rw-r--r-- | lisp/gnus/nnoo.el | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lisp/gnus/nnoo.el b/lisp/gnus/nnoo.el index 2260fd694e4..7759951662a 100644 --- a/lisp/gnus/nnoo.el +++ b/lisp/gnus/nnoo.el @@ -49,6 +49,9 @@ (defun ,func ,args ,@forms) (nnoo-register-function ',func))) +(defun noo--defalias (fun val) + (prog1 (defalias fun val) (nnoo-register-function fun))) + (defun nnoo-register-function (func) (let ((funcs (nthcdr 3 (assoc (nnoo-backend func) nnoo-definition-alist)))) @@ -90,9 +93,9 @@ (dolist (fun (or (cdr imp) (nnoo-functions (car imp)))) (let ((function (nnoo-symbol backend (nnoo-rest-symbol fun)))) (unless (fboundp function) - ;; FIXME: Use `defalias' and closures to avoid `eval'. - (eval `(deffoo ,function (&rest args) - (,call-function ',backend ',fun args))))))))) + (noo--defalias function + (lambda (&rest args) + (funcall call-function backend fun args))))))))) (defun nnoo-parent-function (backend function args) (let ((pbackend (nnoo-backend function)) @@ -301,11 +304,9 @@ All functions will return nil and report an error." request-list request-post request-list-newsgroups)) (let ((fun (nnoo-symbol backend op))) (unless (fboundp fun) - ;; FIXME: Use `defalias' and closures to avoid `eval'. - (eval `(deffoo ,fun - (&rest _args) - (nnheader-report ',backend ,(format "%s-%s not implemented" - backend op)))))))) + (let ((msg (format "%s-%s not implemented" backend op))) + (noo--defalias fun + (lambda (&rest _args) (nnheader-report backend msg)))))))) (defun nnoo-set (server &rest args) (let ((parents (nnoo-parents (car server))) |