2004-10-25 Teodor Zlatanov <tzz@lifelogs.com>
+ * nnimap.el (nnimap-remove-server-from-buffer-alist): new function
+ to remove a server from the nnimap-server-buffer-alist
+ (nnimap-open-connection, nnimap-close-server): use it
+
* gnus-encrypt.el: removed in favor of encrypt.el
2004-10-21 Katsumi Yamaoka <yamaoka@jpl.org>
"Return buffer for SERVER, if nil use current server."
(cadr (assoc (or server nnimap-current-server) nnimap-server-buffer-alist)))
+(defun nnimap-remove-server-from-buffer-alist (server list)
+ "Remove SERVER from LIST."
+ (let (l)
+ (dolist (e list)
+ (unless (equal server (car-safe e))
+ (push e l)))
+ l))
+
(defun nnimap-possibly-change-server (server)
"Return buffer for SERVER, changing the current server as a side-effect.
If SERVER is nil, uses the current server."
(list "imap" "imaps"))))
(if (imap-authenticate user passwd nnimap-server-buffer)
(prog1
+ (setq nnimap-server-buffer-alist
+ (nnimap-remove-server-from-buffer-alist
+ server
+ nnimap-server-buffer-alist))
(push (list server nnimap-server-buffer)
nnimap-server-buffer-alist)
(imap-id nnimap-id nnimap-server-buffer)
(setq nnimap-server-buffer nil
nnimap-current-server nil
nnimap-server-buffer-alist
- (delq server nnimap-server-buffer-alist)))
+ (nnimap-remove-server-from-buffer-alist
+ server
+ nnimap-server-buffer-alist)))
(nnoo-close-server 'nnimap server)))
(deffoo nnimap-request-close ()