Mercurial > emacs
comparison lisp/gnus/message.el @ 41511:19496cafe865
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.
author | ShengHuo ZHU <zsh@cs.rochester.edu> |
---|---|
date | Sun, 25 Nov 2001 20:45:37 +0000 |
parents | 933ab100fb4a |
children | a96c3ddfa03e |
comparison
equal
deleted
inserted
replaced
41510:69925dd4cdc7 | 41511:19496cafe865 |
---|---|
3633 (when (and (boundp 'mc-modes-alist) | 3633 (when (and (boundp 'mc-modes-alist) |
3634 (not (assq 'message-mode mc-modes-alist))) | 3634 (not (assq 'message-mode mc-modes-alist))) |
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. |
3643 (mail-header-format | 3645 (mail-header-format |
3644 (let ((h headers) | 3646 (let ((h headers) |
4153 The form is: [Source] Subject, where if the original message was mail, | 4155 The form is: [Source] Subject, where if the original message was mail, |
4154 Source is the sender, and if the original message was news, Source is | 4156 Source is the sender, and if the original message was news, Source is |
4155 the list of newsgroups is was posted to." | 4157 the 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 |
4163 (mail-decode-encoded-word-string prefix))) | 4165 (mail-decode-encoded-word-string prefix))) |
4164 "] " subject)) | 4166 "] " subject)) |
4197 subject)))) | 4199 subject)))) |
4198 | 4200 |
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. |
4205 Optional NEWS will use news to forward instead of mail. | 4208 Optional NEWS will use news to forward instead of mail. |
4206 Optional DIGEST will use digest to forward." | 4209 Optional 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) |
4245 (goto-char (point-min)) | 4251 (goto-char (point-min)) |
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) |
4283 "Resend the current article to ADDRESS." | 4305 "Resend the current article to ADDRESS." |
4284 (interactive | 4306 (interactive |
4646 ;; when confronted with a message with a MIME-Version header and | 4668 ;; when confronted with a message with a MIME-Version header and |
4647 ;; without a Content-Type header. For instance, Solaris' | 4669 ;; without a Content-Type header. For instance, Solaris' |
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." |
4657 (if (fboundp 'mail-abbrevs-setup) | 4680 (if (fboundp 'mail-abbrevs-setup) |
4658 (let ((mail-abbrev-mode-regexp "") | 4681 (let ((mail-abbrev-mode-regexp "") |