;;; Code:
-(eval-and-compile
- (require 'imap))
+(eval-when-compile (require 'cl))
+(eval-and-compile (require 'imap))
(require 'nnoo)
(require 'nnmail)
;; Internal variables:
-(defvar nnimap-debug "*nnimap-debug*")
+(defvar nnimap-debug nil) ;; "*nnimap-debug*")
(defvar nnimap-current-move-server nil)
(defvar nnimap-current-move-group nil)
(defvar nnimap-current-move-article nil)
(cadr (assq 'nnimap-server-address defs))) defs)
(push (list 'nnimap-address server) defs)))
(nnoo-change-server 'nnimap server defs)
- (if (null nnimap-server-buffer)
- (error "this shouldn't happen"))
- (or (imap-opened nnimap-server-buffer)
+ (or (and nnimap-server-buffer
+ (imap-opened nnimap-server-buffer))
(nnimap-open-connection server))))
(deffoo nnimap-server-opened (&optional server)
(erase-buffer)
(dolist (pattern (nnimap-pattern-to-list-arguments
nnimap-list-pattern))
- (dolist (mbx (imap-mailbox-lsub "*" (car pattern) nil
+ (dolist (mbx (imap-mailbox-lsub "*" (car pattern) nil
nnimap-server-buffer))
- (or (member-if (lambda (mailbox)
- (string= (downcase mailbox) "\\noselect"))
- (imap-mailbox-get 'list-flags mbx
- nnimap-server-buffer))
+ (or (let ((mailboxes (imap-mailbox-get 'list-flags mbx
+ nnimap-server-buffer)))
+ (while (and mailboxes
+ (not (string-equal (downcase (car mailboxes))
+ "\\noselect")))
+ (pop mailboxes))
+ mailboxes)
;; Escape SPC in mailboxes xxx relies on gnus internals
(let ((info (nnimap-find-minmax-uid mbx 'examine)))
(when info