From 2abc85e41edafbb9c1187c5445056cc07759b4c1 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Sat, 30 Apr 2016 19:20:12 +0200 Subject: [PATCH] Transform mentions of `eval-after-load' to `with-eval-after-load' * doc/lispref/loading.texi (Hooks for Loading): Update text to not mention `eval-after-load' (bug#20038). (cherry picked from commit 9392193be56eebdfac702a0bbb5e954088371c7a) --- doc/emacs/text.texi | 3 +- doc/emacs/trouble.texi | 2 +- doc/lispref/loading.texi | 11 +++--- doc/lispref/tips.texi | 12 +++---- doc/misc/eudc.texi | 22 ++++++------ doc/misc/gnus-faq.texi | 75 ++++++++++++++++++++-------------------- doc/misc/gnus.texi | 16 ++++----- doc/misc/rcirc.texi | 56 +++++++++++++++--------------- doc/misc/tramp.texi | 6 ++-- 9 files changed, 101 insertions(+), 102 deletions(-) diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi index e19925025d..66f01b495d 100644 --- a/doc/emacs/text.texi +++ b/doc/emacs/text.texi @@ -1302,7 +1302,8 @@ it in order for this to take effect. automatically by putting the following in your init file: @example -(eval-after-load "outline" '(require 'foldout)) +(with-eval-after-load "outline" + (require 'foldout)) @end example @node Org Mode diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 3268063376..bff3a58651 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi @@ -1359,7 +1359,7 @@ Appendix, elisp, Emacs Lisp Reference}. @end ifclear @item -Avoid using @code{defadvice} or @code{eval-after-load} for Lisp code +Avoid using @code{defadvice} or @code{with-eval-after-load} for Lisp code to be included in Emacs. @item diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 06900a4947..d2d38d7fb5 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi @@ -1089,11 +1089,12 @@ execution of the rest of @var{body}. @end defmac Normally, well-designed Lisp programs should not use -@code{eval-after-load}. If you need to examine and set the variables -defined in another library (those meant for outside use), you can do -it immediately---there is no need to wait until the library is loaded. -If you need to call functions defined by that library, you should load -the library, preferably with @code{require} (@pxref{Named Features}). +@code{with-eval-after-load}. If you need to examine and set the +variables defined in another library (those meant for outside use), +you can do it immediately---there is no need to wait until the library +is loaded. If you need to call functions defined by that library, you +should load the library, preferably with @code{require} (@pxref{Named +Features}). @node Dynamic Modules @section Emacs Dynamic Modules diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index 0a3d244157..d12de7aee2 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi @@ -200,12 +200,12 @@ It is likewise a bad idea for one Lisp package to advise a function in another Lisp package (@pxref{Advising Functions}). @item -Avoid using @code{eval-after-load} in libraries and packages -(@pxref{Hooks for Loading}). This feature is meant for personal -customizations; using it in a Lisp program is unclean, because it -modifies the behavior of another Lisp file in a way that's not visible -in that file. This is an obstacle for debugging, much like advising a -function in the other package. +Avoid using @code{eval-after-load} and @code{with-eval-after-load} in +libraries and packages (@pxref{Hooks for Loading}). This feature is +meant for personal customizations; using it in a Lisp program is +unclean, because it modifies the behavior of another Lisp file in a +way that's not visible in that file. This is an obstacle for +debugging, much like advising a function in the other package. @item If a file does replace any of the standard functions or library diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi index da63975c2e..53f1beb1a0 100644 --- a/doc/misc/eudc.texi +++ b/doc/misc/eudc.texi @@ -177,12 +177,10 @@ initialization file to add a shortcut for email address expansion in email composition buffers (@pxref{Inline Query Expansion}) @lisp -(eval-after-load - "message" - '(define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) -(eval-after-load - "sendmail" - '(define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) +(with-eval-after-load "message" + (define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) +(with-eval-after-load "sendmail" + (define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) @end lisp @menu @@ -271,8 +269,8 @@ LDAP: @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp -(eval-after-load "message" - '(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) +(with-eval-after-load "message" + (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) (customize-set-variable 'eudc-server-hotlist '(("" . bbdb) ("ldaps://ldap.gnu.org" . ldap))) @@ -327,8 +325,8 @@ configure EUDC for LDAP: @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp -(eval-after-load "message" - '(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) +(with-eval-after-load "message" + (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) (customize-set-variable 'eudc-server-hotlist '(("" . bbdb) ("ldaps://ldap.gnu.org" . ldap))) @@ -356,8 +354,8 @@ and the @file{.emacs} expressions become: @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp -(eval-after-load "message" - '(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) +(with-eval-after-load "message" + (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) (customize-set-variable 'eudc-server-hotlist '(("" . bbdb) ("" . ldap))) (customize-set-variable 'ldap-host-parameters-alist diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi index 90bb10f6c3..5a49f4ac32 100644 --- a/doc/misc/gnus-faq.texi +++ b/doc/misc/gnus-faq.texi @@ -584,10 +584,10 @@ Now we need to tell Gnus, where to get its mail from. If it's a POP3 server, then you need something like this: @example -(eval-after-load "mail-source" - '(add-to-list 'mail-sources '(pop :server "pop.YourProvider.net" - :user "yourUserName" - :password "yourPassword"))) +(with-eval-after-load "mail-source" + (add-to-list 'mail-sources '(pop :server "pop.YourProvider.net" + :user "yourUserName" + :password "yourPassword"))) @end example @noindent @@ -596,8 +596,8 @@ your password there. If you want to read your mail from a traditional spool file on your local machine, it's @example -(eval-after-load "mail-source" - '(add-to-list 'mail-sources '(file :path "/path/to/spool/file")) +(with-eval-after-load "mail-source" + (add-to-list 'mail-sources '(file :path "/path/to/spool/file")) @end example @noindent @@ -605,9 +605,9 @@ If it's a Maildir, with one file per message as used by postfix, Qmail and (optionally) fetchmail it's @example -(eval-after-load "mail-source" - '(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/" - :subdirs ("cur" "new"))) +(with-eval-after-load "mail-source" + (add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/" + :subdirs ("cur" "new"))) @end example @noindent @@ -616,10 +616,10 @@ in one directory, for example because procmail already split your mail, it's @example -(eval-after-load "mail-source" - '(add-to-list 'mail-sources - '(directory :path "/path/to/procmail-dir/" - :suffix ".prcml"))) +(with-eval-after-load "mail-source" + (add-to-list 'mail-sources + '(directory :path "/path/to/procmail-dir/" + :suffix ".prcml"))) @end example @noindent @@ -850,10 +850,9 @@ text part if it's available. How to do it? Say @example -(eval-after-load "mm-decode" - '(progn - (add-to-list 'mm-discouraged-alternatives "text/html") - (add-to-list 'mm-discouraged-alternatives "text/richtext"))) +(with-eval-after-load "mm-decode" + (add-to-list 'mm-discouraged-alternatives "text/html") + (add-to-list 'mm-discouraged-alternatives "text/richtext")) @end example @noindent @@ -1577,14 +1576,14 @@ if you already use Gnus 5.10, if you still use 5.8.8 or 5.9 try this instead: @example -(eval-after-load "gnus-msg" - '(unless (boundp 'gnus-confirm-mail-reply-to-news) - (defadvice gnus-summary-reply (around reply-in-news activate) - "Request confirmation when replying to news." - (interactive) - (when (or (not (gnus-news-group-p gnus-newsgroup-name)) - (y-or-n-p "Really reply by mail to article author? ")) - ad-do-it)))) +(with-eval-after-load "gnus-msg" + (unless (boundp 'gnus-confirm-mail-reply-to-news) + (defadvice gnus-summary-reply (around reply-in-news activate) + "Request confirmation when replying to news." + (interactive) + (when (or (not (gnus-news-group-p gnus-newsgroup-name)) + (y-or-n-p "Really reply by mail to article author? ")) + ad-do-it)))) @end example @noindent @@ -1599,8 +1598,8 @@ Since 5.10 Gnus doesn't generate a sender header by default. For older Gnus' try this in @file{~/.gnus.el}: @example -(eval-after-load "message" - '(add-to-list 'message-syntax-checks '(sender . disabled))) +(with-eval-after-load "message" + (add-to-list 'message-syntax-checks '(sender . disabled))) @end example @noindent @@ -1665,14 +1664,14 @@ in @file{~/.gnus.el}. If you use Gnus 5.9 or earlier, you can use this instead (works for newer versions as well): @example -(eval-after-load "message" - '(let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this! - (if (boundp 'message-user-fqdn) - (setq message-user-fqdn fqdn) - (gnus-message 1 "Redefining `message-make-fqdn'.") - (defun message-make-fqdn () - "Return user's fully qualified domain name." - fqdn)))) +(with-eval-after-load "message" + (let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this! + (if (boundp 'message-user-fqdn) + (setq message-user-fqdn fqdn) + (gnus-message 1 "Redefining `message-make-fqdn'.") + (defun message-make-fqdn () + "Return user's fully qualified domain name." + fqdn)))) @end example @noindent @@ -2195,7 +2194,7 @@ An other idea would be to byte compile your @file{~/.gnus.el} (say @samp{M-x byte-compile-file RET ~/.gnus.el RET} to do it). Finally, if you have require statements in your .gnus, you could replace them with -eval-after-load, which loads the stuff not at startup +@code{with-eval-after-load}, which loads the stuff not at startup time, but when it's needed. Say you've got this in your @file{~/.gnus.el}: @@ -2209,8 +2208,8 @@ then as soon as you start Gnus, message.el is loaded. If you replace it with @example -(eval-after-load "message" - '(add-to-list 'message-syntax-checks '(sender . disabled))) +(with-eval-after-load "message" + (add-to-list 'message-syntax-checks '(sender . disabled))) @end example @noindent diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index 2ae2e18ed0..08067b0c73 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -17147,9 +17147,9 @@ summary buffer. (gnus-summary-mark-as-read-forward 1)) (gnus-summary-scroll-up arg)))) -(eval-after-load "gnus" - #'(define-key gnus-summary-mode-map - (kbd "") 'browse-nnrss-url)) +(with-eval-after-load "gnus" + (define-key gnus-summary-mode-map + (kbd "") 'browse-nnrss-url)) (add-to-list 'nnmail-extra-headers nnrss-url-field) @end lisp @@ -17165,11 +17165,11 @@ Parameters}) in order to display @samp{text/html} parts only in @lisp ;; @r{Set the default value of @code{mm-discouraged-alternatives}.} -(eval-after-load "gnus-sum" - '(add-to-list - 'gnus-newsgroup-variables - '(mm-discouraged-alternatives - . '("text/html" "image/.*")))) +(with-eval-after-load "gnus-sum" + (add-to-list + 'gnus-newsgroup-variables + '(mm-discouraged-alternatives + . '("text/html" "image/.*")))) ;; @r{Display @samp{text/html} parts in @code{nnrss} groups.} (add-to-list diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi index 0098e2049d..cdead72c63 100644 --- a/doc/misc/rcirc.texi +++ b/doc/misc/rcirc.texi @@ -880,11 +880,11 @@ because @code{defun-rcirc-command} is not yet available, and without @code{rcirc} loaded, the command wouldn't do us much good anyway. @smallexample -(eval-after-load 'rcirc - '(defun-rcirc-command sv (arg) - "Boast about rcirc." - (interactive "i") - (rcirc-send-message process target +(with-eval-after-load 'rcirc + (defun-rcirc-command sv (arg) + "Boast about rcirc." + (interactive "i") + (rcirc-send-message process target (concat "I use " rcirc-id-string)))) @end smallexample @@ -904,29 +904,29 @@ copies of every channel buffer, one dead and one live. The real answer, therefore, is a @code{/reconnect} command: @smallexample -(eval-after-load 'rcirc - '(defun-rcirc-command reconnect (arg) - "Reconnect the server process." - (interactive "i") - (unless process - (error "There's no process for this target")) - (let* ((server (car (process-contact process))) - (port (process-contact process :service)) - (nick (rcirc-nick process)) - channels query-buffers) - (dolist (buf (buffer-list)) - (with-current-buffer buf - (when (eq process (rcirc-buffer-process)) - (remove-hook 'change-major-mode-hook - 'rcirc-change-major-mode-hook) - (if (rcirc-channel-p rcirc-target) - (setq channels (cons rcirc-target channels)) - (setq query-buffers (cons buf query-buffers)))))) - (delete-process process) - (rcirc-connect server port nick - rcirc-default-user-name - rcirc-default-full-name - channels)))) +(with-eval-after-load 'rcirc + (defun-rcirc-command reconnect (arg) + "Reconnect the server process." + (interactive "i") + (unless process + (error "There's no process for this target")) + (let* ((server (car (process-contact process))) + (port (process-contact process :service)) + (nick (rcirc-nick process)) + channels query-buffers) + (dolist (buf (buffer-list)) + (with-current-buffer buf + (when (eq process (rcirc-buffer-process)) + (remove-hook 'change-major-mode-hook + 'rcirc-change-major-mode-hook) + (if (rcirc-channel-p rcirc-target) + (setq channels (cons rcirc-target channels)) + (setq query-buffers (cons buf query-buffers)))))) + (delete-process process) + (rcirc-connect server port nick + rcirc-default-user-name + rcirc-default-full-name + channels)))) @end smallexample @node GNU Free Documentation License diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 9320a6e166..af22f8d6cc 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -3390,9 +3390,9 @@ Since @file{filecache} remembers visited places, add the remote directory to the cache: @lisp -(eval-after-load "filecache" - '(file-cache-add-directory - "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")) +(with-eval-after-load "filecache" + (file-cache-add-directory + "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")) @end lisp Then use directory completion in the minibuffer with @kbd{C-x C-f -- 2.39.2