:group 'gnus-message
:type 'boolean)
+(defcustom gnus-gcc-pre-body-encode-hook nil
+ "A hook called before encoding the body of the Gcc copy of a message.
+The current buffer (when the hook is run) contains the message
+including the message header. Changes made to the message will
+only affect the Gcc copy, but not the original message."
+ :group 'gnus-message
+ :type 'hook)
+
+(defcustom gnus-gcc-post-body-encode-hook nil
+ "A hook called after encoding the body of the Gcc copy of a message.
+The current buffer (when the hook is run) contains the message
+including the message header. Changes made to the message will
+only affect the Gcc copy, but not the original message."
+ :group 'gnus-message
+ :type 'hook)
+
(autoload 'gnus-message-citation-mode "gnus-cite" nil t)
;;; Internal variables.
;;;###autoload
(defun gnus-msg-mail (&optional to subject other-headers continue
- switch-action yank-action send-actions return-action)
+ switch-action yank-action send-actions
+ return-action)
"Start editing a mail message to be sent.
Like `message-mail', but with Gnus paraphernalia, particularly the
Gcc: header for archiving purposes.
instead."
(interactive)
(if (not (gnus-alive-p))
- (message-mail)
+ (message-mail to subject other-headers continue
+ nil yank-action send-actions return-action)
(let ((buf (current-buffer))
mail-buf)
(gnus-setup-message 'message
(if (= 1 (prefix-numeric-value arg))
(gnus-group-completing-read "Newsgroup" nil
(gnus-read-active-file-p))
- (gnus-group-group-name))
+ (or (gnus-group-group-name) ""))
""))
;; make sure last viewed article doesn't affect posting styles:
(gnus-article-copy))
group)))
(message-unquote-tokens
(message-tokenize-header (mail-fetch-field "gcc" nil t)
- " ,")))))
+ " ,"))))
+ (self (with-current-buffer gnus-summary-buffer
+ gnus-gcc-self-resent-messages)))
(message-remove-header "gcc")
(when gcc
(goto-char (point-max))
- (cond ((eq gnus-gcc-self-resent-messages 'none))
- ((eq gnus-gcc-self-resent-messages t)
+ (cond ((eq self 'none))
+ ((eq self t)
(insert "Gcc: \"" gnus-newsgroup-name "\"\n"))
- ((stringp gnus-gcc-self-resent-messages)
+ ((stringp self)
(insert "Gcc: "
(mm-encode-coding-string
- (if (string-match " " gnus-gcc-self-resent-messages)
- (concat "\"" gnus-gcc-self-resent-messages "\"")
- gnus-gcc-self-resent-messages)
- (gnus-group-name-charset
- (gnus-inews-group-method gnus-gcc-self-resent-messages)
- gnus-gcc-self-resent-messages))
+ (if (string-match " " self)
+ (concat "\"" self "\"")
+ self)
+ (gnus-group-name-charset (gnus-inews-group-method self)
+ self))
"\n"))
- ((null gnus-gcc-self-resent-messages)
+ ((null self)
(insert "Gcc: " (mapconcat 'identity gcc ", ") "\n"))
- ((eq gnus-gcc-self-resent-messages 'no-gcc-self)
+ ((eq self 'no-gcc-self)
(when (setq gcc (delete
gnus-newsgroup-name
(delete (concat "\"" gnus-newsgroup-name "\"")
;; `gnus-summary-resend-message-insert-gcc' must run last.
(add-hook 'message-header-setup-hook
'gnus-summary-resend-message-insert-gcc t)
- (add-hook 'message-sent-hook (if gnus-agent
- 'gnus-agent-possibly-do-gcc
- 'gnus-inews-do-gcc))
+ (add-hook 'message-sent-hook
+ `(lambda ()
+ (let ((rfc2047-encode-encoded-words nil))
+ ,(if gnus-agent
+ '(gnus-agent-possibly-do-gcc)
+ '(gnus-inews-do-gcc)))))
(dolist (article (gnus-summary-work-articles n))
(gnus-summary-select-article nil nil nil article)
(with-current-buffer gnus-original-article-buffer
(error "Gnus has been shut down"))
(gnus-setup-message (if (message-mail-user-agent) 'message 'bug)
(unless (message-mail-user-agent)
- (delete-other-windows)
(when gnus-bug-create-help-buffer
(switch-to-buffer "*Gnus Help Bug*")
(erase-buffer)
(nnheader-set-temp-buffer " *acc*")
(setq message-options (with-current-buffer cur message-options))
(insert-buffer-substring cur)
+ (run-hooks 'gnus-gcc-pre-body-encode-hook)
(message-encode-message-body)
+ (run-hooks 'gnus-gcc-post-body-encode-hook)
(save-restriction
(message-narrow-to-headers)
(let* ((mail-parse-charset message-default-charset)