switch ((*msg)->magic) { case M_MMDF: fputs (MMDF_SEP, (*msg)->fp); break;
r = safe_fclose (&(*msg)->fp); } else (*msg)->fp = NULL;
int mx_close_message (MESSAGE **msg){  int r = 0;  if ((*msg)->write)  {    /* add the message terminator */    switch ((*msg)->magic)    {      case M_MMDF:	fputs (MMDF_SEP, (*msg)->fp);	break;      case M_MBOX:	fputc ('\n', (*msg)->fp);	break;    }  }  switch ((*msg)->magic)   {    case M_MH:    case M_MAILDIR:      r = fclose ((*msg)->fp);      break;#ifdef USE_IMAP    case M_IMAP:      r = fclose ((*msg)->fp);      if ((*msg)->write && (*msg)->ctx->append)      {	r = imap_append_message ((*msg)->ctx, *msg);	unlink ((*msg)->path);      }#endif    default:      break;  }  FREE (msg);  return (r);}