diff options
| author | ShengHuo ZHU | 2000-12-21 19:58:34 +0000 |
|---|---|---|
| committer | ShengHuo ZHU | 2000-12-21 19:58:34 +0000 |
| commit | 88818fbedfeb7c882ac246cdd7369ed3568bf21c (patch) | |
| tree | 2c1596d14603f9cde712b0d517cbc651560eeea7 | |
| parent | c6ae41f3c9e3a4fcd804a2839d8d3ef315306e9a (diff) | |
| download | emacs-88818fbedfeb7c882ac246cdd7369ed3568bf21c.tar.gz emacs-88818fbedfeb7c882ac246cdd7369ed3568bf21c.zip | |
* mml.el (gnus-add-minor-mode): Autoload.
* message.el (message-forward): Save-restriction.
* message.el (message-mail-user-agent): Add :version.
* message.el (message-mail-user-agent): New variable.
(message-setup): Renamed to message-setup-1. Support
mail-user-agent.
(message-mail-user-agent): New function.
(message-mail): Use it.
(message-reply): Use it.
(message-resend): Use it.
(message-mail-other-window): Use it.
(message-mail-other-frame): Use it.
* gnus-msg.el (gnus-bug): Support mail-user-agent.
| -rw-r--r-- | lisp/gnus/ChangeLog | 20 | ||||
| -rw-r--r-- | lisp/gnus/gnus-msg.el | 20 | ||||
| -rw-r--r-- | lisp/gnus/message.el | 128 | ||||
| -rw-r--r-- | lisp/gnus/mml.el | 2 |
4 files changed, 128 insertions, 42 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index d1ac795a1be..94a05ae2c20 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,23 @@ | |||
| 1 | 2000-12-21 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 2 | |||
| 3 | * mml.el (gnus-add-minor-mode): Autoload. | ||
| 4 | |||
| 5 | * message.el (message-forward): Save-restriction. | ||
| 6 | |||
| 7 | * message.el (message-mail-user-agent): Add :version. | ||
| 8 | |||
| 9 | * message.el (message-mail-user-agent): New variable. | ||
| 10 | (message-setup): Renamed to message-setup-1. Support | ||
| 11 | mail-user-agent. | ||
| 12 | (message-mail-user-agent): New function. | ||
| 13 | (message-mail): Use it. | ||
| 14 | (message-reply): Use it. | ||
| 15 | (message-resend): Use it. | ||
| 16 | (message-mail-other-window): Use it. | ||
| 17 | (message-mail-other-frame): Use it. | ||
| 18 | |||
| 19 | * gnus-msg.el (gnus-bug): Support mail-user-agent. | ||
| 20 | |||
| 1 | 2000-12-21 Miles Bader <miles@gnu.org> | 21 | 2000-12-21 Miles Bader <miles@gnu.org> |
| 2 | 22 | ||
| 3 | * message.el (message-mode): Set `comment-start' to the yank prefix. | 23 | * message.el (message-mode): Set `comment-start' to the yank prefix. |
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 91baed2029c..ef5875b36c2 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el | |||
| @@ -893,15 +893,17 @@ If YANK is non-nil, include the original article." | |||
| 893 | (interactive) | 893 | (interactive) |
| 894 | (unless (gnus-alive-p) | 894 | (unless (gnus-alive-p) |
| 895 | (error "Gnus has been shut down")) | 895 | (error "Gnus has been shut down")) |
| 896 | (gnus-setup-message 'bug | 896 | (gnus-setup-message (if (message-mail-user-agent) 'message 'bug) |
| 897 | (delete-other-windows) | 897 | (unless (message-mail-user-agent) |
| 898 | (when gnus-bug-create-help-buffer | 898 | (delete-other-windows) |
| 899 | (switch-to-buffer "*Gnus Help Bug*") | 899 | (when gnus-bug-create-help-buffer |
| 900 | (erase-buffer) | 900 | (switch-to-buffer "*Gnus Help Bug*") |
| 901 | (insert gnus-bug-message) | 901 | (erase-buffer) |
| 902 | (goto-char (point-min))) | 902 | (insert gnus-bug-message) |
| 903 | (message-pop-to-buffer "*Gnus Bug*") | 903 | (goto-char (point-min))) |
| 904 | (message-setup `((To . ,gnus-maintainer) (Subject . ""))) | 904 | (message-pop-to-buffer "*Gnus Bug*")) |
| 905 | (let ((message-this-is-mail t)) | ||
| 906 | (message-setup `((To . ,gnus-maintainer) (Subject . "")))) | ||
| 905 | (when gnus-bug-create-help-buffer | 907 | (when gnus-bug-create-help-buffer |
| 906 | (push `(gnus-bug-kill-buffer) message-send-actions)) | 908 | (push `(gnus-bug-kill-buffer) message-send-actions)) |
| 907 | (goto-char (point-min)) | 909 | (goto-char (point-min)) |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 98e8b8b86ea..3044bdc196b 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -303,6 +303,7 @@ The provided functions are: | |||
| 303 | 303 | ||
| 304 | (defcustom message-forward-show-mml t | 304 | (defcustom message-forward-show-mml t |
| 305 | "*If non-nil, forward messages are shown as mml. Otherwise, forward messages are unchanged." | 305 | "*If non-nil, forward messages are shown as mml. Otherwise, forward messages are unchanged." |
| 306 | :version "21.1" | ||
| 306 | :group 'message-forwarding | 307 | :group 'message-forwarding |
| 307 | :type 'boolean) | 308 | :type 'boolean) |
| 308 | 309 | ||
| @@ -917,6 +918,26 @@ The first matched address (not primary one) is used in the From field." | |||
| 917 | :type '(choice (const :tag "Always use primary" nil) | 918 | :type '(choice (const :tag "Always use primary" nil) |
| 918 | regexp)) | 919 | regexp)) |
| 919 | 920 | ||
| 921 | (defcustom message-mail-user-agent nil | ||
| 922 | "Like `mail-user-agent'. | ||
| 923 | Except if it is `nil', use Gnus native MUA; if it is t, use | ||
| 924 | `mail-user-agent'." | ||
| 925 | :type '(radio (const :tag "Gnus native" | ||
| 926 | :format "%t\n" | ||
| 927 | nil) | ||
| 928 | (const :tag "`mail-user-agent'" | ||
| 929 | :format "%t\n" | ||
| 930 | t) | ||
| 931 | (function-item :tag "Default Emacs mail" | ||
| 932 | :format "%t\n" | ||
| 933 | sendmail-user-agent) | ||
| 934 | (function-item :tag "Emacs interface to MH" | ||
| 935 | :format "%t\n" | ||
| 936 | mh-e-user-agent) | ||
| 937 | (function :tag "Other")) | ||
| 938 | :version "21.1" | ||
| 939 | :group 'message) | ||
| 940 | |||
| 920 | ;;; Internal variables. | 941 | ;;; Internal variables. |
| 921 | 942 | ||
| 922 | (defvar message-sending-message "Sending...") | 943 | (defvar message-sending-message "Sending...") |
| @@ -2986,7 +3007,6 @@ If NOW, use that time instead." | |||
| 2986 | (mail-header-references message-reply-headers) | 3007 | (mail-header-references message-reply-headers) |
| 2987 | (mail-header-subject message-reply-headers) | 3008 | (mail-header-subject message-reply-headers) |
| 2988 | psubject | 3009 | psubject |
| 2989 | (mail-header-subject message-reply-headers) | ||
| 2990 | (not (string= | 3010 | (not (string= |
| 2991 | (message-strip-subject-re | 3011 | (message-strip-subject-re |
| 2992 | (mail-header-subject message-reply-headers)) | 3012 | (mail-header-subject message-reply-headers)) |
| @@ -3560,8 +3580,42 @@ than 988 characters long, and if they are not, trim them until they are." | |||
| 3560 | (setq message-buffer-list | 3580 | (setq message-buffer-list |
| 3561 | (nconc message-buffer-list (list (current-buffer)))))) | 3581 | (nconc message-buffer-list (list (current-buffer)))))) |
| 3562 | 3582 | ||
| 3583 | (defun message-mail-user-agent () | ||
| 3584 | (let ((mua (cond | ||
| 3585 | ((not message-mail-user-agent) nil) | ||
| 3586 | ((eq message-mail-user-agent t) mail-user-agent) | ||
| 3587 | (t message-mail-user-agent)))) | ||
| 3588 | (if (memq mua '(message-user-agent gnus-user-agent)) | ||
| 3589 | nil | ||
| 3590 | mua))) | ||
| 3591 | |||
| 3592 | (defun message-setup (headers &optional replybuffer actions switch-function) | ||
| 3593 | (let ((mua (message-mail-user-agent)) | ||
| 3594 | subject to field yank-action) | ||
| 3595 | (if (not (and message-this-is-mail mua)) | ||
| 3596 | (message-setup-1 headers replybuffer actions) | ||
| 3597 | (if replybuffer | ||
| 3598 | (setq yank-action (list 'insert-buffer replybuffer))) | ||
| 3599 | (setq headers (copy-sequence headers)) | ||
| 3600 | (setq field (assq 'Subject headers)) | ||
| 3601 | (when field | ||
| 3602 | (setq subject (cdr field)) | ||
| 3603 | (setq headers (delq field headers))) | ||
| 3604 | (setq field (assq 'To headers)) | ||
| 3605 | (when field | ||
| 3606 | (setq to (cdr field)) | ||
| 3607 | (setq headers (delq field headers))) | ||
| 3608 | (let ((mail-user-agent mua)) | ||
| 3609 | (compose-mail to subject | ||
| 3610 | (mapcar (lambda (item) | ||
| 3611 | (cons | ||
| 3612 | (format "%s" (car item)) | ||
| 3613 | (cdr item))) | ||
| 3614 | headers) | ||
| 3615 | nil switch-function yank-action actions))))) | ||
| 3616 | |||
| 3563 | (eval-when-compile (defvar mc-modes-alist)) | 3617 | (eval-when-compile (defvar mc-modes-alist)) |
| 3564 | (defun message-setup (headers &optional replybuffer actions) | 3618 | (defun message-setup-1 (headers &optional replybuffer actions) |
| 3565 | (when (and (boundp 'mc-modes-alist) | 3619 | (when (and (boundp 'mc-modes-alist) |
| 3566 | (not (assq 'message-mode mc-modes-alist))) | 3620 | (not (assq 'message-mode mc-modes-alist))) |
| 3567 | (push '(message-mode (encrypt . mc-encrypt-message) | 3621 | (push '(message-mode (encrypt . mc-encrypt-message) |
| @@ -3675,7 +3729,8 @@ than 988 characters long, and if they are not, trim them until they are." | |||
| 3675 | OTHER-HEADERS is an alist of header/value pairs." | 3729 | OTHER-HEADERS is an alist of header/value pairs." |
| 3676 | (interactive) | 3730 | (interactive) |
| 3677 | (let ((message-this-is-mail t)) | 3731 | (let ((message-this-is-mail t)) |
| 3678 | (message-pop-to-buffer (message-buffer-name "mail" to)) | 3732 | (unless (message-mail-user-agent) |
| 3733 | (message-pop-to-buffer (message-buffer-name "mail" to))) | ||
| 3679 | (message-setup | 3734 | (message-setup |
| 3680 | (nconc | 3735 | (nconc |
| 3681 | `((To . ,(or to "")) (Subject . ,(or subject ""))) | 3736 | `((To . ,(or to "")) (Subject . ,(or subject ""))) |
| @@ -3791,10 +3846,11 @@ OTHER-HEADERS is an alist of header/value pairs." | |||
| 3791 | (unless follow-to | 3846 | (unless follow-to |
| 3792 | (setq follow-to (message-get-reply-headers wide to-address)))) | 3847 | (setq follow-to (message-get-reply-headers wide to-address)))) |
| 3793 | 3848 | ||
| 3794 | (message-pop-to-buffer | 3849 | (unless (message-mail-user-agent) |
| 3795 | (message-buffer-name | 3850 | (message-pop-to-buffer |
| 3796 | (if wide "wide reply" "reply") from | 3851 | (message-buffer-name |
| 3797 | (if wide to-address nil))) | 3852 | (if wide "wide reply" "reply") from |
| 3853 | (if wide to-address nil)))) | ||
| 3798 | 3854 | ||
| 3799 | (setq message-reply-headers | 3855 | (setq message-reply-headers |
| 3800 | (vector 0 subject from date message-id references 0 0 "")) | 3856 | (vector 0 subject from date message-id references 0 0 "")) |
| @@ -4146,7 +4202,8 @@ Optional DIGEST will use digest to forward." | |||
| 4146 | (set-buffer cur) | 4202 | (set-buffer cur) |
| 4147 | (mm-with-unibyte-current-buffer | 4203 | (mm-with-unibyte-current-buffer |
| 4148 | (set-buffer tmp) | 4204 | (set-buffer tmp) |
| 4149 | (insert-buffer-substring cur)) | 4205 | (insert-buffer-substring cur) |
| 4206 | (set-buffer cur)) | ||
| 4150 | (set-buffer tmp) | 4207 | (set-buffer tmp) |
| 4151 | (mm-enable-multibyte) | 4208 | (mm-enable-multibyte) |
| 4152 | (mime-to-mml) | 4209 | (mime-to-mml) |
| @@ -4155,13 +4212,14 @@ Optional DIGEST will use digest to forward." | |||
| 4155 | (replace-match "X-From-Line: ")) | 4212 | (replace-match "X-From-Line: ")) |
| 4156 | (set-buffer target) | 4213 | (set-buffer target) |
| 4157 | (insert-buffer-substring tmp) | 4214 | (insert-buffer-substring tmp) |
| 4158 | (set-buffer tmp)) | 4215 | (set-buffer tmp))) |
| 4159 | (goto-char (point-max))) | 4216 | (save-restriction |
| 4160 | (mml-insert-buffer cur) | 4217 | (narrow-to-region (point) (point)) |
| 4161 | (goto-char (point-min)) | 4218 | (mml-insert-buffer cur) |
| 4162 | (when (looking-at "From ") | 4219 | (goto-char (point-min)) |
| 4163 | (replace-match "X-From-Line: ")) | 4220 | (when (looking-at "From ") |
| 4164 | (goto-char (point-max)))) | 4221 | (replace-match "X-From-Line: ")) |
| 4222 | (goto-char (point-max))))) | ||
| 4165 | (setq e (point)) | 4223 | (setq e (point)) |
| 4166 | (if message-forward-as-mime | 4224 | (if message-forward-as-mime |
| 4167 | (if digest | 4225 | (if digest |
| @@ -4197,9 +4255,11 @@ Optional DIGEST will use digest to forward." | |||
| 4197 | (let ((cur (current-buffer)) | 4255 | (let ((cur (current-buffer)) |
| 4198 | beg) | 4256 | beg) |
| 4199 | ;; We first set up a normal mail buffer. | 4257 | ;; We first set up a normal mail buffer. |
| 4200 | (set-buffer (get-buffer-create " *message resend*")) | 4258 | (unless (message-mail-user-agent) |
| 4201 | (erase-buffer) | 4259 | (set-buffer (get-buffer-create " *message resend*")) |
| 4202 | (message-setup `((To . ,address))) | 4260 | (erase-buffer)) |
| 4261 | (let ((message-this-is-mail t)) | ||
| 4262 | (message-setup `((To . ,address)))) | ||
| 4203 | ;; Insert our usual headers. | 4263 | ;; Insert our usual headers. |
| 4204 | (message-generate-headers '(From Date To)) | 4264 | (message-generate-headers '(From Date To)) |
| 4205 | (message-narrow-to-headers) | 4265 | (message-narrow-to-headers) |
| @@ -4281,27 +4341,31 @@ you." | |||
| 4281 | (defun message-mail-other-window (&optional to subject) | 4341 | (defun message-mail-other-window (&optional to subject) |
| 4282 | "Like `message-mail' command, but display mail buffer in another window." | 4342 | "Like `message-mail' command, but display mail buffer in another window." |
| 4283 | (interactive) | 4343 | (interactive) |
| 4284 | (let ((pop-up-windows t) | 4344 | (unless (message-mail-user-agent) |
| 4285 | (special-display-buffer-names nil) | 4345 | (let ((pop-up-windows t) |
| 4286 | (special-display-regexps nil) | 4346 | (special-display-buffer-names nil) |
| 4287 | (same-window-buffer-names nil) | 4347 | (special-display-regexps nil) |
| 4288 | (same-window-regexps nil)) | 4348 | (same-window-buffer-names nil) |
| 4289 | (message-pop-to-buffer (message-buffer-name "mail" to))) | 4349 | (same-window-regexps nil)) |
| 4350 | (message-pop-to-buffer (message-buffer-name "mail" to)))) | ||
| 4290 | (let ((message-this-is-mail t)) | 4351 | (let ((message-this-is-mail t)) |
| 4291 | (message-setup `((To . ,(or to "")) (Subject . ,(or subject "")))))) | 4352 | (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))) |
| 4353 | nil nil 'switch-to-buffer-other-window))) | ||
| 4292 | 4354 | ||
| 4293 | ;;;###autoload | 4355 | ;;;###autoload |
| 4294 | (defun message-mail-other-frame (&optional to subject) | 4356 | (defun message-mail-other-frame (&optional to subject) |
| 4295 | "Like `message-mail' command, but display mail buffer in another frame." | 4357 | "Like `message-mail' command, but display mail buffer in another frame." |
| 4296 | (interactive) | 4358 | (interactive) |
| 4297 | (let ((pop-up-frames t) | 4359 | (unless (message-mail-user-agent) |
| 4298 | (special-display-buffer-names nil) | 4360 | (let ((pop-up-frames t) |
| 4299 | (special-display-regexps nil) | 4361 | (special-display-buffer-names nil) |
| 4300 | (same-window-buffer-names nil) | 4362 | (special-display-regexps nil) |
| 4301 | (same-window-regexps nil)) | 4363 | (same-window-buffer-names nil) |
| 4302 | (message-pop-to-buffer (message-buffer-name "mail" to))) | 4364 | (same-window-regexps nil)) |
| 4365 | (message-pop-to-buffer (message-buffer-name "mail" to)))) | ||
| 4303 | (let ((message-this-is-mail t)) | 4366 | (let ((message-this-is-mail t)) |
| 4304 | (message-setup `((To . ,(or to "")) (Subject . ,(or subject "")))))) | 4367 | (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))) |
| 4368 | nil nil 'switch-to-buffer-other-frame))) | ||
| 4305 | 4369 | ||
| 4306 | ;;;###autoload | 4370 | ;;;###autoload |
| 4307 | (defun message-news-other-window (&optional newsgroups subject) | 4371 | (defun message-news-other-window (&optional newsgroups subject) |
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index b11a2d8bb14..8bdbe289bd9 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el | |||
| @@ -27,12 +27,12 @@ | |||
| 27 | (require 'mm-bodies) | 27 | (require 'mm-bodies) |
| 28 | (require 'mm-encode) | 28 | (require 'mm-encode) |
| 29 | (require 'mm-decode) | 29 | (require 'mm-decode) |
| 30 | (require 'gnus-ems) | ||
| 31 | (eval-when-compile (require 'cl)) | 30 | (eval-when-compile (require 'cl)) |
| 32 | 31 | ||
| 33 | (eval-and-compile | 32 | (eval-and-compile |
| 34 | (autoload 'message-make-message-id "message") | 33 | (autoload 'message-make-message-id "message") |
| 35 | (autoload 'gnus-setup-posting-charset "gnus-msg") | 34 | (autoload 'gnus-setup-posting-charset "gnus-msg") |
| 35 | (autoload 'gnus-add-minor-mode "gnus-ems") | ||
| 36 | (autoload 'message-fetch-field "message") | 36 | (autoload 'message-fetch-field "message") |
| 37 | (autoload 'message-posting-charset "message")) | 37 | (autoload 'message-posting-charset "message")) |
| 38 | 38 | ||