;;; gnus-msg.el --- mail and post interface for Gnus
-;; Copyright (C) 1995-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2013 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
nil, Gcc will be done according to existing Gcc header(s), if any.
If this is `no-gcc-self', resent messages will be Gcc'd to groups that
existing Gcc header specifies, except for the current group."
- :version "24.2"
+ :version "24.3"
:group 'gnus-message
:type '(choice (const none) (const t) string (const nil)
(const no-gcc-self)))
including the message header. Changes made to the message will
only affect the Gcc copy, but not the original message."
:group 'gnus-message
+ :version "24.3"
:type 'hook)
(defcustom gnus-gcc-post-body-encode-hook nil
including the message header. Changes made to the message will
only affect the Gcc copy, but not the original message."
:group 'gnus-message
+ :version "24.3"
:type 'hook)
(autoload 'gnus-message-citation-mode "gnus-cite" nil t)
(gnus-inews-make-draft-meta-information
,(gnus-group-decoded-name gnus-newsgroup-name) ',articles)))
+(autoload 'nnir-article-number "nnir" nil nil 'macro)
+(autoload 'nnir-article-group "nnir" nil nil 'macro)
+(autoload 'gnus-nnir-group-p "nnir")
+
+
(defvar gnus-article-reply nil)
(defmacro gnus-setup-message (config &rest forms)
(let ((winconf (make-symbol "gnus-setup-message-winconf"))
`(let ((,winconf (current-window-configuration))
(,winconf-name gnus-current-window-configuration)
(,buffer (buffer-name (current-buffer)))
- (,article gnus-article-reply)
+ (,article (if (and (gnus-nnir-group-p gnus-newsgroup-name)
+ gnus-article-reply)
+ (nnir-article-number (length gnus-article-reply))
+ gnus-article-reply))
(,yanked gnus-article-yanked-articles)
- (,group gnus-newsgroup-name)
+ (,group (if (and (gnus-nnir-group-p gnus-newsgroup-name)
+ gnus-article-reply)
+ (nnir-article-group (length gnus-article-reply))
+ gnus-newsgroup-name))
(message-header-setup-hook
(copy-sequence message-header-setup-hook))
(mbl mml-buffer-list)
(message-mode-hook (copy-sequence message-mode-hook)))
(setq mml-buffer-list nil)
- (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc)
+ (add-hook 'message-header-setup-hook (lambda ()
+ (gnus-inews-insert-gcc ,group)))
;; message-newsreader and message-mailer were formerly set in
;; gnus-inews-add-send-actions, but this is too late when
;; message-generate-headers-first is used. --ansel
(message-mail to subject other-headers continue
nil yank-action send-actions return-action))
(let ((buf (current-buffer))
- (gnus-newsgroup-name (or gnus-newsgroup-name ""))
+ ;; Don't use posting styles corresponding to any existing group.
+ (gnus-newsgroup-name "")
mail-buf)
(gnus-setup-message 'message
(message-mail to subject other-headers continue
(with-current-buffer article-buffer
(let ((gnus-newsgroup-charset (or gnus-article-charset
gnus-newsgroup-charset))
+ (inhibit-read-only t)
(gnus-newsgroup-ignored-charsets
(or gnus-article-ignored-charsets
gnus-newsgroup-ignored-charsets)))
(gnus-v
(when (memq 'gnus gnus-user-agent)
(concat "Gnus/"
- (prin1-to-string (gnus-continuum-version gnus-version) t)
+ (gnus-replace-in-string
+ (format "%1.8f" (gnus-continuum-version gnus-version))
+ "0+\\'" "")
" (" gnus-version ")")))
(emacs-v (gnus-emacs-version)))
(concat gnus-v (when (and gnus-v emacs-v) " ")
(nnmail-fetch-field "to"))))
current-prefix-arg))
(let ((message-header-setup-hook (copy-sequence message-header-setup-hook))
- (message-sent-hook (copy-sequence message-sent-hook)))
+ (message-sent-hook (copy-sequence message-sent-hook))
+ ;; Honor posting-style for `name' and `address' in Resent-From header.
+ (styles (gnus-group-find-parameter gnus-newsgroup-name
+ 'posting-style t))
+ (user-full-name user-full-name)
+ (user-mail-address user-mail-address)
+ tem)
+ (dolist (style styles)
+ (when (stringp (cadr style))
+ (setcdr style (list (mm-decode-coding-string (cadr style) 'utf-8)))))
+ (dolist (style (if styles
+ (append gnus-posting-styles (list (cons ".*" styles)))
+ gnus-posting-styles))
+ (when (and (stringp (car style))
+ (string-match (pop style) gnus-newsgroup-name))
+ (when (setq tem (cadr (assq 'name style)))
+ (setq user-full-name tem))
+ (when (setq tem (cadr (assq 'address style)))
+ (setq user-mail-address tem))))
;; `gnus-summary-resend-message-insert-gcc' must run last.
(add-hook 'message-header-setup-hook
'gnus-summary-resend-message-insert-gcc t)
(group (when group (gnus-group-decoded-name group)))
(var (or gnus-outgoing-message-group gnus-message-archive-group))
(gcc-self-val
- (and group (gnus-group-find-parameter group 'gcc-self)))
+ (and group (not (gnus-virtual-group-p group))
+ (gnus-group-find-parameter group 'gcc-self)))
result
(groups
(cond
(setq var (cdr var)))
result)))
name)
- (when (or groups gcc-self-val)
+ (when (and (or groups gcc-self-val)
+ (gnus-alive-p))
(when (stringp groups)
(setq groups (list groups)))
(save-excursion
(when gnus-newsgroup-name
(let ((tmp-style (gnus-group-find-parameter group 'posting-style t)))
(when tmp-style
+ (dolist (style tmp-style)
+ (when (stringp (cadr style))
+ (setcdr style (list (mm-decode-coding-string (cadr style)
+ 'utf-8)))))
(setq styles (append styles (list (cons ".*" tmp-style)))))))
;; Go through all styles and look for matches.
(dolist (style styles)