((IMAP_DATA *) ctx->data)->status = 0;
CTX_DATA->status = 0;
static int imap_exec (char *buf, size_t buflen,		      CONTEXT *ctx, const char *seq, const char *cmd){  int count;  imap_write (ctx->fd, cmd);  do  {    if (imap_read_line_d (buf, buflen, ctx->fd) < 0)      return (-1);    if (buf[0] == '*' && imap_handle_untagged (ctx, buf) != 0)      return (-1);  }  while (strncmp (buf, seq, SEQLEN) != 0);  if (((IMAP_DATA *) ctx->data)->status == IMAP_NEW_MAIL)  {    /* read new mail messages */    dprint (1, (debugfile, "imap_exec(): new mail detected\n"));    mutt_message ("Fetching headers for new mail...");    ((IMAP_DATA *) ctx->data)->status = 0;    count = ((IMAP_DATA *) ctx->data)->newMailCount;    while (count > ctx->hdrmax)      mx_alloc_memory (ctx);    while (ctx->msgcount < count)    {      ctx->hdrs[ctx->msgcount] = mutt_new_header ();      imap_read_header (ctx, ctx->msgcount);      mx_update_context (ctx); /* incremements ->msgcount */            /* check to make sure that new mail hasn't arrived in the middle of       * checking for new mail (sigh)       */      if (((IMAP_DATA *) ctx->data)->status == IMAP_NEW_MAIL)      {	count = ((IMAP_DATA *) ctx->data)->newMailCount;	while (count > ctx->hdrmax)	  mx_alloc_memory (ctx);	((IMAP_DATA *) ctx->data)->status = 0;      }    }    mutt_clear_error ();  }  if (!imap_code (buf))  {    char *pc;    dprint (1, (debugfile, "imap_exec(): command failed: %s\n", buf));    pc = buf + SEQLEN;    SKIPWS (pc);    pc = imap_next_word (pc);    mutt_error (pc);    sleep (1);    return (-1);  }  return 0;}