From c8ea10f077d264fe9a5d86ca0836db23cb2eba3a Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 5 Oct 1998 12:34:09 +0000 Subject: [PATCH] 1998-10-05 Katsumi Yamaoka * lisp/gnus-draft.el: Remove some useless comments. * lisp/gnus-draft.el (gnus-draft-send-draft): Abolished. 1998-10-05 Katsumi Yamaoka * lisp/message.el (message-yank-original): Use the value of `message-reply-buffer' as a function if it is a function. (message-fetch-reply-field): Ditto. * lisp/message.el (message-setup): Set the value of `message-reply-buffer' if the variable `gnus-message-get-reply-buffer' exists. * lisp/gnus-msg.el (gnus-setup-message): Bind `message-get-reply-buffer' as the function `gnus-copy-article-buffer'. 1998-10-03 MORIOKA Tomohiko * lisp/gnus-draft.el (gnus-draft-send): Call `message-send-news-function' or `message-send-mail-function' instead of `message-send-and-exit'. --- lisp/gnus-draft.el | 111 +++++++++++++--------------------------------------- lisp/gnus-msg.el | 3 +- lisp/message.el | 33 ++++++++++------ 3 files changed, 51 insertions(+), 96 deletions(-) diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index fbba88a..0597ff6 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -119,36 +119,6 @@ (gnus-draft-send article gnus-newsgroup-name) (gnus-summary-mark-article article gnus-canceled-mark))))) -;;(defun gnus-draft-send (article &optional group) -;; "Send message ARTICLE." -;; (gnus-draft-setup article (or group "nndraft:queue")) -;; (let ((message-syntax-checks 'dont-check-for-anything-just-trust-me) -;; message-send-hook type method) -;; ;; We read the meta-information that says how and where -;; ;; this message is to be sent. -;; (save-restriction -;; (message-narrow-to-head) -;; (when (re-search-forward -;; (concat "^" (regexp-quote gnus-agent-meta-information-header) ":") -;; nil t) -;; (setq type (ignore-errors (read (current-buffer))) -;; method (ignore-errors (read (current-buffer)))) -;; (message-remove-header gnus-agent-meta-information-header))) -;; ;; Then we send it. If we have no meta-information, we just send -;; ;; it and let Message figure out how. -;; (when (if type -;; (let ((message-this-is-news (eq type 'news)) -;; (message-this-is-mail (eq type 'mail)) -;; (gnus-post-method method) -;; (message-post-method method)) -;; (message-send-and-exit)) -;; (message-send-and-exit)) -;; (let ((gnus-verbose-backends nil)) -;; (gnus-request-expire-articles -;; (list article) (or group "nndraft:queue") t))))) - -;; For draft TEST -(defvar gnus-draft-send-draft-buffer " *send draft*") (defun gnus-draft-send (article &optional group) "Send message ARTICLE." (gnus-draft-setup-for-sending article (or group "nndraft:queue")) @@ -166,35 +136,28 @@ (message-remove-header gnus-agent-meta-information-header))) ;; Then we send it. If we have no meta-information, we just send ;; it and let Message figure out how. - (if type - (gnus-draft-send-draft type method)))) -;; -(defun gnus-draft-send-draft (type method) - (if (eq type 'mail) - (progn - ;; Send draft via SMTP. - (require 'smtp) - (let ((recipients (smtp-deduce-address-list - (current-buffer) - (goto-char (point-min)) (search-forward "\n\n")))) - (if (not (null recipients)) - (if (not (smtp-via-smtp user-mail-address recipients (current-buffer))) - (error "Sending failed: SMTP protocol error") - (let ((gnus-verbose-backends nil)) - (gnus-request-expire-articles - (list article) (or group "nndraft:queue") t)) - (if (get-buffer gnus-draft-send-draft-buffer) - (kill-buffer gnus-draft-send-draft-buffer))) - (error "No recipients.")))) - ;; Send draft via NNTP. - (gnus-open-server method) - (gnus-request-post method) - (let ((gnus-verbose-backends nil)) - (gnus-request-expire-articles - (list article) (or group "nndraft:queue") t)) - (if (get-buffer gnus-draft-send-draft-buffer) - (kill-buffer gnus-draft-send-draft-buffer)))) -;; For draft TEST + (when (let ((mail-header-separator "")) + (cond ((eq type 'news) + (mime-edit-maybe-split-and-send + (function + (lambda () + (interactive) + (funcall message-send-news-function method) + ))) + (funcall message-send-news-function method) + ) + ((eq type 'mail) + (mime-edit-maybe-split-and-send + (function + (lambda () + (interactive) + (funcall message-send-mail-function) + ))) + (funcall message-send-mail-function) + t))) + (let ((gnus-verbose-backends nil)) + (gnus-request-expire-articles + (list article) (or group "nndraft:queue") t))))) (defun gnus-draft-send-all-messages () "Send all the sendable drafts." @@ -234,25 +197,6 @@ ;;;!!!This has been fixed in recent versions of Emacs and XEmacs, ;;;!!!but for the time being, we'll just run this tiny function uncompiled. -;;(progn -;;(defun gnus-draft-setup (narticle group) -;; (gnus-setup-message 'forward -;; (let ((article narticle)) -;; (message-mail) -;; (erase-buffer) -;; (if (not (gnus-request-restore-buffer article group)) -;; (error "Couldn't restore the article") -;; ;; Insert the separator. -;; (funcall gnus-draft-decoding-function) -;; (goto-char (point-min)) -;; (search-forward "\n\n") -;; (forward-char -1) -;; (insert mail-header-separator) -;; (forward-line 1) -;; (message-set-auto-save-file-name)))))) -;; -;; For draft TEST -(progn (defun gnus-draft-setup-for-editing (narticle group) (gnus-setup-message 'forward (let ((article narticle)) @@ -260,16 +204,16 @@ (erase-buffer) (if (not (gnus-request-restore-buffer article group)) (error "Couldn't restore the article") - Insert the separator. + ;; Insert the separator. (funcall gnus-draft-decoding-function) (goto-char (point-min)) (search-forward "\n\n") (forward-char -1) (insert mail-header-separator) (forward-line 1) - (message-set-auto-save-file-name)))))) -;; -(progn + (message-set-auto-save-file-name))))) + +(defvar gnus-draft-send-draft-buffer " *send draft*") (defun gnus-draft-setup-for-sending (narticle group) (let ((article narticle)) (if (not (get-buffer gnus-draft-send-draft-buffer)) @@ -278,8 +222,7 @@ (erase-buffer) (if (not (gnus-request-restore-buffer article group)) (error "Couldn't restore the article") - )))) -;; For draft TEST + ))) (defun gnus-draft-article-sendable-p (article) "Say whether ARTICLE is sendable." diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index ada07d1..5f3c80a 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -247,7 +247,8 @@ MAX-COLUMN the optional second argument if it is specified, the return value (,group gnus-newsgroup-name) (message-header-setup-hook (copy-sequence message-header-setup-hook)) - (message-mode-hook (copy-sequence message-mode-hook))) + (message-mode-hook (copy-sequence message-mode-hook)) + (gnus-message-get-reply-buffer 'gnus-copy-article-buffer)) (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc) (add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc) (add-hook 'message-mode-hook 'gnus-configure-posting-styles) diff --git a/lisp/message.el b/lisp/message.el index eb37072..7dce90e 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1174,11 +1174,14 @@ The cdr of ech entry is a function for applying the face to a region.") (defun message-fetch-reply-field (header) "Fetch FIELD from the message we're replying to." - (when (and message-reply-buffer - (buffer-name message-reply-buffer)) - (save-excursion - (set-buffer message-reply-buffer) - (message-fetch-field header)))) + (let ((buffer (if (functionp message-reply-buffer) + (funcall message-reply-buffer) + message-reply-buffer))) + (when (and buffer + (buffer-name buffer)) + (save-excursion + (set-buffer buffer) + (message-fetch-field header))))) (defun message-set-work-buffer () (if (get-buffer " *message work*") @@ -1916,13 +1919,16 @@ This function uses `message-cite-function' to do the actual citing. Just \\[universal-argument] as argument means don't indent, insert no prefix, and don't delete any headers." (interactive "P") - (let ((modified (buffer-modified-p))) + (let ((modified (buffer-modified-p)) + buffer) (when (and message-reply-buffer message-cite-function) - (gnus-copy-article-buffer) - (setq message-reply-buffer gnus-article-copy) - (delete-windows-on message-reply-buffer t) - (insert-buffer message-reply-buffer) + (setq buffer + (if (functionp message-reply-buffer) + (funcall message-reply-buffer) + message-reply-buffer)) + (delete-windows-on buffer t) + (insert-buffer buffer) (funcall message-cite-function) (message-exchange-point-and-mark) (unless (bolp) @@ -3493,6 +3499,7 @@ Headers already prepared in the buffer are not modified." (nconc message-buffer-list (list (current-buffer)))))) (defvar mc-modes-alist) +(defvar gnus-message-get-reply-buffer) (defun message-setup (headers &optional replybuffer actions) (when (and (boundp 'mc-modes-alist) (not (assq 'message-mode mc-modes-alist))) @@ -3501,7 +3508,11 @@ Headers already prepared in the buffer are not modified." mc-modes-alist)) (when actions (setq message-send-actions actions)) - (setq message-reply-buffer replybuffer) + (setq message-reply-buffer + (if (and (boundp 'gnus-message-get-reply-buffer) + gnus-message-get-reply-buffer) + gnus-message-get-reply-buffer + replybuffer)) (goto-char (point-min)) ;; Insert all the headers. (mail-header-format -- 1.7.10.4