Changes committed gnus/lisp (ChangeLog imap.el)
"Ted Zlatanov" <[email protected]> Thu, 10 Sep 2009 13:19:57 +0200
| Newsgroups | gmane.emacs.gnus.commits |
|---|---|
| Message-ID | <[email protected]> |
Modified: ChangeLog imap.el (imap-interactive-login): Better messages. (imap-open): Fix bug with renamed buffer on reconnect. (imap-authenticate): Add buffer-local imap-last-authenticator variable for easier debugging and cleaner code. On successful (guessed based on server capabilities) secondary authentication, set imap-state correctly. Index: ChangeLog diff -u gnus/lisp/ChangeLog:7.2014 gnus/lisp/ChangeLog:7.2015 --- ChangeLog:7.2014 Thu Sep 10 02:12:47 2009 +++ ChangeLog Thu Sep 10 13:19:57 2009 @@ -1,3 +1,12 @@ +2009-09-10 Teodor Zlatanov <[email protected]> + + * imap.el (imap-interactive-login): Better messages. + (imap-open): Fix bug with renamed buffer on reconnect. + (imap-authenticate): Add buffer-local imap-last-authenticator variable + for easier debugging and cleaner code. On successful (guessed based on + server capabilities) secondary authentication, set imap-state + correctly. + 2009-09-10 Katsumi Yamaoka <[email protected]> * nnrss.el (nnrss-request-article): Remove binding of Index: imap.el diff -u gnus/lisp/imap.el:7.56 gnus/lisp/imap.el:7.57 --- imap.el:7.56 Wed Sep 9 11:31:35 2009 +++ imap.el Thu Sep 10 13:19:57 2009 @@ -872,25 +872,26 @@ (while (or (not user) (not passwd)) (setq user (or imap-username (read-from-minibuffer - (concat "IMAP username for " imap-server + (concat "imap: username for " imap-server " (using stream `" (symbol-name imap-stream) "'): ") (or user imap-default-user)))) (setq passwd (or imap-password (read-passwd - (concat "IMAP password for " user "@" + (concat "imap: password for " user "@" imap-server " (using authenticator `" (symbol-name imap-auth) "'): ")))) (when (and user passwd) (if (funcall loginfunc user passwd) (progn + (message "imap: Login successful...") (setq ret t imap-username user) (when (and (not imap-password) (or imap-store-password - (y-or-n-p "Store password for this session? "))) + (y-or-n-p "imap: Store password for this IMAP session? "))) (setq imap-password passwd))) - (message "Login failed...") + (message "imap: Login failed...") (setq passwd nil) (setq imap-password nil) (sit-for 1)))) @@ -1160,7 +1161,10 @@ buffer (buffer-name buffer)))) (kill-buffer buffer) - (rename-buffer name)) + (rename-buffer name) + ;; set the passed buffer to the current one, + ;; so that (imap-opened buffer) later will work + (setq buffer (current-buffer))) (message "imap: Reconnecting with stream `%s'...done" stream) (setq imap-stream stream) @@ -1173,6 +1177,7 @@ (setq streams nil)))))) (when (imap-opened buffer) (setq imap-mailbox-data (make-vector imap-mailbox-prime 0))) + ;; (debug "opened+state+auth+buffer" (imap-opened buffer) imap-state imap-auth buffer) (when imap-stream buffer)))) @@ -1217,25 +1222,32 @@ (eq imap-state 'examine)) (make-local-variable 'imap-username) (make-local-variable 'imap-password) - (if user (setq imap-username user)) - (if passwd (setq imap-password passwd)) + (make-local-variable 'imap-last-authenticator) + (when user (setq imap-username user)) + (when passwd (setq imap-password passwd)) (if imap-auth - (and (funcall (nth 2 (assq imap-auth - imap-authenticator-alist)) (current-buffer)) + (and (setq imap-last-authenticator + (assq imap-auth imap-authenticator-alist)) + (funcall (nth 2 imap-last-authenticator) (current-buffer)) (setq imap-state 'auth)) ;; Choose authenticator. (let ((auths imap-authenticators) auth) (while (setq auth (pop auths)) ;; OK to use authenticator? - (when (funcall (nth 1 (assq auth imap-authenticator-alist)) (current-buffer)) + (setq imap-last-authenticator + (assq auth imap-authenticator-alist)) + (when (funcall (nth 1 imap-last-authenticator) (current-buffer)) (message "imap: Authenticating to `%s' using `%s'..." imap-server auth) (setq imap-auth auth) - (if (funcall (nth 2 (assq auth imap-authenticator-alist)) (current-buffer)) + (if (funcall (nth 2 imap-last-authenticator) (current-buffer)) (progn (message "imap: Authenticating to `%s' using `%s'...done" imap-server auth) + ;; set imap-state correctly on successful auth attempt + (setq imap-state 'auth) + ;; stop iterating through the authenticator list (setq auths nil)) (message "imap: Authenticating to `%s' using `%s'...failed" imap-server auth)))))