content-transfer encoding in the body, or one of the special values
nil (always encode using quoted-printable) or t (always use 8bit).
-Note that any value other tha nil for HEADER infringes some RFCs, so
+Note that any value other than nil for HEADER infringes some RFCs, so
use this option with care."
:type '(repeat (list :tag "Permitted unencoded charsets"
(choice :tag "Where"
"\M-c" gnus-summary-mail-crosspost-complaint
"om" gnus-summary-mail-forward
"op" gnus-summary-post-forward
- "Om" gnus-summary-mail-digest
- "Op" gnus-summary-post-digest)
+ "Om" gnus-uu-digest-mail-forward
+ "Op" gnus-uu-digest-post-forward)
(gnus-define-keys (gnus-send-bounce-map "D" gnus-summary-send-map)
"b" gnus-summary-resend-bounced-mail
;; "c" gnus-summary-send-draft
"r" gnus-summary-resend-message)
+;;;###autoload
+(defun gnus-msg-mail (&rest args)
+ "Start editing a mail message to be sent.
+Like `message-mail', but with Gnus paraphernalia, particularly the
+the Gcc: header for archiving purposes."
+ (interactive)
+ (gnus-setup-message 'message
+ (apply 'message-mail args)))
+
+;;;###autoload
+(define-mail-user-agent 'gnus-user-agent
+ 'gnus-msg-mail 'message-send-and-exit
+ 'message-kill-buffer 'message-send-hook)
+
;;; Internal functions.
(defvar gnus-article-reply nil)
(gnus-remove-text-with-property 'x-face-mule-bitmap-image)
(insert
(prog1
- (format "%s" (buffer-string))
- (erase-buffer)))
- )
+ (buffer-substring-no-properties (point-min) (point-max))
+ (erase-buffer))))
;; Find the original headers.
(set-buffer gnus-original-article-buffer)
(goto-char (point-min))
(article-buffer 'reply)
(t 'message))
(let* ((group (or group gnus-newsgroup-name))
+ (charset (gnus-group-name-charset nil group))
(pgroup group)
to-address to-group mailing-list to-list
newsgroup-p)
newsgroup-p (gnus-group-find-parameter group 'newsgroup)
mailing-list (when gnus-mailing-list-groups
(string-match gnus-mailing-list-groups group))
- group (gnus-group-real-name group)))
+ group (gnus-group-name-decode (gnus-group-real-name group)
+ charset)))
(if (or (and to-group
(gnus-news-group-p to-group))
newsgroup-p
(if full-headers "" message-included-forward-headers)))
(message-forward post))))
-;;; XXX: generate Subject and ``Topics''?
-(defun gnus-summary-mail-digest (&optional n post)
- "Digests and forwards all articles in this series."
- (interactive "P")
- (let ((subject "Digested Articles")
- (articles (gnus-summary-work-articles n))
- article frame)
- (gnus-setup-message 'forward
- (gnus-summary-select-article)
- (if post (message-news nil subject) (message-mail nil subject))
- (when (and message-use-multi-frames (cdr articles))
- (setq frame (window-frame (get-buffer-window (current-buffer)))))
- (message-goto-body)
- (while (setq article (pop articles))
- (save-window-excursion
- (set-buffer gnus-summary-buffer)
- (gnus-summary-select-article nil nil nil article)
- (gnus-summary-remove-process-mark article))
- (when frame
- (select-frame frame))
- (insert (mime-make-tag "message" "rfc822") "\n")
- (insert-buffer-substring gnus-original-article-buffer))
- (push-mark)
- (message-goto-body)
- (mime-edit-enclose-digest-region (point)(mark t)))))
-
-(defun gnus-summary-post-digest (&optional n)
- "Digest and forwards all articles in this series to a newsgroup."
- (interactive "P")
- (gnus-summary-mail-digest n t))
+;;;;; XXX: generate Subject and ``Topics''?
+;;(defun gnus-summary-mail-digest (&optional n post)
+;; "Digests and forwards all articles in this series."
+;; (interactive "P")
+;; (let ((subject "Digested Articles")
+;; (articles (gnus-summary-work-articles n))
+;; article frame)
+;; (gnus-setup-message 'forward
+;; (gnus-summary-select-article)
+;; (if post (message-news nil subject) (message-mail nil subject))
+;; (when (and message-use-multi-frames (cdr articles))
+;; (setq frame (window-frame (get-buffer-window (current-buffer)))))
+;; (message-goto-body)
+;; (while (setq article (pop articles))
+;; (save-window-excursion
+;; (set-buffer gnus-summary-buffer)
+;; (gnus-summary-select-article nil nil nil article)
+;; (gnus-summary-remove-process-mark article))
+;; (when frame
+;; (select-frame frame))
+;; (insert (mime-make-tag "message" "rfc822") "\n")
+;; (insert-buffer-substring gnus-original-article-buffer))
+;; (push-mark)
+;; (message-goto-body)
+;; (mime-edit-enclose-digest-region (point)(mark t)))))
+;;
+;;(defun gnus-summary-post-digest (&optional n)
+;; "Digest and forwards all articles in this series to a newsgroup."
+;; (interactive "P")
+;; (gnus-summary-mail-digest n t))
(defun gnus-summary-resend-message (address n)
"Resend the current article to ADDRESS."
(insert (with-temp-buffer
(gnus-debug)
(buffer-string)))
+ (let (mime-content-types)
+ (mime-edit-insert-tag "text" "plain"))
(goto-char (point-min))
(search-forward "Subject: " nil t)
(message "")))
(let ((files '("gnus.el" "gnus-sum.el" "gnus-group.el"
"gnus-art.el" "gnus-start.el" "gnus-async.el"
"gnus-msg.el" "gnus-score.el" "gnus-win.el" "gnus-topic.el"
- "nnmail.el" "message.el"))
+ "nnmail.el" "nntp.el" "message.el"))
(point (point))
file expr olist sym)
(gnus-message 4 "Please wait while we snoop your variables...")
(goto-char (point-min))
(while (setq expr (ignore-errors (read (current-buffer))))
(ignore-errors
- (and (or (eq (car expr) 'defvar)
- (eq (car expr) 'defcustom))
+ (and (memq (car expr) '(defvar defcustom defvoo))
(stringp (nth 3 expr))
(or (not (boundp (nth 1 expr)))
(not (equal (eval (nth 2 expr))
(push (nth 1 expr) olist)))))))
(kill-buffer (current-buffer)))
(when (setq olist (nreverse olist))
- (insert "------------------ Environment follows ------------------\n\n"))
+ (insert ";----------------- Environment follows ------------------\n\n"))
(while olist
(if (boundp (car olist))
(condition-case ()
(format "(setq %s 'whatever)\n" (car olist))))
(insert ";; (makeunbound '" (symbol-name (car olist)) ")\n"))
(setq olist (cdr olist)))
- (insert "\n\n")
;; Remove any control chars - they seem to cause trouble for some
;; mailers. (Byte-compiled output from the stuff above.)
(goto-char point)
(while (re-search-forward "[\000-\010\013-\037\200-\237]" nil t)
(replace-match (format "\\%03o" (string-to-char (match-string 0)))
- t t))))
+ t t))
+ ;; Break MIME tags purposely.
+ (goto-char point)
+ (while (re-search-forward mime-edit-tag-regexp nil t)
+ (goto-char (1+ (match-beginning 0)))
+ (insert "X"))))
;;; Treatment of rejected articles.
;;; Bounced mail.
(when gcc
(message-remove-header "gcc")
(widen)
- (setq groups (message-tokenize-header gcc " ,"))
+ (setq groups (message-unquote-tokens
+ (message-tokenize-header gcc " ,")))
;; Copy the article over to some group(s).
(while (setq group (pop groups))
(gnus-check-server
`(lambda ()
(save-excursion
(message-remove-header ,header)
- (message-goto-eoh)
- (insert ,header ": " ,(cdr result) "\n"))))))))
+ (let ((value ,(cdr result)))
+ (when value
+ (message-goto-eoh)
+ (insert ,header ": " value "\n"))))))))))
(when (or name address)
(add-hook 'message-setup-hook
`(lambda ()