Function: nnmaildir-request-article
nnmaildir-request-article is a byte-compiled function defined in
nnmaildir.el.gz.
Signature
(nnmaildir-request-article NUM-MSGID &optional GNAME SERVER TO-BUFFER)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnmaildir.el.gz
(defun nnmaildir-request-article (num-msgid &optional gname server to-buffer)
(let ((group (nnmaildir--prepare server gname))
(case-fold-search t)
list article dir pgname deactivate-mark)
(catch 'return
(unless group
(setf (nnmaildir--srv-error nnmaildir--cur-server)
(if gname (concat "No such group: " gname) "No current group"))
(throw 'return nil))
(if (numberp num-msgid)
(setq article (nnmaildir--nlist-art group num-msgid))
(setq list (nnmaildir--grp-mlist group)
article (nnmaildir--mlist-art list num-msgid))
(if article (setq num-msgid (nnmaildir--art-num article))
(catch 'found
(maphash
(lambda (_gname group)
(setq list (nnmaildir--grp-mlist group)
article (nnmaildir--mlist-art list num-msgid))
(when article
(setq num-msgid (nnmaildir--art-num article))
(throw 'found nil)))
(nnmaildir--srv-groups nnmaildir--cur-server))))
(unless article
(setf (nnmaildir--srv-error nnmaildir--cur-server) "No such article")
(throw 'return nil)))
(setq gname (nnmaildir--grp-name group)
pgname (nnmaildir--pgname nnmaildir--cur-server gname)
dir (nnmaildir--srv-dir nnmaildir--cur-server)
dir (nnmaildir--srvgrp-dir dir gname)
dir (if (nnmaildir--param pgname 'read-only)
(nnmaildir--new dir) (nnmaildir--cur dir))
nnmaildir-article-file-name
(concat dir
(nnmaildir--art-prefix article)
(nnmaildir--art-suffix article)))
(unless (file-exists-p nnmaildir-article-file-name)
(nnmaildir--expired-article group article)
(setf (nnmaildir--srv-error nnmaildir--cur-server)
"Article has expired")
(throw 'return nil))
(with-current-buffer (or to-buffer nntp-server-buffer)
(erase-buffer)
(let ((coding-system-for-read mm-text-coding-system))
(mm-insert-file-contents nnmaildir-article-file-name)))
(cons gname num-msgid))))