X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus-draft.el;h=fcc4aee31068482c63f625e6a0cfe3f9062d57d2;hb=6aa9bc9f9632af54aca71db2787ce2a1cecb6208;hp=8492475bc572854f057f9f4cb87d2f1ef5007882;hpb=c6b38594419ced3b72313ad23f57526ed0fb4005;p=gnus diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index 8492475bc..fcc4aee31 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -1,7 +1,7 @@ ;;; gnus-draft.el --- draft message support for Gnus -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtgnus-run-hooks ;; Keywords: news ;; This file is part of GNU Emacs. @@ -53,7 +53,11 @@ (easy-menu-define gnus-draft-menu gnus-draft-mode-map "" '("Drafts" - ["Toggle whether to send" gnus-draft-toggle-sending t])))) + ["Toggle whether to send" gnus-draft-toggle-sending t] + ["Edit" gnus-draft-edit-message t] + ["Send selected message(s)" gnus-draft-send-message t] + ["Send all messages" gnus-draft-send-all-messages t] + ["Delete draft" gnus-summary-delete-article t])))) (defun gnus-draft-mode (&optional arg) "Minor mode for providing a draft summary buffers. @@ -68,7 +72,7 @@ (when (gnus-visual-p 'draft-menu 'menu) (gnus-draft-make-menu-bar)) (gnus-add-minor-mode 'gnus-draft-mode " Draft" gnus-draft-mode-map) - (run-hooks 'gnus-draft-mode-hook)))) + (gnus-run-hooks 'gnus-draft-mode-hook)))) ;;; Commands @@ -88,14 +92,14 @@ "Enter a mail/post buffer to edit and send the draft." (interactive) (let ((article (gnus-summary-article-number))) + (gnus-summary-mark-as-read article gnus-canceled-mark) (gnus-draft-setup article gnus-newsgroup-name) (push `((lambda () - (when (buffer-name (get-buffer ,gnus-summary-buffer)) + (when (gnus-buffer-exists-p ,gnus-summary-buffer) (save-excursion - (set-buffer (get-buffer ,gnus-summary-buffer)) - (gnus-cache-possibly-remove-article ,article nil nil nil t) - (gnus-summary-mark-as-read ,article gnus-canceled-mark))))) + (set-buffer ,gnus-summary-buffer) + (gnus-cache-possibly-remove-article ,article nil nil nil t))))) message-send-actions))) (defun gnus-draft-send-message (&optional n) @@ -112,7 +116,8 @@ (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)) + (let ((message-syntax-checks 'dont-check-for-anything-just-trust-me) + message-send-hook) (message-send-and-exit))) (defun gnus-draft-send-all-messages () @@ -124,7 +129,7 @@ (defun gnus-group-send-drafts () "Send all sendable articles from the queue group." (interactive) - (gnus-request-group "nndraft:queue") + (gnus-activate-group "nndraft:queue") (save-excursion (let ((articles (nndraft-articles)) (unsendable (gnus-uncompress-range @@ -139,7 +144,9 @@ ;;; Utility functions ;;;!!!If this is byte-compiled, it fails miserably. -;;;!!!I have no idea why. +;;;!!!This is because `gnus-setup-message' uses uninterned symbols. +;;;!!!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) @@ -147,7 +154,6 @@ (let ((article narticle)) (message-mail) (erase-buffer) - (message "%s %s" group article) (if (not (gnus-request-restore-buffer article group)) (error "Couldn't restore the article") ;; Insert the separator. @@ -155,7 +161,8 @@ (search-forward "\n\n") (forward-char -1) (insert mail-header-separator) - (forward-line 1)))))) + (forward-line 1) + (message-set-auto-save-file-name)))))) (defun gnus-draft-article-sendable-p (article) "Say whether ARTICLE is sendable."