X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fnndraft.el;h=56c012037cecbcd0318b77229924618eadd13286;hb=0b8065c654ce24731b8b64116e5c755fe560d99c;hp=80acd1fc8bf02d8d60ae53ec291d1e80c0d65b23;hpb=c09475852c58fed9bd28b2e99afae63f05eccee6;p=gnus diff --git a/lisp/nndraft.el b/lisp/nndraft.el index 80acd1fc8..56c012037 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -106,47 +106,23 @@ ;; "real" file. (let* ((file (nndraft-article-filename id)) (auto (nndraft-auto-save-file-name file)) - (newest (if (or (member group '("drafts" "delayed")) - (file-newer-than-file-p file auto)) - file - auto)) - (nntp-server-buffer (or buffer nntp-server-buffer)) - ;; The default value for `message-draft-coding-system' was - ;; `emacs-mule' for Emacs in the past, and the existing draft - ;; files may have been saved using that coding-system. - (maybe-emacs-mule-p (and (not (featurep 'xemacs)) - (not (equal "queue" group)) - (eq message-draft-coding-system - ;; The present default value. - 'iso-2022-7bit) - (mm-coding-system-p 'emacs-mule)))) + (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) - (if (equal "queue" group) - (nnmail-find-file newest) - (let ((nnmail-file-coding-system - (if (file-newer-than-file-p file auto) - (if (member group '("drafts" "delayed")) - (if maybe-emacs-mule-p - mm-text-coding-system - message-draft-coding-system) - mm-text-coding-system) - mm-auto-save-coding-system))) - (nnmail-find-file newest)))) + (let ((nnmail-file-coding-system + (if (file-newer-than-file-p file auto) + (if (member group '("drafts" "delayed")) + message-draft-coding-system + mm-text-coding-system) + mm-auto-save-coding-system))) + (nnmail-find-file newest))) (save-excursion (set-buffer nntp-server-buffer) - (when maybe-emacs-mule-p - (goto-char (point-min)) - (if (re-search-forward "[^\000-\177]" nil t) - ;; Consider the file has been saved as `emacs-mule'. - (mm-decode-coding-region (point-min) (point-max) - mm-auto-save-coding-system) - (mm-decode-coding-region (point-min) (point-max) - message-draft-coding-system))) (goto-char (point-min)) ;; If there's a mail header separator in this file, ;; we remove it. (when (re-search-forward - (concat "^" mail-header-separator "$") nil t) + (concat "^" (regexp-quote mail-header-separator) "$") nil t) (replace-match "" t t))) t)))) @@ -176,6 +152,12 @@ nil)))) t) +(defun nndraft-generate-headers () + (save-excursion + (message-generate-headers + (message-headers-to-generate + message-required-headers message-draft-headers nil)))) + (deffoo nndraft-request-associate-buffer (group) "Associate the current buffer with some article in the draft group." (nndraft-open-server "") @@ -192,6 +174,8 @@ (setq buffer-file-name (expand-file-name file) buffer-auto-save-file-name (make-auto-save-file-name)) (clear-visited-file-modtime) + (make-local-variable 'write-contents-hooks) + (push 'nndraft-generate-headers write-contents-hooks) article)) (deffoo nndraft-request-group (group &optional server dont-check)