rc = mutt_pager (NULL, tempfile, 1, &info);
rc = mutt_pager (NULL, tempfile, M_PAGER_MESSAGE, &info);
int mutt_display_message (HEADER *cur){  char tempfile[_POSIX_PATH_MAX], buf[LONG_STRING];  int rc = 0, builtin = 0;  int cmflags = M_CM_DECODE | M_CM_DISPLAY;  FILE *fpout;  snprintf (buf, sizeof (buf), "%s/%s", TYPE (cur->content),	    cur->content->subtype);  if (cur->mailcap && !mutt_is_autoview (buf))  {    if (is_mmnoask (buf))      rc = M_YES;    else      rc = query_quadoption (OPT_USEMAILCAP, 			_("Display message using mailcap?"));    if (rc < 0)      return 0;    else if (rc == M_YES)    {      MESSAGE *msg;      if ((msg = mx_open_message (Context, cur->msgno)) != NULL)      {	mutt_view_attachment (msg->fp, cur->content, M_REGULAR);	mx_close_message (&msg);	mutt_set_flag (Context, cur, M_READ, 1);      }      return 0;    }  }  mutt_parse_mime_message (Context, cur);#ifdef _PGPPATH  /* see if PGP is needed for this message.  if so, we should exit curses */  if (cur->pgp)  {    if (cur->pgp & PGPENCRYPT)    {      if (!pgp_valid_passphrase ())	return 0;      cmflags |= M_CM_VERIFY;      mutt_message _("Invoking PGP...");    }    else if (cur->pgp & PGPSIGN)    {      /* find out whether or not the verify signature */      if (query_quadoption (OPT_VERIFYSIG, _("Verify PGP signature?")) == M_YES)      {	cmflags |= M_CM_VERIFY;	mutt_message _("Invoking PGP...");      }    }  }#endif  mutt_mktemp (tempfile);  if ((fpout = safe_fopen (tempfile, "w")) == NULL)  {    mutt_error _("Could not create temporary file!");    return (0);  }  if (!Pager || strcmp (Pager, "builtin") == 0)    builtin = 1;  else  {    mutt_make_string (buf, sizeof (buf), NONULL(PagerFmt), Context, cur);    fputs (buf, fpout);    fputs ("\n\n", fpout);  }  if (mutt_copy_message (fpout, Context, cur, cmflags,			 (option (OPTWEED) ? (CH_WEED | CH_REORDER) : 0) | CH_DECODE | CH_FROM) == -1)  {    fclose (fpout);    unlink (tempfile);    return 0;  }  if (fclose (fpout) != 0 && errno != EPIPE)  {    mutt_perror ("fclose");    mutt_unlink (tempfile);    return (0);  }  if (builtin)  {    pager_t info;        /* Invoke the builtin pager */    memset (&info, 0, sizeof (pager_t));    info.hdr = cur;    info.ctx = Context;    rc = mutt_pager (NULL, tempfile, 1, &info);  }  else  {    endwin ();    snprintf (buf, sizeof (buf), "%s %s", NONULL(Pager), tempfile);    mutt_system (buf);    unlink (tempfile);    keypad (stdscr, TRUE);    mutt_set_flag (Context, cur, M_READ, 1);    if (option (OPTPROMPTAFTER))    {      mutt_ungetch (mutt_any_key_to_continue _("Command: "), 0);      rc = km_dokey (MENU_PAGER);    }    else      rc = 0;  }  return rc;}