+(defun rmail--decode-and-apply (function &rest args)
+ "Make an RFC2047-decoded copy of current buffer, apply FUNCTION with ARGS."
+ (let ((buff (current-buffer)))
+ (with-temp-buffer
+ (insert-buffer-substring buff)
+ (goto-char (point-min))
+ ;; FIXME? In rmail-show-message-1, decoding depends on
+ ;; rmail-enable-mime being non-nil (?).
+ (rfc2047-decode-region (point-min)
+ (save-excursion
+ (progn
+ (search-forward "\n\n" nil 'move)
+ (point))))
+ (apply function args))))
+