X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fnnimap.el;h=9f027fb18f6197a8322fc6b4aae89984cdf55b1f;hb=ce0886adb9f65f6d2fd0361cd57f97daaec6a914;hp=f8c4a665202f0742cf78ea72a8daa06b233fe66e;hpb=c93c34f7a4a82916aa1e8bd6f9e94dea23d14e6a;p=elisp%2Fgnus.git- diff --git a/lisp/nnimap.el b/lisp/nnimap.el index f8c4a66..9f027fb 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -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