+;;;###autoload
+(defun metamail-interpret-body (&optional viewmode nodisplay)
+ "Interpret a body part of a MIME message in current buffer.
+Optional argument VIEWMODE specifies the value of the
+EMACS_VIEW_MODE environment variable (defaulted to 1).
+Optional argument NODISPLAY non-nil means buffer is not
+redisplayed as output is inserted.
+Its header part is not interpreted at all."
+ (interactive "p")
+ (save-excursion
+ (let ((contype nil)
+ (encoding nil)
+ (end (progn
+ (goto-char (point-min))
+ (search-forward "\n\n" nil t)
+ (point))))
+ ;; Find Content-Type and Content-Transfer-Encoding from the header.
+ (save-restriction
+ (narrow-to-region (point-min) end)
+ (setq contype
+ (or (mail-fetch-field "Content-Type") "text/plain"))
+ (setq encoding
+ (or (mail-fetch-field "Content-Transfer-Encoding") "7bit")))
+ ;; Interpret the body part only.
+ (let ((metamail-switches ;Process body part only.
+ (append metamail-switches
+ (list "-b" "-c" contype "-E" encoding))))
+ (metamail-region end (point-max) viewmode nil nodisplay))
+ ;; Mode specific hack.
+ (cond ((eq major-mode 'rmail-mode)
+ ;; Adjust the marker of this message if in Rmail mode buffer.
+ (set-marker (aref rmail-message-vector (1+ rmail-current-message))
+ (point-max))))
+ )))
+
+;;;###autoload
+(defun metamail-buffer (&optional viewmode buffer nodisplay)