imap_get_delim (idata);
IMAP_DATA* imap_conn_find (const ACCOUNT* account, int flags){  CONNECTION* conn;  IMAP_DATA* idata;  ACCOUNT* creds;  if (!(conn = mutt_conn_find (NULL, account)))    return NULL;  /* if opening a new UNSELECTED connection, preserve existing creds */  creds = &(conn->account);  /* make sure this connection is not in SELECTED state, if neccessary */  if (flags & M_IMAP_CONN_NOSELECT)    while (conn->data && ((IMAP_DATA*) conn->data)->state == IMAP_SELECTED)    {      if (!(conn = mutt_conn_find (conn, account)))	return NULL;      memcpy (&(conn->account), creds, sizeof (ACCOUNT));    }    idata = (IMAP_DATA*) conn->data;  /* don't open a new connection if one isn't wanted */  if (flags & M_IMAP_CONN_NONEW)  {    if (!idata)    {      mutt_socket_free (conn);      return NULL;    }    if (idata->state < IMAP_AUTHENTICATED)      return NULL;  }    if (!idata)  {    /* The current connection is a new connection */    if (! (idata = imap_new_idata ()))    {      mutt_socket_free (conn);      return NULL;    }    conn->data = idata;    idata->conn = conn;  }  if (idata->state == IMAP_DISCONNECTED)    imap_open_connection (idata);  if (idata->state == IMAP_CONNECTED)  {    if (!imap_authenticate (idata))    {      idata->state = IMAP_AUTHENTICATED;      if (idata->conn->ssf)	dprint (2, (debugfile, "Communication encrypted at %d bits\n",		    idata->conn->ssf));      imap_get_delim (idata);    }    else      mutt_account_unsetpass (&idata->conn->account);        FREE (&idata->capstr);  }    return idata;}