1998-10-05 Katsumi Yamaoka <yamaoka@jpl.org>
authoryamaoka <yamaoka>
Mon, 5 Oct 1998 12:34:09 +0000 (12:34 +0000)
committeryamaoka <yamaoka>
Mon, 5 Oct 1998 12:34:09 +0000 (12:34 +0000)
* lisp/gnus-draft.el: Remove some useless comments.

* lisp/gnus-draft.el (gnus-draft-send-draft): Abolished.

1998-10-05  Katsumi Yamaoka   <yamaoka@jpl.org>

* 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  <morioka@jaist.ac.jp>

* 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
lisp/gnus-msg.el
lisp/message.el

index fbba88a..0597ff6 100644 (file)
        (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"))
        (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."
 ;;;!!!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))
       (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))
     (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."
index ada07d1..5f3c80a 100644 (file)
@@ -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)
index eb37072..7dce90e 100644 (file)
@@ -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