aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorShengHuo ZHU2001-11-25 20:45:37 +0000
committerShengHuo ZHU2001-11-25 20:45:37 +0000
commit0c773047fdc6d16d4533165b0deabbc4304901a9 (patch)
tree70a3733a4f338fde42019f2487914c4ab0cfc11c /lisp
parent9fefa08b84e1e970f8a98c640ecd458bef989b3e (diff)
downloademacs-0c773047fdc6d16d4533165b0deabbc4304901a9.tar.gz
emacs-0c773047fdc6d16d4533165b0deabbc4304901a9.zip
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
* mail/rmail.el (rmail-enable-mime-composing): New. A lightweight version of rmail-enable-mime. (rmail-forward): Use it. * message.el (message-forward-rmail-make-body): save-window-excursion. (message-encode-message-body): no error. (message-setup-1): compose-mail send-actions are different from message-send-actions. * message.el (message-forward-subject-author-subject): Don't use message-news-p, which widens the buffer. (message-forward-make-body): New function. (message-forward): Use it. (message-insinuate-rmail): New. (message-forward-rmail-make-body): New.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/gnus/ChangeLog13
-rw-r--r--lisp/gnus/message.el151
-rw-r--r--lisp/mail/rmail.el8
4 files changed, 112 insertions, 66 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index a7e4d895a61..a1e7037c6cd 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
12001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
2
3 * mail/rmail.el (rmail-enable-mime-composing): New. A lightweight
4 version of rmail-enable-mime.
5 (rmail-forward): Use it.
6
12001-11-25 Richard M. Stallman <rms@gnu.org> 72001-11-25 Richard M. Stallman <rms@gnu.org>
2 8
3 * emacs-lisp/lisp-mode.el (lisp-indent-function): Add doc string. 9 * emacs-lisp/lisp-mode.el (lisp-indent-function): Add doc string.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 7f66f92eef5..e806ebe629b 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,5 +1,18 @@
12001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu> 12001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
2 2
3 * message.el (message-forward-rmail-make-body):
4 save-window-excursion.
5 (message-encode-message-body): no error.
6 (message-setup-1): compose-mail send-actions are different from
7 message-send-actions.
8
9 * message.el (message-forward-subject-author-subject): Don't use
10 message-news-p, which widens the buffer.
11 (message-forward-make-body): New function.
12 (message-forward): Use it.
13 (message-insinuate-rmail): New.
14 (message-forward-rmail-make-body): New.
15
3 * gnus-util.el (gnus-directory-sep-char-regexp): New. 16 * gnus-util.el (gnus-directory-sep-char-regexp): New.
4 * gnus-score.el (gnus-score-find-bnews): Sync with Gnus CVS. 17 * gnus-score.el (gnus-score-find-bnews): Sync with Gnus CVS.
5 * mm-util.el: Sync. 18 * mm-util.el: Sync.
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 1280fdaf9f5..b8e45caabff 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -3635,8 +3635,10 @@ than 988 characters long, and if they are not, trim them until they are."
3635 (push '(message-mode (encrypt . mc-encrypt-message) 3635 (push '(message-mode (encrypt . mc-encrypt-message)
3636 (sign . mc-sign-message)) 3636 (sign . mc-sign-message))
3637 mc-modes-alist)) 3637 mc-modes-alist))
3638 (when actions 3638 (dolist (action actions)
3639 (setq message-send-actions actions)) 3639 (condition-case nil
3640 (add-to-list 'message-send-actions
3641 `(apply ',(car action) ',(cdr action)))))
3640 (setq message-reply-buffer replybuffer) 3642 (setq message-reply-buffer replybuffer)
3641 (goto-char (point-min)) 3643 (goto-char (point-min))
3642 ;; Insert all the headers. 3644 ;; Insert all the headers.
@@ -4155,8 +4157,8 @@ Source is the sender, and if the original message was news, Source is
4155the list of newsgroups is was posted to." 4157the list of newsgroups is was posted to."
4156 (concat "[" 4158 (concat "["
4157 (let ((prefix 4159 (let ((prefix
4158 (or (message-fetch-field 4160 (or (message-fetch-field "newsgroups")
4159 (if (message-news-p) "newsgroups" "from")) 4161 (message-fetch-field "from")
4160 "(nowhere)"))) 4162 "(nowhere)")))
4161 (if message-forward-decoded-p 4163 (if message-forward-decoded-p
4162 prefix 4164 prefix
@@ -4199,6 +4201,7 @@ the message."
4199(eval-when-compile 4201(eval-when-compile
4200 (defvar gnus-article-decoded-p)) 4202 (defvar gnus-article-decoded-p))
4201 4203
4204
4202;;;###autoload 4205;;;###autoload
4203(defun message-forward (&optional news digest) 4206(defun message-forward (&optional news digest)
4204 "Forward the current message via mail. 4207 "Forward the current message via mail.
@@ -4206,39 +4209,42 @@ Optional NEWS will use news to forward instead of mail.
4206Optional DIGEST will use digest to forward." 4209Optional DIGEST will use digest to forward."
4207 (interactive "P") 4210 (interactive "P")
4208 (let* ((cur (current-buffer)) 4211 (let* ((cur (current-buffer))
4209 (message-forward-decoded-p 4212 (message-forward-decoded-p
4210 (if (local-variable-p 'gnus-article-decoded-p (current-buffer)) 4213 (if (local-variable-p 'gnus-article-decoded-p (current-buffer))
4211 gnus-article-decoded-p ;; In an article buffer. 4214 gnus-article-decoded-p ;; In an article buffer.
4212 message-forward-decoded-p)) 4215 message-forward-decoded-p))
4213 (subject (message-make-forward-subject)) 4216 (subject (message-make-forward-subject)))
4214 art-beg)
4215 (if news 4217 (if news
4216 (message-news nil subject) 4218 (message-news nil subject)
4217 (message-mail nil subject)) 4219 (message-mail nil subject))
4218 ;; Put point where we want it before inserting the forwarded 4220 (message-forward-make-body cur digest)))
4219 ;; message. 4221
4220 (if message-forward-before-signature 4222;;;###autoload
4221 (message-goto-body) 4223(defun message-forward-make-body (forward-buffer &optional digest)
4222 (goto-char (point-max))) 4224 ;; Put point where we want it before inserting the forwarded
4223 (if message-forward-as-mime 4225 ;; message.
4224 (if digest 4226 (if message-forward-before-signature
4225 (insert "\n<#multipart type=digest>\n") 4227 (message-goto-body)
4226 (if message-forward-show-mml 4228 (goto-char (point-max)))
4227 (insert "\n\n<#mml type=message/rfc822 disposition=inline>\n") 4229 (if message-forward-as-mime
4228 (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n")))
4229 (insert "\n-------------------- Start of forwarded message --------------------\n"))
4230 (let ((b (point)) e)
4231 (if digest 4230 (if digest
4232 (if message-forward-as-mime 4231 (insert "\n<#multipart type=digest>\n")
4233 (insert-buffer-substring cur) 4232 (if message-forward-show-mml
4234 (mml-insert-buffer cur)) 4233 (insert "\n\n<#mml type=message/rfc822 disposition=inline>\n")
4235 (if (and message-forward-show-mml 4234 (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n")))
4236 (not message-forward-decoded-p)) 4235 (insert "\n-------------------- Start of forwarded message --------------------\n"))
4237 (insert 4236 (let ((b (point)) e)
4238 (with-temp-buffer 4237 (if digest
4239 (mm-disable-multibyte-mule4) ;; Must copy buffer in unibyte mode 4238 (if message-forward-as-mime
4239 (insert-buffer-substring forward-buffer)
4240 (mml-insert-buffer forward-buffer))
4241 (if (and message-forward-show-mml
4242 (not message-forward-decoded-p))
4243 (insert
4244 (with-temp-buffer
4245 (mm-disable-multibyte-mule4) ;; Must copy buffer in unibyte mode
4240 (insert 4246 (insert
4241 (with-current-buffer cur 4247 (with-current-buffer forward-buffer
4242 (mm-string-as-unibyte (buffer-string)))) 4248 (mm-string-as-unibyte (buffer-string))))
4243 (mm-enable-multibyte-mule4) 4249 (mm-enable-multibyte-mule4)
4244 (mime-to-mml) 4250 (mime-to-mml)
@@ -4246,37 +4252,53 @@ Optional DIGEST will use digest to forward."
4246 (when (looking-at "From ") 4252 (when (looking-at "From ")
4247 (replace-match "X-From-Line: ")) 4253 (replace-match "X-From-Line: "))
4248 (buffer-string))) 4254 (buffer-string)))
4249 (save-restriction 4255 (save-restriction
4250 (narrow-to-region (point) (point)) 4256 (narrow-to-region (point) (point))
4251 (mml-insert-buffer cur) 4257 (mml-insert-buffer forward-buffer)
4252 (goto-char (point-min)) 4258 (goto-char (point-min))
4253 (when (looking-at "From ") 4259 (when (looking-at "From ")
4254 (replace-match "X-From-Line: ")) 4260 (replace-match "X-From-Line: "))
4255 (goto-char (point-max))))) 4261 (goto-char (point-max)))))
4256 (setq e (point)) 4262 (setq e (point))
4257 (if message-forward-as-mime 4263 (if message-forward-as-mime
4258 (if digest 4264 (if digest
4259 (insert "<#/multipart>\n") 4265 (insert "<#/multipart>\n")
4260 (if message-forward-show-mml 4266 (if message-forward-show-mml
4261 (insert "<#/mml>\n") 4267 (insert "<#/mml>\n")
4262 (insert "<#/part>\n"))) 4268 (insert "<#/part>\n")))
4263 (insert "\n-------------------- End of forwarded message --------------------\n")) 4269 (insert "\n-------------------- End of forwarded message --------------------\n"))
4264 (if (and digest message-forward-as-mime) 4270 (if (and digest message-forward-as-mime)
4265 (save-restriction 4271 (save-restriction
4266 (narrow-to-region b e) 4272 (narrow-to-region b e)
4267 (goto-char b) 4273 (goto-char b)
4268 (narrow-to-region (point) 4274 (narrow-to-region (point)
4269 (or (search-forward "\n\n" nil t) (point))) 4275 (or (search-forward "\n\n" nil t) (point)))
4270 (delete-region (point-min) (point-max))) 4276 (delete-region (point-min) (point-max)))
4271 (when (and (not current-prefix-arg) 4277 (when (and (not current-prefix-arg)
4272 message-forward-ignored-headers) 4278 message-forward-ignored-headers)
4273 (save-restriction 4279 (save-restriction
4274 (narrow-to-region b e) 4280 (narrow-to-region b e)
4275 (goto-char b) 4281 (goto-char b)
4276 (narrow-to-region (point) 4282 (narrow-to-region (point)
4277 (or (search-forward "\n\n" nil t) (point))) 4283 (or (search-forward "\n\n" nil t) (point)))
4278 (message-remove-header message-forward-ignored-headers t))))) 4284 (message-remove-header message-forward-ignored-headers t)))))
4279 (message-position-point))) 4285 (message-position-point))
4286
4287;;;###autoload
4288(defun message-forward-rmail-make-body (forward-buffer)
4289 (save-window-excursion
4290 (set-buffer forward-buffer)
4291 (let (rmail-enable-mime)
4292 (rmail-toggle-header 0)))
4293 (message-forward-make-body forward-buffer))
4294
4295;;;###autoload
4296(defun message-insinuate-rmail ()
4297 "Let RMAIL uses message to forward."
4298 (interactive)
4299 (setq rmail-enable-mime-composing t)
4300 (setq rmail-insert-mime-forwarded-message-function
4301 'message-forward-rmail-make-body))
4280 4302
4281;;;###autoload 4303;;;###autoload
4282(defun message-resend (address) 4304(defun message-resend (address)
@@ -4648,9 +4670,10 @@ regexp varstr."
4648 ;; /usr/bin/mail. 4670 ;; /usr/bin/mail.
4649 (unless content-type-p 4671 (unless content-type-p
4650 (goto-char (point-min)) 4672 (goto-char (point-min))
4651 (re-search-forward "^MIME-Version:") 4673 ;; For unknown reason, MIME-Version doesn't exist.
4652 (forward-line 1) 4674 (when (re-search-forward "^MIME-Version:" nil t)
4653 (insert "Content-Type: text/plain; charset=us-ascii\n"))))) 4675 (forward-line 1)
4676 (insert "Content-Type: text/plain; charset=us-ascii\n"))))))
4654 4677
4655(defun message-read-from-minibuffer (prompt) 4678(defun message-read-from-minibuffer (prompt)
4656 "Read from the minibuffer while providing abbrev expansion." 4679 "Read from the minibuffer while providing abbrev expansion."
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 00626ffc3af..46a005d74ac 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -420,6 +420,9 @@ until a user explicitly requires it."
420 (other :tag "when asked" ask)) 420 (other :tag "when asked" ask))
421 :group 'rmail) 421 :group 'rmail)
422 422
423(defvar rmail-enable-mime-composing nil
424 "*If non-nil, RMAIL uses `rmail-insert-mime-forwarded-message-function' to forward.")
425
423;;;###autoload 426;;;###autoload
424(defvar rmail-show-mime-function nil 427(defvar rmail-show-mime-function nil
425 "Function to show MIME decoded message of RMAIL file. 428 "Function to show MIME decoded message of RMAIL file.
@@ -429,7 +432,8 @@ It is called with no argument.")
429;;;###autoload 432;;;###autoload
430(defvar rmail-insert-mime-forwarded-message-function nil 433(defvar rmail-insert-mime-forwarded-message-function nil
431 "Function to insert a message in MIME format so it can be forwarded. 434 "Function to insert a message in MIME format so it can be forwarded.
432This function is called if `rmail-enable-mime' is non-nil. 435This function is called if `rmail-enable-mime' or
436`rmail-enable-mime-composing' is non-nil.
433It is called with one argument FORWARD-BUFFER, which is a 437It is called with one argument FORWARD-BUFFER, which is a
434buffer containing the message to forward. The current buffer 438buffer containing the message to forward. The current buffer
435is the outgoing mail buffer.") 439is the outgoing mail buffer.")
@@ -3253,7 +3257,7 @@ see the documentation of `rmail-resend'."
3253 (save-excursion 3257 (save-excursion
3254 ;; Insert after header separator--before signature if any. 3258 ;; Insert after header separator--before signature if any.
3255 (goto-char (mail-text-start)) 3259 (goto-char (mail-text-start))
3256 (if rmail-enable-mime 3260 (if (or rmail-enable-mime rmail-enable-mime-composing)
3257 (funcall rmail-insert-mime-forwarded-message-function 3261 (funcall rmail-insert-mime-forwarded-message-function
3258 forward-buffer) 3262 forward-buffer)
3259 (insert "------- Start of forwarded message -------\n") 3263 (insert "------- Start of forwarded message -------\n")