;; "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 using `emacs-mule'.
- (mm-decode-coding-region (point-min) (point-max)
- 'emacs-mule)
- (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))))
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 "")
(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)
dir file)
(nnheader-re-read-dir pathname)
(setq dir (mapcar (lambda (name) (string-to-int (substring name 1)))
- (directory-files pathname nil "^#[0-9]+#$" t)))
+ (ignore-errors (directory-files
+ pathname nil "^#[0-9]+#$" t))))
(dolist (n dir)
(unless (file-exists-p
(setq file (expand-file-name (int-to-string n) pathname)))