*** empty log message ***
[gnus] / lisp / nnbabyl.el
index bb73390..44eb8a2 100644 (file)
 (defvar nnbabyl-current-server nil)
 (defvar nnbabyl-server-alist nil)
 (defvar nnbabyl-server-variables 
-  (list
-   (list 'nnbabyl-mbox-file nnbabyl-mbox-file)
-   (list 'nnbabyl-active-file nnbabyl-active-file)
-   (list 'nnbabyl-get-new-mail nnbabyl-get-new-mail)
-   '(nnbabyl-current-group nil)
-   '(nnbabyl-status-string "")
-   '(nnbabyl-previous-buffer-mode nil)
-   '(nnbabyl-group-alist nil)))
+  `((nnbabyl-mbox-file ,nnbabyl-mbox-file)
+    (nnbabyl-active-file ,nnbabyl-active-file)
+    (nnbabyl-get-new-mail ,nnbabyl-get-new-mail)
+    (nnbabyl-current-group nil)
+    (nnbabyl-status-string "")
+    (nnbabyl-previous-buffer-mode nil)
+    (nnbabyl-group-alist nil)))
 
 \f
 
       'headers)))
 
 (defun nnbabyl-open-server (server &optional defs)
-  (nnheader-init-server-buffer)
-  (if (equal server nnbabyl-current-server)
-      t
-    (if nnbabyl-current-server
-       (setq nnbabyl-server-alist 
-             (cons (list nnbabyl-current-server
-                         (nnheader-save-variables nnbabyl-server-variables))
-                   nnbabyl-server-alist)))
-    (let ((state (assoc server nnbabyl-server-alist)))
-      (if state 
-         (progn
-           (nnheader-restore-variables (nth 1 state))
-           (setq nnbabyl-server-alist (delq state nnbabyl-server-alist)))
-       (nnheader-set-init-variables nnbabyl-server-variables defs)))
-    (setq nnbabyl-current-server server)))
+  (nnheader-change-server 'nnbabyl server defs)
+  (cond 
+   ((not (file-exists-p nnbabyl-mbox-file))
+    (nnbabyl-close-server)
+    (nnheader-report 'nnbabyl "No such file: %s" nnbabyl-mbox-file))
+   ((file-directory-p nnbabyl-mbox-file)
+    (nnbabyl-close-server)
+    (nnheader-report 'nnbabyl "Not a regular file: %s" nnbabyl-mbox-file))
+   (t
+    (nnheader-report 'nnbabyl "Opened server %s using mbox %s" server
+                    nnbabyl-mbox-file)
+    t)))
 
 (defun nnbabyl-close-server (&optional server)
   ;; Restore buffer mode.