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.
This commit is contained in:
parent
9a0d4f34c6
commit
45dd64808b
5 changed files with 43 additions and 12 deletions
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
* gnus.texi (Browse Foreign Server): Document
|
||||
|
|
|
@ -14208,7 +14208,11 @@ what you need.
|
|||
|
||||
@item nnimap-authenticator
|
||||
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
|
||||
If non-@code{nil}, expunge articles after deleting them. This is always done
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
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>
|
||||
|
||||
* gnus-srvr.el (gnus-browse-delete-group): Fix syntax error.
|
||||
|
|
|
@ -10127,17 +10127,20 @@ ACTION can be either `move' (the default), `crosspost' or `copy'."
|
|||
|
||||
(defun gnus-summary-push-marks-to-backend (article)
|
||||
(let ((set nil)
|
||||
(del nil)
|
||||
(marks gnus-article-mark-lists))
|
||||
(unless (memq article gnus-newsgroup-unreads)
|
||||
(push 'read set))
|
||||
(while marks
|
||||
(when (and (eq (gnus-article-mark-to-type (cdar marks)) 'list)
|
||||
(memq article (symbol-value
|
||||
(intern (format "gnus-newsgroup-%s"
|
||||
(caar marks))))))
|
||||
(push (cdar marks) set))
|
||||
(if (and (eq (gnus-article-mark-to-type (cdar marks)) 'list)
|
||||
(memq article (symbol-value
|
||||
(intern (format "gnus-newsgroup-%s"
|
||||
(caar marks))))))
|
||||
(push (cdar marks) set)
|
||||
(push (cdar marks) del))
|
||||
(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)
|
||||
"Copy the current article to some other group.
|
||||
|
|
|
@ -99,7 +99,8 @@ Uses the same syntax as `nnmail-split-methods'.")
|
|||
|
||||
(defvoo nnimap-authenticator nil
|
||||
"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
|
||||
"If non-nil, expunge articles after deleting them.
|
||||
|
@ -487,9 +488,13 @@ textual parts.")
|
|||
;; round trips than CRAM-MD5, and it's less likely to be buggy),
|
||||
;; and we're using an encrypted connection.
|
||||
((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-capability "AUTH=CRAM-MD5")
|
||||
((and (nnimap-capability "AUTH=CRAM-MD5")
|
||||
(or (null nnimap-authenticator)
|
||||
(eq nnimap-authenticator 'cram-md5)))
|
||||
(erase-buffer)
|
||||
(let ((sequence (nnimap-send-command "AUTHENTICATE CRAM-MD5"))
|
||||
(challenge (nnimap-wait-for-line "^\\+\\(.*\\)\n")))
|
||||
|
@ -502,9 +507,13 @@ textual parts.")
|
|||
(base64-decode-string challenge))))
|
||||
"\r\n"))
|
||||
(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-capability "AUTH=PLAIN")
|
||||
((and (nnimap-capability "AUTH=PLAIN")
|
||||
(or (null nnimap-authenticator)
|
||||
(eq nnimap-authenticator 'plain)))
|
||||
(nnimap-command
|
||||
"AUTHENTICATE PLAIN %s"
|
||||
(base64-encode-string
|
||||
|
|
Loading…
Add table
Reference in a new issue