Mercurial > emacs
changeset 101804:d775b84fdd71
Merge from gnus--devo--0
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1537
author | Miles Bader <miles@gnu.org> |
---|---|
date | Thu, 05 Feb 2009 02:34:34 +0000 |
parents | 775ac8caba3d |
children | b416b80570f8 |
files | doc/misc/ChangeLog doc/misc/gnus-news.texi etc/GNUS-NEWS lisp/ChangeLog lisp/gnus/ChangeLog lisp/gnus/auth-source.el lisp/gnus/mail-source.el lisp/gnus/nnimap.el lisp/gnus/nntp.el lisp/net/imap.el lisp/net/netrc.el |
diffstat | 11 files changed, 121 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/misc/ChangeLog Wed Feb 04 23:05:26 2009 +0000 +++ b/doc/misc/ChangeLog Thu Feb 05 02:34:34 2009 +0000 @@ -1,3 +1,7 @@ +2009-02-04 Reiner Steib <Reiner.Steib@gmx.de> + + * gnus-news.texi: Print version about Incoming*. + 2009-02-02 Carsten Dominik <dominik@science.uva.nl> * org.texi (Structure editing, Handling links)
--- a/doc/misc/gnus-news.texi Wed Feb 04 23:05:26 2009 +0000 +++ b/doc/misc/gnus-news.texi Thu Feb 05 02:34:34 2009 +0000 @@ -91,7 +91,7 @@ Old intermediate incoming mail files (@file{Incoming*}) are deleted after a couple of days, not immediately. @xref{Mail Source Customization}. -@c New in Gnus 5.10.10 / No Gnus 0.8 +(New in Gnus 5.10.10 / No Gnus 0.8) @c This entry is also present in the node "Oort Gnus". @end itemize
--- a/etc/GNUS-NEWS Wed Feb 04 23:05:26 2009 +0000 +++ b/etc/GNUS-NEWS Thu Feb 05 02:34:34 2009 +0000 @@ -83,7 +83,7 @@ ** International host names (IDNA) can now be decoded inside article bodies using `W i' (`gnus-summary-idna-message'). This requires that GNU Libidn -(<http://www.gnu.org/software/libidn/>) has been installed. +(`http://www.gnu.org/software/libidn/') has been installed. ** The non-ASCII group names handling has been much improved. The back ends that fully support non-ASCII group names are now `nntp', `nnml', @@ -131,7 +131,7 @@ ** You can replace MIME parts with external bodies. See `gnus-mime-replace-part' and `gnus-article-replace-part'. *Note MIME -Commands::, *Note Using MIME::. +Commands::, *note Using MIME::. ** The option `mm-fill-flowed' can be used to disable treatment of format=flowed messages. Also, flowed text is disabled when sending
--- a/lisp/ChangeLog Wed Feb 04 23:05:26 2009 +0000 +++ b/lisp/ChangeLog Thu Feb 05 02:34:34 2009 +0000 @@ -1,3 +1,13 @@ +2009-02-04 Dave Love <fx@gnu.org> + + * net/imap.el (imap-fetch-safe): Bind debug-on-error. + (imap-debug): Add imap-fetch-safe. + +2009-02-04 Teodor Zlatanov <tzlatanov@jumptrading.com> + + * net/netrc.el (netrc-machine-user-or-password): Use list of + auth-source modes. + 2009-02-04 Nick Roberts <nickrob@snap.net.nz> * vc-svn.el (vc-svn-diff): Revert previous change but add a test
--- a/lisp/gnus/ChangeLog Wed Feb 04 23:05:26 2009 +0000 +++ b/lisp/gnus/ChangeLog Thu Feb 05 02:34:34 2009 +0000 @@ -3,6 +3,25 @@ * gnus-sum.el (gnus-summary-next-article): XEmacs-friendly version of 2009-01-09 change. +2009-01-26 Teodor Zlatanov <tzlatanov@jumptrading.com> + + * auth-source.el (auth-source-forget-user-or-password): Clarify docs. + (auth-source-forget-all-cached): New convenience function. + (auth-source-user-or-password): Accept list of modes or a single mode. + + * mail-source.el (mail-source-bind, mail-source-set-1): Use list of + auth-source modes. + + * nnimap.el (nnimap-open-connection): Use list of + auth-source modes. + + * nntp.el (nntp-send-authinfo): Use list of + auth-source modes. + +2009-01-26 Teodor Zlatanov <tzz@lifelogs.com> + + * nntp.el (nntp-send-authinfo): + 2009-01-16 Teodor Zlatanov <tzz@lifelogs.com> * auth-source.el: Update docs to reflect epa-file-enable is to be used
--- a/lisp/gnus/auth-source.el Wed Feb 04 23:05:26 2009 +0000 +++ b/lisp/gnus/auth-source.el Thu Feb 05 02:34:34 2009 +0000 @@ -163,12 +163,20 @@ (interactive "slogin/password: \nsHost: \nsProtocol: \n") ;for testing (remhash (format "%s %s:%s" mode host protocol) auth-source-cache)) +(defun auth-source-forget-all-cached () + "Forget all cached auth-source authentication tokens." + (interactive) + (setq auth-source-cache (make-hash-table :test 'equal))) + (defun auth-source-user-or-password (mode host protocol) - "Find user or password (from the string MODE) matching HOST and PROTOCOL." + "Find MODE (string or list of strings) matching HOST and PROTOCOL. +MODE can be \"login\" or \"password\" for example." (gnus-message 9 "auth-source-user-or-password: get %s for %s (%s)" mode host protocol) - (let* ((cname (format "%s %s:%s" mode host protocol)) + (let* ((listy (listp mode)) + (mode (if listy mode (list mode))) + (cname (format "%s %s:%s" mode host protocol)) (found (gethash cname auth-source-cache))) (if found (progn @@ -176,7 +184,7 @@ "auth-source-user-or-password: cached %s=%s for %s (%s)" mode ;; don't show the password - (if (equal mode "password") "SECRET" found) + (if (member "password" mode) "SECRET" found) host protocol) found) (dolist (choice (auth-source-pick host protocol)) @@ -191,8 +199,9 @@ "auth-source-user-or-password: found %s=%s for %s (%s)" mode ;; don't show the password - (if (equal mode "password") "SECRET" found) + (if (member "password" mode) "SECRET" found) host protocol) + (setq found (if listy found (car-safe found))) (when auth-source-do-cache (puthash cname found auth-source-cache))) (return found)))))
--- a/lisp/gnus/mail-source.el Wed Feb 04 23:05:26 2009 +0000 +++ b/lisp/gnus/mail-source.el Thu Feb 05 02:34:34 2009 +0000 @@ -453,10 +453,11 @@ (put 'mail-source-bind 'lisp-indent-function 1) (put 'mail-source-bind 'edebug-form-spec '(sexp body)) +;; TODO: use the list format for auth-source-user-or-password modes (defun mail-source-set-1 (source) (let* ((type (pop source)) (defaults (cdr (assq type mail-source-keyword-map))) - default value keyword user-auth pass-auth) + default value keyword auth-info user-auth pass-auth) (while (setq default (pop defaults)) ;; for each default :SYMBOL, set SYMBOL to the plist value for :SYMBOL ;; using `mail-source-value' to evaluate the plist value @@ -469,20 +470,21 @@ ((and (eq keyword :user) (setq user-auth - (auth-source-user-or-password - "login" - ;; this is "host" in auth-sources - (if (boundp 'server) (symbol-value 'server) "") - type))) + (nth 0 (auth-source-user-or-password + '("login" "password") + ;; this is "host" in auth-sources + (if (boundp 'server) (symbol-value 'server) "") + type)))) user-auth) ((and - (eq keyword :password) - (setq pass-auth - (auth-source-user-or-password - "password" - ;; this is "host" in auth-sources - (if (boundp 'server) (symbol-value 'server) "") - type))) + (eq keyword :password) + (setq pass-auth + (nth 1 + (auth-source-user-or-password + '("login" "password") + ;; this is "host" in auth-sources + (if (boundp 'server) (symbol-value 'server) "") + type)))) pass-auth) (t (if (setq value (plist-get source keyword)) (mail-source-value value)
--- a/lisp/gnus/nnimap.el Wed Feb 04 23:05:26 2009 +0000 +++ b/lisp/gnus/nnimap.el Thu Feb 05 02:34:34 2009 +0000 @@ -805,8 +805,12 @@ (port (if nnimap-server-port (int-to-string nnimap-server-port) "imap")) + (auth-info + (auth-source-user-or-password '("login" "password") server port)) + (auth-user (nth 0 auth-info)) + (auth-passwd (nth 1 auth-info)) (user (or - (auth-source-user-or-password "login" server port) ; this is preferred to netrc-* + auth-user ; this is preferred to netrc-* (netrc-machine-user-or-password "login" list @@ -816,7 +820,7 @@ (list port) (list "imap" "imaps" "143" "993")))) (passwd (or - (auth-source-user-or-password "password" server port) ; this is preferred to netrc-* + auth-passwd ; this is preferred to netrc-* (netrc-machine-user-or-password "password" list
--- a/lisp/gnus/nntp.el Wed Feb 04 23:05:26 2009 +0000 +++ b/lisp/gnus/nntp.el Thu Feb 05 02:34:34 2009 +0000 @@ -1179,14 +1179,18 @@ (let* ((list (netrc-parse nntp-authinfo-file)) (alist (netrc-machine list nntp-address "nntp")) (force (or (netrc-get alist "force") nntp-authinfo-force)) + (auth-info + (auth-source-user-or-password '("login" "password") nntp-address "nntp")) + (auth-user (nth 0 auth-info)) + (auth-passwd (nth 1 auth-info)) (user (or ;; this is preferred to netrc-* - (auth-source-user-or-password "login" nntp-address "nntp") + auth-user (netrc-get alist "login") nntp-authinfo-user)) (passwd (or ;; this is preferred to netrc-* - (auth-source-user-or-password "password" nntp-address "nntp") + auth-passwd (netrc-get alist "password")))) (when (or (not send-if-force) force)
--- a/lisp/net/imap.el Wed Feb 04 23:05:26 2009 +0000 +++ b/lisp/net/imap.el Thu Feb 05 02:34:34 2009 +0000 @@ -1798,25 +1798,38 @@ of the UIDS specification, and the cdr is the one which works with Exchange 2007 or, potentially, other buggy servers. See `imap-enable-exchange-bug-workaround'." - ;; We don't unconditionally use the alternative (valid) form, since - ;; this is said to be significantly inefficient. The first time we - ;; get here for a given, we'll try the canonical form. If we get - ;; the known error from the buggy server, set the flag - ;; buffer-locally (to account for connections to multiple servers), - ;; then re-try with the alternative UIDS spec. + ;; The first time we get here for a given, we'll try the canonical + ;; form. If we get the known error from the buggy server, set the + ;; flag buffer-locally (to account for connections to multiple + ;; servers), then re-try with the alternative UIDS spec. We don't + ;; unconditionally use the alternative form, since the + ;; currently-used alternatives are seriously inefficient with some + ;; servers (although they are valid). + ;; + ;; FIXME: Maybe it would be cleaner to have a flag to not signal + ;; the error (which otherwise gives a message), and test + ;; `imap-failed-tags'. Also, Other IMAP clients use other forms of + ;; request which work with Exchange, e.g. Claws does "UID FETCH 1:* + ;; (UID)" rather than "FETCH UID 1,*". Is there a good reason not + ;; to do the same? (condition-case data - (imap-fetch (if imap-enable-exchange-bug-workaround - (cdr uids) - (car uids)) - props receive nouidfetch buffer) + ;; Binding `debug-on-error' allows us to get the error from + ;; `imap-parse-response' -- it's normally caught by Emacs around + ;; execution of a process filter. + (let ((debug-on-error t)) + (imap-fetch (if imap-enable-exchange-bug-workaround + (cdr uids) + (car uids)) + props receive nouidfetch buffer)) (error (if (and (not imap-enable-exchange-bug-workaround) - (string-match - "The specified message set is invalid" - (cadr data))) + ;; This is the Exchange 2007 response. It may be more + ;; robust just to check for a BAD response to the + ;; attempted fetch. + (string-match "The specified message set is invalid" + (cadr data))) (with-current-buffer (or buffer (current-buffer)) - (set (make-local-variable - 'imap-enable-exchange-bug-workaround) + (set (make-local-variable 'imap-enable-exchange-bug-workaround) t) (imap-fetch (cdr uids) props receive nouidfetch)) (signal (car data) (cdr data)))))) @@ -3027,6 +3040,7 @@ imap-list-to-message-set imap-fetch-asynch imap-fetch + imap-fetch-safe imap-message-put imap-message-get imap-message-map
--- a/lisp/net/netrc.el Wed Feb 04 23:05:26 2009 +0000 +++ b/lisp/net/netrc.el Thu Feb 05 02:34:34 2009 +0000 @@ -158,11 +158,22 @@ (ports (or ports '(nil))) (defaults (or defaults '(nil))) info) - (dolist (machine machines) - (dolist (default defaults) - (dolist (port ports) - (let ((alist (netrc-machine authinfo-list machine port default))) - (setq info (or (netrc-get alist mode) info)))))) + (if (listp mode) + (setq info + (mapcar + (lambda (mode-element) + (netrc-machine-user-or-password + mode-element + authinfo-list + machines + ports + defaults)) + mode)) + (dolist (machine machines) + (dolist (default defaults) + (dolist (port ports) + (let ((alist (netrc-machine authinfo-list machine port default))) + (setq info (or (netrc-get alist mode) info))))))) info)) (defun netrc-get (alist type)