From: Gnus developers Date: Thu, 3 Mar 2011 13:21:50 +0000 (+0000) Subject: Merge changes made in Gnus trunk. X-Git-Url: https://git.hcoop.net/bpt/emacs.git/commitdiff_plain/71f8b7edc1a1902d8ad85815c6becc43d2e3ca9b Merge changes made in Gnus trunk. nnimap.el (nnimap-parse-flags): Add a workaround for FETCH lines with numbers too big to be `read'. password-cache.el (password-in-cache-p): Add autoload. message.el (message-options): Make buffer-local two ways to attempt to fix a XEmacs bug. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ab96ec4ad0..57339a8fee 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -44,6 +44,10 @@ * vc/vc-bzr.el (vc-bzr-state-heuristic): Handle dirstate entries with no parents. (Bug#8025) +2011-03-02 Teodor Zlatanov + + * password-cache.el (password-in-cache-p): Add autoload. + 2011-03-02 Glenn Morris * man.el (Man-support-local-filenames): Also handle Red Hat's man. diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 7606d1a44a..0dc3f487f2 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,13 @@ +2011-03-03 Tassilo Horn + + * nnimap.el (nnimap-parse-flags): Add a workaround for FETCH lines with + numbers too big to be `read'. + +2011-03-02 Teodor Zlatanov + + * message.el (message-options): Make buffer-local two ways to attempt + to fix a XEmacs bug. + 2011-03-02 Julien Danjou * gnus-art.el (gnus-with-article-buffer): Fix buffer live check. diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 58daf1baf9..6adde4e6e5 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -1814,7 +1814,10 @@ You must have the \"hashcash\" binary installed, see `hashcash-path'." (defvar message-options nil "Some saved answers when sending message.") -(make-variable-buffer-local 'message-options) + +(if (featurep 'xemacs) + (make-local-variable 'message-options) + (make-variable-buffer-local 'message-options)) (defvar message-send-mail-real-function nil "Internal send mail function.") diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index c579261e35..aa4ecbc3b0 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -1496,10 +1496,22 @@ textual parts.") (setq start (point)) (goto-char end)) (while (re-search-forward "^\\* [0-9]+ FETCH " start t) - (setq elems (read (current-buffer))) - (push (cons (cadr (memq 'UID elems)) - (cadr (memq 'FLAGS elems))) - articles)) + (let ((p (point))) + ;; FIXME: For FETCH lines like "* 2971 FETCH (FLAGS (%Recent) UID + ;; 12509 MODSEQ (13419098521433281274))" we get an + ;; overflow-error. The handler simply deletes that large number + ;; and reads again. But maybe there's a better fix... + (setq elems (condition-case nil (read (current-buffer)) + (overflow-error + ;; After an overflow-error, point is just after + ;; the too large number. So delete it and try + ;; again. + (delete-region (point) (progn (backward-word) (point))) + (goto-char p) + (read (current-buffer))))) + (push (cons (cadr (memq 'UID elems)) + (cadr (memq 'FLAGS elems))) + articles))) (push (nconc (list group uidnext totalp permanent-flags uidvalidity vanished highestmodseq) articles) diff --git a/lisp/password-cache.el b/lisp/password-cache.el index a7f75a03ad..941428d529 100644 --- a/lisp/password-cache.el +++ b/lisp/password-cache.el @@ -76,6 +76,7 @@ regulate cache behavior." key (symbol-value (intern-soft key password-data)))) +;;;###autoload (defun password-in-cache-p (key) "Check if KEY is in the cache." (and password-cache