On Saturday, 05 August 2006 at 11:20, Rocco Rutte wrote: > Hi, > > * Brendan Cully [06-08-04 17:43:25 -0700] wrote: > > >Mutt just wasn't checking for capabilities on tagged responses. Does > >the following patch work for you? > > Yes, thanks. But know it's parsing the initial CAPA twice. How about this one then?
? cscope.out
Index: imap/command.c
===================================================================
RCS file: /home/roessler/cvs/mutt/imap/command.c,v
retrieving revision 3.40
diff -u -p -r3.40 command.c
--- imap/command.c 6 Jul 2006 18:18:31 -0000 3.40
+++ imap/command.c 5 Aug 2006 21:20:13 -0000
@@ -167,8 +167,9 @@ int imap_cmd_step (IMAP_DATA* idata)
idata->lastread = time (NULL);
/* handle untagged messages. The caller still gets its shot afterwards. */
- if (!ascii_strncmp (idata->buf, "* ", 2) &&
- cmd_handle_untagged (idata))
+ if ((!ascii_strncmp (idata->buf, "* ", 2)
+ || !ascii_strncmp (imap_next_word (idata->buf), "OK [", 4))
+ && cmd_handle_untagged (idata))
return IMAP_CMD_BAD;
/* server demands a continuation response from us */
@@ -365,6 +366,7 @@ static int cmd_handle_untagged (IMAP_DAT
int count;
s = imap_next_word (idata->buf);
+ pn = imap_next_word (s);
if ((idata->state >= IMAP_SELECTED) && isdigit ((unsigned char) *s))
{
@@ -417,7 +419,9 @@ static int cmd_handle_untagged (IMAP_DAT
else if (ascii_strncasecmp ("CAPABILITY", s, 10) == 0)
cmd_parse_capability (idata, s);
else if (!ascii_strncasecmp ("OK [CAPABILITY", s, 14))
- cmd_parse_capability (idata, imap_next_word (s));
+ cmd_parse_capability (idata, pn);
+ else if (!ascii_strncasecmp ("OK [CAPABILITY", pn, 14))
+ cmd_parse_capability (idata, imap_next_word (pn));
else if (ascii_strncasecmp ("LIST", s, 4) == 0)
cmd_parse_list (idata, s);
else if (ascii_strncasecmp ("LSUB", s, 4) == 0)
Attachment:
pgpMbhabgAwIO.pgp
Description: PGP signature