X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-draft.el;h=47cfac79013a3aa3b86ce1539fd83ec854fc919f;hb=a3dceb5435f0e48f5b39a10508e3d7d14aa9e8c2;hp=2cad71927f4e36ea9bbf471527b06bcb4115c715;hpb=8ce0e79fd1293286d8c66d3a89a9f11677a67d9b;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index 2cad719..47cfac7 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -1,5 +1,5 @@ ;;; gnus-draft.el --- draft message support for Semi-gnus -;; Copyright (C) 1997, 1998, 1999, 2000 +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen @@ -98,14 +98,13 @@ (let ((article (gnus-summary-article-number)) (group gnus-newsgroup-name)) (gnus-summary-mark-as-read article gnus-canceled-mark) - (gnus-draft-setup-for-editing article group) + (gnus-draft-setup article group t) (set-buffer-modified-p t) (save-excursion (save-restriction (message-narrow-to-headers) - (message-remove-header "date") - (put-text-property (point-min) (point-max) 'field 'header))) - (message-save-drafts) + (message-remove-header "date"))) + (save-buffer) (let ((gnus-verbose-backends nil)) (gnus-request-expire-articles (list article) group t)) (push @@ -133,7 +132,7 @@ (defun gnus-draft-send (article &optional group interactive) "Send message ARTICLE." - (let ((message-syntax-checks (if interactive nil + (let ((message-syntax-checks (if interactive message-syntax-checks 'dont-check-for-anything-just-trust-me)) (message-inhibit-body-encoding (or (not group) (equal group "nndraft:queue") @@ -143,7 +142,7 @@ (message-setup-hook (and group (not (equal group "nndraft:queue")) message-setup-hook)) type method) - (gnus-draft-setup-for-sending article (or group "nndraft:queue")) + (gnus-draft-setup article (or group "nndraft:queue")) ;; We read the meta-information that says how and where ;; this message is to be sent. (save-restriction @@ -158,22 +157,16 @@ (gnus-agent-restore-gcc) ;; Then we send it. If we have no meta-information, we just send ;; it and let Message figure out how. - (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))) + (when (and (or (null method) + (gnus-server-opened method) + (gnus-open-server method)) + (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))))) @@ -184,7 +177,7 @@ (gnus-uu-mark-buffer) (gnus-draft-send-message)) -(defun gnus-group-send-drafts () +(defun gnus-group-send-queue () "Send all sendable articles from the queue group." (interactive) (gnus-activate-group "nndraft:queue") @@ -230,7 +223,7 @@ ;;;!!!This has been fixed in recent versions of Emacs and XEmacs, ;;;!!!but for the time being, we'll just run this tiny function uncompiled. -(defun gnus-draft-setup-for-editing (narticle group) +(defun gnus-draft-setup (narticle group &optional restore) (let (ga) (gnus-setup-message 'forward (let ((article narticle)) @@ -238,7 +231,9 @@ (erase-buffer) (if (not (gnus-request-restore-buffer article group)) (error "Couldn't restore the article") - (funcall gnus-draft-decoding-function) + (when (and restore + (equal group "nndraft:queue")) + (funcall gnus-draft-decoding-function)) ;; Insert the separator. (goto-char (point-min)) (search-forward "\n\n") @@ -263,16 +258,6 @@ 'add '(reply))))) 'send))))) -(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)) - (get-buffer-create gnus-draft-send-draft-buffer)) - (set-buffer gnus-draft-send-draft-buffer) - (erase-buffer) - (if (not (gnus-request-restore-buffer article group)) - (error "Couldn't restore the article")))) - (defun gnus-draft-article-sendable-p (article) "Say whether ARTICLE is sendable." (not (memq article gnus-newsgroup-unsendable)))