(dgnushack-install-package): Preserve any file in $(PACKAGEDIR)/lisp/t-gnus
[elisp/gnus.git-] / lisp / nnimap.el
index f8c4a66..9f027fb 100644 (file)
@@ -59,8 +59,8 @@
 
 ;;; Code:
 
-(eval-and-compile
-  (require 'imap))
+(eval-when-compile (require 'cl))
+(eval-and-compile (require 'imap))
 
 (require 'nnoo)
 (require 'nnmail)
@@ -255,7 +255,7 @@ restrict visible folders.")
 
 ;; 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)
@@ -558,9 +558,8 @@ If EXAMINE is non-nil the group is selected read-only."
                      (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)
@@ -938,12 +937,15 @@ function is generally only called when Gnus is shutting down."
       (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