You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.9 KiB
59 lines
1.9 KiB
diff -up mutt-1.5.21/imap/message.c.hdrcnt mutt-1.5.21/imap/message.c |
|
--- mutt-1.5.21/imap/message.c.hdrcnt 2010-08-24 18:34:21.000000000 +0200 |
|
+++ mutt-1.5.21/imap/message.c 2011-06-13 15:44:08.268380854 +0200 |
|
@@ -65,7 +65,7 @@ int imap_read_headers (IMAP_DATA* idata, |
|
char *hdrreq = NULL; |
|
FILE *fp; |
|
char tempfile[_POSIX_PATH_MAX]; |
|
- int msgno, idx; |
|
+ int msgno, idx = msgbegin - 1; |
|
IMAP_HEADER h; |
|
IMAP_STATUS* status; |
|
int rc, mfhrc, oldmsgcount; |
|
@@ -185,7 +185,7 @@ int imap_read_headers (IMAP_DATA* idata, |
|
continue; |
|
} |
|
|
|
- idx = h.sid - 1; |
|
+ idx++; |
|
ctx->hdrs[idx] = imap_hcache_get (idata, h.data->uid); |
|
if (ctx->hdrs[idx]) |
|
{ |
|
@@ -211,6 +211,7 @@ int imap_read_headers (IMAP_DATA* idata, |
|
dprint (3, (debugfile, "bad cache entry at %d, giving up\n", h.sid - 1)); |
|
imap_free_header_data((void**) (void*) &h.data); |
|
evalhc = 0; |
|
+ idx--; |
|
} |
|
} |
|
while (rc != IMAP_CMD_OK && mfhrc == -1); |
|
@@ -273,18 +274,20 @@ int imap_read_headers (IMAP_DATA* idata, |
|
{ |
|
dprint (2, (debugfile, "msg_fetch_header: ignoring fetch response with no body\n")); |
|
mfhrc = -1; |
|
+ msgend--; |
|
continue; |
|
} |
|
|
|
/* make sure we don't get remnants from older larger message headers */ |
|
fputs ("\n\n", fp); |
|
|
|
- idx = h.sid - 1; |
|
+ idx++; |
|
if (idx > msgend) |
|
{ |
|
dprint (1, (debugfile, "imap_read_headers: skipping FETCH response for " |
|
"unknown message number %d\n", h.sid)); |
|
mfhrc = -1; |
|
+ idx--; |
|
continue; |
|
} |
|
/* May receive FLAGS updates in a separate untagged response (#2935) */ |
|
@@ -292,6 +295,7 @@ int imap_read_headers (IMAP_DATA* idata, |
|
{ |
|
dprint (2, (debugfile, "imap_read_headers: message %d is not new\n", |
|
h.sid)); |
|
+ idx--; |
|
continue; |
|
} |
|
|
|
|