home *** CD-ROM | disk | FTP | other *** search
- ;; LCD Archive Entry:
- ;; gnus-mail-vm|Joe Wells|jbw@cs.bu.edu|
- ;; Allow using VM's mail sending instead of the default version from GNUS.|
- ;; 1992-08-16||~/functions/gnus-mail-vm.el.Z|
-
- ;;(setq gnus-mail-reply-method 'gnus-mail-reply-using-mail)
- (setq gnus-mail-reply-method 'gnus-mail-reply-using-vm)
-
- (defun gnus-mail-reply-using-vm (&optional yank)
- "Compose reply mail using VM.
- Optional argument YANK means yank original article."
- ;; Ugly hack to work around fact that vm-mail-internal always uses
- ;; switch-to-buffer. Duplicate old GNUS functionality.
- (save-excursion
- (pop-to-buffer " *dummy buffer*"))
- (save-restriction
- (narrow-to-region (point-min) (progn (goto-line (point-min))
- (search-forward "\n\n")
- (- (point) 1)))
- (vm-mail-internal
- (format "reply to %s:%d" gnus-newsgroup-name gnus-current-article)
- (or (mail-fetch-field "reply-to")
- (mail-fetch-field "from"))
- (mail-fetch-field "subject")
- nil nil
- (concat (mail-fetch-field "references") " "
- (mail-fetch-field "message-id"))
- (mail-fetch-field "newsgroups")))
- (gnus-handle-references)
- (make-local-variable 'mail-reply-buffer)
- (setq mail-reply-buffer gnus-Article-buffer)
- (if yank
- (let ((last (point)))
- (goto-char (point-max))
- ;; This will delete window on *Article* buffer
- (mail-yank-original nil)
- (goto-char last)
- )))
-
- ;; The references filling functionality should be moved to vm-mail-internal
- (defun gnus-handle-references (&rest additional-references)
- (save-excursion
- (mail-position-on-field "References")
- (insert " " (mapconcat 'identity additional-references " "))
- (save-restriction
- (narrow-to-region (1+ (point))
- (progn (re-search-backward "^[^ \t]")
- (point)))
- (goto-char (point-min))
- (while (re-search-forward "[ \t\n]+" nil 'move)
- (replace-match " "))
- (delete-char -1)
- (insert ?\n)
- (let ((fill-column 79)
- (fill-prefix " ")) ; save space on screen
- ;; Fold long references line to follow RFC1036.
- ;; The region must end with a newline to fill the region
- ;; without inserting extra newline.
- (fill-region-as-paragraph (point-min) (point-max))))))
-