(require 'nnheader)
(require 'nnmh)
+(require 'nnoo)
(eval-and-compile (require 'cl))
+(nnoo-declare nndraft)
+
(eval-and-compile
(autoload 'mail-send-and-exit "sendmail"))
-(defvar nndraft-directory nil
+(defvoo nndraft-directory nil
"Where nndraft will store its directory.")
\f
(defconst nndraft-version "nndraft 1.0")
-(defvar nndraft-status-string "")
-
-\f
-
-(defvar nndraft-current-server nil)
-(defvar nndraft-server-alist nil)
-(defvar nndraft-server-variables
- `((nndraft-directory nil)
- (nndraft-status-string "")
- (nndraft-group-alist)))
+(defvoo nndraft-status-string "")
\f
;;; Interface functions.
+(nnoo-define-basics nndraft)
-(defun nndraft-retrieve-headers (articles &optional group server fetch-old)
+(deffoo nndraft-retrieve-headers (articles &optional group server fetch-old)
(save-excursion
(set-buffer nntp-server-buffer)
(erase-buffer)
(nnheader-fold-continuation-lines)
'headers))))
-(defun nndraft-open-server (server &optional defs)
- (nnheader-change-server 'nndraft server defs)
+(deffoo nndraft-open-server (server &optional defs)
+ (nnoo-change-server 'nndraft server defs)
(unless (assq 'nndraft-directory defs)
(setq nndraft-directory server))
(cond
server nndraft-directory)
t)))
-(defun nndraft-close-server (&optional server)
- (setq nndraft-current-server nil)
- t)
-
-(defun nndraft-server-opened (&optional server)
- (and nntp-server-buffer
- (get-buffer nntp-server-buffer)
- nndraft-current-server
- (equal nndraft-current-server server)))
-
-(defun nndraft-status-message (&optional server)
- nndraft-status-string)
-
-(defun nndraft-request-article (id &optional group server buffer)
+(deffoo nndraft-request-article (id &optional group server buffer)
(when (numberp id)
;; We get the newest file of the auto-saved file and the
;; "real" file.
(replace-match "" t t)))
t))))
-(defun nndraft-request-restore-buffer (article &optional group server)
+(deffoo nndraft-request-restore-buffer (article &optional group server)
"Request a new buffer that is restored to the state of ARTICLE."
(let ((file (nndraft-article-filename article ".state"))
nndraft-point nndraft-mode nndraft-buffer-name)
(goto-char nndraft-point))
nndraft-buffer-name)))
-(defun nndraft-request-update-info (group info &optional server)
+(deffoo nndraft-request-update-info (group info &optional server)
(setcar (cddr info) nil)
(when (nth 3 info)
(setcar (nthcdr 3 info) nil))
t)
-(defun nndraft-request-associate-buffer (group)
+(deffoo nndraft-request-associate-buffer (group)
"Associate the current buffer with some article in the draft group."
(let* ((gnus-verbose-backends nil)
- (article (cdr (nndraft-request-accept-article group t 'noinsert)))
+ (article (cdr (nndraft-request-accept-article
+ group (nnoo-current-server 'nndraft) t 'noinsert)))
(file (nndraft-article-filename article)))
(setq buffer-file-name file)
(setq buffer-auto-save-file-name (make-auto-save-file-name))
(clear-visited-file-modtime)
article))
-(defun nndraft-request-group (group &optional server dont-check)
+(deffoo nndraft-request-group (group &optional server dont-check)
(prog1
(nndraft-execute-nnmh-command
`(nnmh-request-group group "" ,dont-check))
(nnheader-report 'nndraft nnmh-status-string)))
-(defun nndraft-request-list (&optional server dir)
+(deffoo nndraft-request-list (&optional server dir)
(nndraft-execute-nnmh-command
`(nnmh-request-list nil ,dir)))
-(defun nndraft-request-newgroups (date &optional server)
+(deffoo nndraft-request-newgroups (date &optional server)
(nndraft-execute-nnmh-command
`(nnmh-request-newgroups ,date ,server)))
-(defun nndraft-request-expire-articles
+(deffoo nndraft-request-expire-articles
(articles group &optional server force)
(let ((res (nndraft-execute-nnmh-command
`(nnmh-request-expire-articles
(funcall nnmail-delete-file-function auto)))))
res))
-(defun nndraft-request-accept-article (group &optional last noinsert)
+(deffoo nndraft-request-accept-article (group &optional server last noinsert)
(let* ((point (point))
(mode major-mode)
(name (buffer-name))
(gnus-verbose-backends nil)
(gart (nndraft-execute-nnmh-command
- `(nnmh-request-accept-article group ,last noinsert)))
+ `(nnmh-request-accept-article group ,server ,last noinsert)))
(state
(nndraft-article-filename (cdr gart) ".state")))
;; Write the "state" file.
(kill-buffer (current-buffer)))
gart))
-(defun nndraft-close-group (group &optional server)
+(deffoo nndraft-close-group (group &optional server)
t)
-(defun nndraft-request-create-group (group &optional server)
+(deffoo nndraft-request-create-group (group &optional server args)
(if (file-exists-p nndraft-directory)
(if (file-directory-p nndraft-directory)
t
nil)
(condition-case ()
(progn
- (make-directory nndraft-directory t)
+ (gnus-make-directory nndraft-directory)
t)
(file-error nil))))