HEADER *cur = ctx->hdrs[msgno]; char path[_POSIX_PATH_MAX];  snprintf (path, sizeof (path), "%s/%s", ctx->path, cur->path); if ((msg->fp = fopen (path, "r")) == NULL) { mutt_perror (path); dprint (1, (debugfile, "mx_open_message: fopen: %s: %s (errno %d).\n", path, strerror (errno), errno)); FREE (&msg); }
mutt_perror (path); dprint (1, (debugfile, "mx_open_message: fopen: %s: %s (errno %d).\n", path, strerror (errno), errno)); FREE (&msg);
MESSAGE *mx_open_message (CONTEXT *ctx, int msgno){  MESSAGE *msg;    msg = safe_calloc (1, sizeof (MESSAGE));  switch (msg->magic = ctx->magic)  {    case M_MBOX:    case M_MMDF:      msg->fp = ctx->fp;      break;    case M_MH:    case M_MAILDIR:      {	HEADER *cur = ctx->hdrs[msgno];	char path[_POSIX_PATH_MAX];	snprintf (path, sizeof (path), "%s/%s", ctx->path, cur->path);	if ((msg->fp = fopen (path, "r")) == NULL)	{	  mutt_perror (path);	  dprint (1, (debugfile, "mx_open_message: fopen: %s: %s (errno %d).\n",		      path, strerror (errno), errno));	  FREE (&msg);	}      }      break;#ifdef USE_IMAP    case M_IMAP:      if (imap_fetch_message (msg, ctx, msgno) != 0)	FREE (&msg);      break;#endif /* USE_IMAP */    default:      dprint (1, (debugfile, "mx_open_message(): function not implemented for mailbox type %d.\n", ctx->magic));      FREE (&msg);      break;  }  return (msg);}