-(defun gnus-mh-mail-setup (to subject in-reply-to cc replybuffer actions)
- (let ((config (current-window-configuration)))
- (mh-find-path)
- (mh-send-sub (or to "") (or cc "") (or subject "") config)
- (when in-reply-to
- (save-excursion
- (goto-char (point-min))
- (insert "In-Reply-To: " in-reply-to "\n")))
- (setq mh-sent-from-folder gnus-original-article-buffer)
- (setq mh-sent-from-msg 1)
- (setq gnus-mail-buffer (buffer-name (current-buffer)))
- (setq mail-reply-buffer replybuffer)
- (save-excursion
- (set-buffer mh-sent-from-folder)
- (setq mh-show-buffer replybuffer))
- (use-local-map (copy-keymap (current-local-map)))
- (local-set-key "\C-c\C-c" 'gnus-mh-mail-send-and-exit)
- (setq mh-show-buffer gnus-article-copy)
- (setq mh-previous-window-config config)))
-
-(defun gnus-mh-mail-send-and-exit (&optional dont-send)
- "Send the current mail and return to Gnus."
- (interactive)
- (let* ((reply gnus-article-reply)
- (winconf gnus-prev-winconf)
- (address-group gnus-add-to-address)
- (to-address (and address-group
- (mail-fetch-field "to"))))
- (setq gnus-add-to-address nil)
- (or dont-send (mh-send-letter))
- (bury-buffer)
- ;; This mail group doesn't have a `to-address', so we add one
- ;; here. Magic!
- (and to-address
- (gnus-group-add-parameter
- address-group (cons 'to-address to-address)))
- (if (get-buffer gnus-group-buffer)
- (progn
- (if (gnus-buffer-exists-p (car-safe reply))
- (progn
- (set-buffer (car reply))
- (and (cdr reply)
- (gnus-summary-mark-article-as-replied
- (cdr reply)))))
- (and winconf (set-window-configuration winconf))))))
-