FREE (&mx->mbox);
int imap_parse_path (const char* path, IMAP_MBOX* mx){  char tmp[128];  char *c;  int n;    if (sscanf (path, "{%128[^}]}", tmp) != 1)     return -1;  mx->account.type = M_ACCT_TYPE_IMAP;  c = strchr (path, '}');  if (!c)    return -1;  else    /* walk past closing '}' */    mx->mbox = strdup (c+1);    /* Defaults */  mx->account.flags = 0;  mx->account.port = IMAP_PORT;  if ((c = strrchr (tmp, '@')))  {    *c = '\0';    strfcpy (mx->account.user, tmp, sizeof (mx->account.user));    strfcpy (tmp, c+1, sizeof (tmp));    mx->account.flags |= M_ACCT_USER;  }    if ((n = sscanf (tmp, "%128[^:/]%128s", mx->account.host, tmp)) < 1)  {    dprint (1, (debugfile, "imap_parse_path: NULL host in %s\n", path));    return -1;  }    if (n > 1) {    if (sscanf (tmp, ":%hd%128s", &(mx->account.port), tmp) >= 1)      mx->account.flags |= M_ACCT_PORT;    if (sscanf (tmp, "/%s", tmp) == 1)    {#ifdef USE_SSL      if (!strncmp (tmp, "ssl", 3))	imap_set_ssl (&(mx->account));      else#endif      {	dprint (1, (debugfile, "imap_parse_path: Unknown connection type in %s\n", path));	return -1;      }    }  }#ifdef USE_SSL  if (option (OPTIMAPFORCESSL))    imap_set_ssl (&(mx->account));#endif  return 0;}