Commit 45dd6480 authored by Lars Ingebrigtsen's avatar Lars Ingebrigtsen Committed by Katsumi Yamaoka
Browse files

Merge changes made in Gnus master

nnimap.el (nnimap-authenticator): Expand to allow specifying the
  login methods.
  (nnimap-login): Respect the `nnimap-authenticator' variable.
gnus-sum.el (gnus-summary-push-marks-to-backend): Push the complete
  mark state when moving articles.  Otherwise unticked articles will get
  their ticks back after moving.
gnus.texi (Customizing the IMAP Connection): Mention the other
  authenticators.
parent 9a0d4f34
2012-12-25 Lars Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Customizing the IMAP Connection): Mention the other
authenticators.
2012-12-24 Lars Ingebrigtsen <larsi@gnus.org> 2012-12-24 Lars Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Browse Foreign Server): Document * gnus.texi (Browse Foreign Server): Document
......
...@@ -14208,7 +14208,11 @@ what you need. ...@@ -14208,7 +14208,11 @@ what you need.
   
@item nnimap-authenticator @item nnimap-authenticator
Some @acronym{IMAP} servers allow anonymous logins. In that case, Some @acronym{IMAP} servers allow anonymous logins. In that case,
this should be set to @code{anonymous}. this should be set to @code{anonymous}. If this variable isn't set,
the normal login methods will be used. If you wish to specify a
specific login method to be used, you can set this variable to either
@code{login} (the traditional @acronym{IMAP} login method),
@code{plain} or @code{cram-md5}.
   
@item nnimap-expunge @item nnimap-expunge
If non-@code{nil}, expunge articles after deleting them. This is always done If non-@code{nil}, expunge articles after deleting them. This is always done
2012-12-25 Lars Ingebrigtsen <larsi@gnus.org>
* nnimap.el (nnimap-authenticator): Expand to allow specifying the
login methods.
(nnimap-login): Respect the `nnimap-authenticator' variable.
* gnus-sum.el (gnus-summary-push-marks-to-backend): Push the complete
mark state when moving articles. Otherwise unticked articles will get
their ticks back after moving.
2012-12-24 Lars Ingebrigtsen <larsi@gnus.org> 2012-12-24 Lars Ingebrigtsen <larsi@gnus.org>
   
* gnus-srvr.el (gnus-browse-delete-group): Fix syntax error. * gnus-srvr.el (gnus-browse-delete-group): Fix syntax error.
......
...@@ -10127,17 +10127,20 @@ ACTION can be either `move' (the default), `crosspost' or `copy'." ...@@ -10127,17 +10127,20 @@ ACTION can be either `move' (the default), `crosspost' or `copy'."
(defun gnus-summary-push-marks-to-backend (article) (defun gnus-summary-push-marks-to-backend (article)
(let ((set nil) (let ((set nil)
(del nil)
(marks gnus-article-mark-lists)) (marks gnus-article-mark-lists))
(unless (memq article gnus-newsgroup-unreads) (unless (memq article gnus-newsgroup-unreads)
(push 'read set)) (push 'read set))
(while marks (while marks
(when (and (eq (gnus-article-mark-to-type (cdar marks)) 'list) (if (and (eq (gnus-article-mark-to-type (cdar marks)) 'list)
(memq article (symbol-value (memq article (symbol-value
(intern (format "gnus-newsgroup-%s" (intern (format "gnus-newsgroup-%s"
(caar marks)))))) (caar marks))))))
(push (cdar marks) set)) (push (cdar marks) set)
(push (cdar marks) del))
(pop marks)) (pop marks))
(gnus-request-set-mark gnus-newsgroup-name `(((,article) set ,set))))) (gnus-request-set-mark gnus-newsgroup-name `(((,article) set ,set)
((,article) del ,del)))))
(defun gnus-summary-copy-article (&optional n to-newsgroup select-method) (defun gnus-summary-copy-article (&optional n to-newsgroup select-method)
"Copy the current article to some other group. "Copy the current article to some other group.
......
...@@ -99,7 +99,8 @@ Uses the same syntax as `nnmail-split-methods'.") ...@@ -99,7 +99,8 @@ Uses the same syntax as `nnmail-split-methods'.")
(defvoo nnimap-authenticator nil (defvoo nnimap-authenticator nil
"How nnimap authenticate itself to the server. "How nnimap authenticate itself to the server.
Possible choices are nil (use default methods) or `anonymous'.") Possible choices are nil (use default methods), `anonymous',
`login', `plain' and `cram-md5'.")
(defvoo nnimap-expunge t (defvoo nnimap-expunge t
"If non-nil, expunge articles after deleting them. "If non-nil, expunge articles after deleting them.
...@@ -487,9 +488,13 @@ textual parts.") ...@@ -487,9 +488,13 @@ textual parts.")
;; round trips than CRAM-MD5, and it's less likely to be buggy), ;; round trips than CRAM-MD5, and it's less likely to be buggy),
;; and we're using an encrypted connection. ;; and we're using an encrypted connection.
((and (not (nnimap-capability "LOGINDISABLED")) ((and (not (nnimap-capability "LOGINDISABLED"))
(eq (nnimap-stream-type nnimap-object) 'tls)) (eq (nnimap-stream-type nnimap-object) 'tls)
(or (null nnimap-authenticator)
(eq nnimap-authenticator 'login)))
(nnimap-command "LOGIN %S %S" user password)) (nnimap-command "LOGIN %S %S" user password))
((nnimap-capability "AUTH=CRAM-MD5") ((and (nnimap-capability "AUTH=CRAM-MD5")
(or (null nnimap-authenticator)
(eq nnimap-authenticator 'cram-md5)))
(erase-buffer) (erase-buffer)
(let ((sequence (nnimap-send-command "AUTHENTICATE CRAM-MD5")) (let ((sequence (nnimap-send-command "AUTHENTICATE CRAM-MD5"))
(challenge (nnimap-wait-for-line "^\\+\\(.*\\)\n"))) (challenge (nnimap-wait-for-line "^\\+\\(.*\\)\n")))
...@@ -502,9 +507,13 @@ textual parts.") ...@@ -502,9 +507,13 @@ textual parts.")
(base64-decode-string challenge)))) (base64-decode-string challenge))))
"\r\n")) "\r\n"))
(nnimap-wait-for-response sequence))) (nnimap-wait-for-response sequence)))
((not (nnimap-capability "LOGINDISABLED")) ((and (not (nnimap-capability "LOGINDISABLED"))
(or (null nnimap-authenticator)
(eq nnimap-authenticator 'login)))
(nnimap-command "LOGIN %S %S" user password)) (nnimap-command "LOGIN %S %S" user password))
((nnimap-capability "AUTH=PLAIN") ((and (nnimap-capability "AUTH=PLAIN")
(or (null nnimap-authenticator)
(eq nnimap-authenticator 'plain)))
(nnimap-command (nnimap-command
"AUTHENTICATE PLAIN %s" "AUTHENTICATE PLAIN %s"
(base64-encode-string (base64-encode-string
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment