- (let ((message-forward-as-mime message-forward-as-mime)
- (message-forward-show-mml message-forward-show-mml))
- (cond
- ((null arg))
- ((eq arg 1) (setq message-forward-as-mime nil
- message-forward-show-mml t))
- ((eq arg 2) (setq message-forward-as-mime t
- message-forward-show-mml nil))
- ((eq arg 3) (setq message-forward-as-mime t
- message-forward-show-mml t))
- ((eq arg 4) (setq message-forward-as-mime nil
- message-forward-show-mml nil))
- (t (setq message-forward-as-mime (not message-forward-as-mime))))
- (gnus-setup-message 'forward
- (gnus-summary-select-article)
- (let ((mail-parse-charset gnus-newsgroup-charset)
- (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets)
- text)
- (save-excursion
- (set-buffer gnus-original-article-buffer)
- (setq text (buffer-string)))
- (set-buffer
- (if message-forward-show-mml
- (gnus-get-buffer-create
- (generate-new-buffer-name " *Gnus forward*"))
- (mm-with-unibyte-current-buffer
- ;; create an unibyte buffer
- (gnus-get-buffer-create
- (generate-new-buffer-name " *Gnus forward*")))))
- (erase-buffer)
- (insert text)
- (goto-char (point-min))
- (when (looking-at "From ")
- (replace-match "X-From-Line: ") )
- (if message-forward-show-mml
- (mime-to-mml))
- (message-forward post)))))
+ (gnus-summary-reply
+ (gnus-summary-work-articles n) t (gnus-summary-work-articles n)))
+
+(defun gnus-summary-mail-forward (&optional full-headers post)
+ "Forward the current message to another user.
+If FULL-HEADERS (the prefix), include full headers when forwarding."
+ (interactive "P")
+ (gnus-setup-message 'forward
+ (gnus-summary-select-article)
+ (let ((charset default-mime-charset))
+ (set-buffer gnus-original-article-buffer)
+ (make-local-variable 'default-mime-charset)
+ (setq default-mime-charset charset))
+ (let ((message-included-forward-headers
+ (if full-headers "" message-included-forward-headers)))
+ (message-forward post))))
+
+(defun gnus-summary-digest-mail-forward (&optional n post)
+ "Digests and forwards all articles in this series.
+If N is a positive number, forward the N next articles.
+If N is a negative number, forward the N previous articles.
+If N is nil and any articles have been marked with the process mark,
+forward those articles instead.
+Optional POST will use news to forward instead of mail."
+ (interactive "P")
+ (let ((articles (gnus-summary-work-articles n))
+ (topics "Topics:\n")
+ subject article frame)
+ (when (car articles)
+ (gnus-setup-message 'forward
+ (gnus-summary-select-article)
+ (if (cdr articles)
+ (setq articles (sort articles '<)
+ subject "Digested Articles")
+ (with-current-buffer gnus-original-article-buffer
+ (setq subject (message-make-forward-subject))))
+ (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)
+ (setq topics (concat topics " "
+ (mail-header-subject gnus-current-headers)
+ "\n"))
+ (gnus-summary-remove-process-mark article))
+ (when frame
+ (select-frame frame))
+ (insert (mime-make-tag "message" "rfc822") "\n")
+ (narrow-to-region (point) (point))
+ (insert-buffer-substring gnus-original-article-buffer)
+ (save-restriction
+ (article-narrow-to-head)
+ (message-remove-header message-included-forward-headers t nil t))
+ (goto-char (point-max))
+ (widen))
+ (push-mark)
+ (message-goto-body)
+ (insert topics)
+ (message-goto-body)
+ (mime-edit-enclose-digest-region (point)(mark t))))))
+
+(defun gnus-summary-digest-post-forward (&optional n)
+ "Digest and forwards all articles in this series to a newsgroup.
+If N is a positive number, forward the N next articles.
+If N is a negative number, forward the N previous articles.
+If N is nil and any articles have been marked with the process mark,
+forward those articles instead."
+ (interactive "P")
+ (gnus-summary-digest-mail-forward n t))