Merge changes made in Gnus trunk.
authorGnus developers <ding@gnus.org>
Thu, 3 Mar 2011 13:21:50 +0000 (13:21 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Thu, 3 Mar 2011 13:21:50 +0000 (13:21 +0000)
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.

lisp/ChangeLog
lisp/gnus/ChangeLog
lisp/gnus/message.el
lisp/gnus/nnimap.el
lisp/password-cache.el

index ab96ec4..57339a8 100644 (file)
        * vc/vc-bzr.el (vc-bzr-state-heuristic): Handle dirstate entries
        with no parents.  (Bug#8025)
 
+2011-03-02  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * password-cache.el (password-in-cache-p): Add autoload.
+
 2011-03-02  Glenn Morris  <rgm@gnu.org>
 
        * man.el (Man-support-local-filenames): Also handle Red Hat's man.
index 7606d1a..0dc3f48 100644 (file)
@@ -1,3 +1,13 @@
+2011-03-03  Tassilo Horn  <tassilo@member.fsf.org>
+
+       * nnimap.el (nnimap-parse-flags): Add a workaround for FETCH lines with
+       numbers too big to be `read'.
+
+2011-03-02  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * message.el (message-options): Make buffer-local two ways to attempt
+       to fix a XEmacs bug.
+
 2011-03-02  Julien Danjou  <julien@danjou.info>
 
        * gnus-art.el (gnus-with-article-buffer): Fix buffer live check.
index 58daf1b..6adde4e 100644 (file)
@@ -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.")
index c579261..aa4ecbc 100644 (file)
@@ -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)
index a7f75a0..941428d 100644 (file)
@@ -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