X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fnndraft.el;h=c6f23c41026d2234d96c1888567019b787972470;hb=0a676cddd8ea50d8a08d60ed2c6280a1f67c0c11;hp=1d320a552925440dbd0d2ef06c41e65fb6c78c84;hpb=3c19a9d1054e341f806d39714ddf1d70b03ef142;p=elisp%2Fgnus.git- diff --git a/lisp/nndraft.el b/lisp/nndraft.el index 1d320a5..c6f23c4 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -1,6 +1,5 @@ ;;; nndraft.el --- draft article access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news @@ -31,7 +30,6 @@ (require 'gnus-start) (require 'nnmh) (require 'nnoo) -(require 'mm-util) (eval-when-compile (require 'cl) ;; This is just to shut up the byte-compiler. @@ -79,12 +77,16 @@ (save-excursion (set-buffer nntp-server-buffer) (erase-buffer) - (let* (article) + (let* ((buf (get-buffer-create " *draft headers*")) + article) + (set-buffer buf) + (buffer-disable-undo (current-buffer)) + (erase-buffer) ;; We don't support fetching by Message-ID. (if (stringp (car articles)) 'headers (while articles - (narrow-to-region (point) (point)) + (set-buffer buf) (when (nndraft-request-article (setq article (pop articles)) group server (current-buffer)) (goto-char (point-min)) @@ -92,10 +94,10 @@ (forward-line -1) (goto-char (point-max))) (delete-region (point) (point-max)) - (goto-char (point-min)) - (insert (format "221 %d Article retrieved.\n" article)) - (widen) + (set-buffer nntp-server-buffer) (goto-char (point-max)) + (insert (format "221 %d Article retrieved.\n" article)) + (insert-buffer-substring buf) (insert ".\n"))) (nnheader-fold-continuation-lines) @@ -111,13 +113,7 @@ (newest (if (file-newer-than-file-p file auto) file auto)) (nntp-server-buffer (or buffer nntp-server-buffer))) (when (and (file-exists-p newest) - (let ((nnmail-file-coding-system - (if (file-newer-than-file-p file auto) - (if (equal group "drafts") - message-draft-coding-system - mm-text-coding-system) - mm-auto-save-coding-system))) - (nnmail-find-file newest))) + (nnmail-find-file newest)) (save-excursion (set-buffer nntp-server-buffer) (goto-char (point-min)) @@ -142,9 +138,8 @@ info (gnus-update-read-articles (gnus-group-prefixed-name group '(nndraft "")) (nndraft-articles) t)) - (let ((marks (nth 3 info))) - (when marks - ;; Nix out all marks except the `unsend'-able article marks. + (let (marks) + (when (setq marks (nth 3 info)) (setcar (nthcdr 3 info) (if (assq 'unsend marks) (list (assq 'unsend marks)) @@ -158,14 +153,14 @@ (nndraft-possibly-change-group group) (let ((gnus-verbose-backends nil) (buf (current-buffer)) - article file) - (with-temp-buffer - (insert-buffer-substring buf) + article file) + (nnheader-temp-write nil + (insert-buffer buf) (setq article (nndraft-request-accept-article - group (nnoo-current-server 'nndraft) t 'noinsert) - file (nndraft-article-filename article))) - (setq buffer-file-name (expand-file-name file) - buffer-auto-save-file-name (make-auto-save-file-name)) + group (nnoo-current-server 'nndraft) t 'noinsert)) + (setq file (nndraft-article-filename article))) + (setq buffer-file-name (expand-file-name file)) + (setq buffer-auto-save-file-name (make-auto-save-file-name)) (clear-visited-file-modtime) article)) @@ -182,14 +177,7 @@ (let ((auto (nndraft-auto-save-file-name (nndraft-article-filename article)))) (when (file-exists-p auto) - (funcall nnmail-delete-file-function auto))) - (dolist (backup - (let ((kept-new-versions 1) - (kept-old-versions 0)) - (find-backup-file-name - (nndraft-article-filename article)))) - (when (file-exists-p backup) - (funcall nnmail-delete-file-function backup))))) + (funcall nnmail-delete-file-function auto))))) res)) (deffoo nndraft-request-accept-article (group &optional server last noinsert) @@ -198,15 +186,6 @@ (nnoo-parent-function 'nndraft 'nnmh-request-accept-article (list group server last noinsert)))) -(deffoo nndraft-request-replace-article (article group buffer) - (nndraft-possibly-change-group group) - (let ((nnmail-file-coding-system - (if (equal group "drafts") - mm-auto-save-coding-system - mm-text-coding-system))) - (nnoo-parent-function 'nndraft 'nnmh-request-replace-article - (list article group buffer)))) - (deffoo nndraft-request-create-group (group &optional server args) (nndraft-possibly-change-group group) (if (file-exists-p nndraft-current-directory) @@ -258,9 +237,10 @@ nnmh-retrieve-headers nnmh-request-group nnmh-close-group - nnmh-request-list + nnmh-request-list nnmh-request-newsgroups - nnmh-request-move-article)) + nnmh-request-move-article + nnmh-request-replace-article)) (provide 'nndraft)