Mercurial > emacs
comparison lisp/gnus/nnheader.el @ 107427:ecbe0edc4f69
Stop message.el from loading about 40 libraries it doesn't always need.
The general approach is to autoload rather than require, and to
require in the specific functions rather than the file. (Bug#5642)
* url/url.el: Move mailcap require earlier in the file.
* gnus/gmm-utils.el: Don't require wid-edit.
(widget-create-child-value, widget-convert, widget-default-get):
Autoload.
* gnus/gnus-util.el: Don't require time-date, netrc.
(message-fetch-field, gnus-group-name-decode): Declare rather than
autoloading.
(gnus-fetch-field): Require message.
(gnus-decode-newsgroups): Require gnus-group.
* gnus/ietf-drums.el: Don't require time-date.
* gnus/message.el: Don't require hashcash, canlock, ecomplete.
Do require mail-utils. Require nnheader only when compiling.
(smtpmail-default-smtp-server): Remove declaration.
(message-send-mail-function): Check smtpmail-default-smtp-server
is bound rather than requiring smtpmail.
(message-auto-save-directory, message-insert-signature): Use
expand-file-name rather than nnheader-concat.
(nnheader-insert-file-contents): Autoload.
(hashcash-wait-async): Declare.
(message-send-mail): Only call gnus-setup-posting-charset if
gnus-group-posting-charset-alist is bound. Require hashcash if needed.
(message-send-mail-with-sendmail): Require sendmail.
(canlock-password, canlock-password-for-verify): Declare.
(message-canlock-password): Require canlock.
(nnheader-get-report): Autoload.
(gnus-setup-posting-charset): Declare.
(message-send-news): Require gnus-msg.
(message-make-references, message-make-in-reply-to): Use mail-header-id
rather than the alias mail-header-message-id.
(ecomplete-add-item, ecomplete-save): Declare.
(message-put-addresses-in-ecomplete): Require ecomplete.
(ecomplete-display-matches): Autoload.
* gnus/mm-decode.el: Don't require mailcap, gnus-util.
(gnus-map-function, gnus-replace-in-string, gnus-read-shell-command)
(message-fetch-field, mailcap-parse-mailcaps, mailcap-mime-info):
Autoload.
(mailcap-mime-extensions): Declare.
* gnus/mm-encode.el: Don't require mailcap.
(mailcap-extension-to-mime): Autoload.
* gnus/mml-sec.el: Don't require password-cache.
* gnus/mml.el (gnus-setup-posting-charset): Declare rather than autoload.
(mailcap-parse-mimetypes, mailcap-mime-types): Declare.
(mml-minibuffer-read-type): Require mailcap.
(mml-preview): Require gnus-msg.
* gnus/mml1991.el: Require password-cache.
(password-cache-expiry): Remove declaration.
* gnus/mml2015.el: Require password-cache.
(password-cache-expiry): Remove declaration.
* gnus/nneething.el (mailcap): Require mailcap.
* gnus/nnheader.el: (declare-function): Add compatibility stub.
(message-remove-header): Declare rather than autoload.
(nnheader-replace-header): Require message.
* gnus/nnimap.el (declare-function): Add compatibility stub.
(netrc-parse, netrc-machine-user-or-password): Declare.
(nnimap-open-connection): Require netrc.
* gnus/nntp.el (declare-function): Add compatibility stub.
(netrc-parse, netrc-machine, netrc-get): Declare.
(nntp-send-authinfo): Require netrc.
* gnus/rfc2047.el: Don't require qp.
(quoted-printable-encode-region, quoted-printable-decode-string):
Autoload.
* gnus/sieve-mode.el: Don't require easymenu.
(easy-menu-add-item): Autoload it.
* gnus/spam-stat.el (time-to-number-of-days): Autoload it.
* password-cache.el (password-cache, password-cache-expiry):
Autoload.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Thu, 18 Mar 2010 19:55:37 -0700 |
parents | 1d1d5d9bd884 |
children | 459fd421257a |
comparison
equal
deleted
inserted
replaced
107426:e3c196b081c6 | 107427:ecbe0edc4f69 |
---|---|
25 | 25 |
26 ;;; Commentary: | 26 ;;; Commentary: |
27 | 27 |
28 ;;; Code: | 28 ;;; Code: |
29 | 29 |
30 (eval-and-compile | |
31 (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) | |
30 (eval-when-compile (require 'cl)) | 32 (eval-when-compile (require 'cl)) |
31 | 33 |
32 (defvar nnmail-extra-headers) | 34 (defvar nnmail-extra-headers) |
33 (defvar gnus-newsgroup-name) | 35 (defvar gnus-newsgroup-name) |
34 (defvar nnheader-file-coding-system) | 36 (defvar nnheader-file-coding-system) |
119 (string-to-char (substring (file-name-as-directory ".") -1)) | 121 (string-to-char (substring (file-name-as-directory ".") -1)) |
120 "*A character used to a directory separator.") | 122 "*A character used to a directory separator.") |
121 | 123 |
122 (autoload 'nnmail-message-id "nnmail") | 124 (autoload 'nnmail-message-id "nnmail") |
123 (autoload 'mail-position-on-field "sendmail") | 125 (autoload 'mail-position-on-field "sendmail") |
124 (autoload 'message-remove-header "message") | |
125 (autoload 'gnus-buffer-live-p "gnus-util") | 126 (autoload 'gnus-buffer-live-p "gnus-util") |
126 | 127 |
127 ;;; Header access macros. | 128 ;;; Header access macros. |
128 | 129 |
129 ;; These macros may look very much like the ones in GNUS 4.1. They | 130 ;; These macros may look very much like the ones in GNUS 4.1. They |
660 ;; Fold long References lines to conform to RFC1036 (sort of). | 661 ;; Fold long References lines to conform to RFC1036 (sort of). |
661 ;; The region must end with a newline to fill the region | 662 ;; The region must end with a newline to fill the region |
662 ;; without inserting extra newline. | 663 ;; without inserting extra newline. |
663 (fill-region-as-paragraph begin (1+ (point)))))) | 664 (fill-region-as-paragraph begin (1+ (point)))))) |
664 | 665 |
666 (declare-function message-remove-header "message" | |
667 (header &optional is-regexp first reverse)) | |
668 | |
665 (defun nnheader-replace-header (header new-value) | 669 (defun nnheader-replace-header (header new-value) |
666 "Remove HEADER and insert the NEW-VALUE." | 670 "Remove HEADER and insert the NEW-VALUE." |
671 (require 'message) | |
667 (save-excursion | 672 (save-excursion |
668 (save-restriction | 673 (save-restriction |
669 (nnheader-narrow-to-headers) | 674 (nnheader-narrow-to-headers) |
670 (prog1 | 675 (prog1 |
671 (message-remove-header header) | 676 (message-remove-header header) |