[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 0.126, xemacs, pgnus-0.95, and really large UIDs



> One (easy to remedy) is that LIST is hardcoded as the method to use to
> retrieve a folder list with.  On the server I am trying to use, there are
> some ten thousand or more folders, and I have to traverse the Internet at
> large to talk to it.  Listing all 10k+ folders is not something I want to
> do; neither are the subsets I want to read in any particular parts of the
> folder hierarchy -- so I cannot use the nnimap-list-pattern method to
> select those.

LSUB uses a "subscribed" list on the server.  I'm not sure how you
created yours, but you can make nnimap-list-pattern be a copy of this
list.  Not easy or central, but just another solution.

> (1) (error/warning) Error in process filter:
>   (invalid-read-syntax Integer constant overflow in reader 2003395529 10)
>  * 1 FETCH (UID 2003395529)

We should read UIDs as strings, but we seem to have forgotten to do it
in a few places.  This patch should fix it.  Let me know if it works.

-Jim

Index: imap.el
===================================================================
RCS file: /home/radford/src/cvs/nnimap/imap.el,v
retrieving revision 1.161
diff -u -r1.161 imap.el
--- imap.el     1999/07/25 16:36:41     1.161
+++ imap.el     1999/08/05 07:23:41
@@ -1637,8 +1637,8 @@
     (imap-forward)
     (cond ((search-forward "PERMANENTFLAGS " nil t)
           (imap-mailbox-put 'permanentflags (imap-parse-flag-list)))
-         ((search-forward "UIDNEXT " nil t)
-          (imap-mailbox-put 'uidnext (read (current-buffer))))
+         ((search-forward-regexp "UIDNEXT \\([0-9]+\\)")
+          (imap-mailbox-put 'uidnext (match-string 1)))
          ((search-forward "UNSEEN " nil t)
           (imap-mailbox-put 'unseen (read (current-buffer))))
          ((looking-at "UIDVALIDITY \\([0-9]+\\)")
@@ -1745,7 +1745,8 @@
        (let ((token (read (current-buffer))))
          (imap-forward)
          (cond ((eq token 'UID)
-                (setq uid (read (current-buffer))))
+                 (and (search-forward-regexp "\\= \\([0-9]+\\)")
+                      (setq uid (match-string 1))))
                ((eq token 'FLAGS)
                 (setq flags (imap-parse-flag-list)))
                ((eq token 'ENVELOPE)
@@ -1807,11 +1808,11 @@
                ((eq token 'RECENT)
                 (imap-mailbox-put 'recent (read (current-buffer)) mailbox))
                ((eq token 'UIDNEXT)
-                (imap-mailbox-put 'uidnext (read (current-buffer)) mailbox))
+                (and (search-forward-regexp "\\= \\([0-9]+\\)")
+                     (imap-mailbox-put 'uidnext (match-string 1) mailbox)))
                ((eq token 'UIDVALIDITY)
-                (and (looking-at " \\([0-9]+\\)")
-                     (imap-mailbox-put 'uidvalidity (match-string 1) mailbox)
-                     (goto-char (match-end 1))))
+                (and (search-forward-regexp "\\= \\([0-9]+\\)")
+                     (imap-mailbox-put 'uidvalidity (match-string 1) mailbox)))
                ((eq token 'UNSEEN)
                 (imap-mailbox-put 'unseen (read (current-buffer)) mailbox))
                (t