aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShengHuo ZHU2000-12-21 19:58:34 +0000
committerShengHuo ZHU2000-12-21 19:58:34 +0000
commit88818fbedfeb7c882ac246cdd7369ed3568bf21c (patch)
tree2c1596d14603f9cde712b0d517cbc651560eeea7
parentc6ae41f3c9e3a4fcd804a2839d8d3ef315306e9a (diff)
downloademacs-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/ChangeLog20
-rw-r--r--lisp/gnus/gnus-msg.el20
-rw-r--r--lisp/gnus/message.el128
-rw-r--r--lisp/gnus/mml.el2
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 @@
12000-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
12000-12-21 Miles Bader <miles@gnu.org> 212000-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'.
923Except 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."
3675OTHER-HEADERS is an alist of header/value pairs." 3729OTHER-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