[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