(gnus-set-default-directory)
(buffer-disable-undo)
(setq show-trailing-whitespace nil)
+ ;; Arrange a callback from `mm-inline-message' if we're
+ ;; displaying a message/rfc822 part.
+ (setq-local mm-inline-message-prepare-function #'gnus-mime--inline-message)
(mm-enable-multibyte))
(defun gnus-article-setup-buffer ()
(defun gnus-mime-display-mixed (handles)
(mapcar #'gnus-mime-display-part handles))
+(defun gnus-mime--inline-message (handle charset)
+ (let ((handles
+ (let (gnus-article-mime-handles
+ ;; disable prepare hook
+ gnus-article-prepare-hook
+ (gnus-newsgroup-charset
+ ;; mm-uu might set it.
+ (unless (eq charset 'gnus-decoded)
+ (or charset gnus-newsgroup-charset))))
+ (let ((gnus-original-article-buffer
+ (mm-handle-buffer handle)))
+ (run-hooks 'gnus-article-decode-hook))
+ (gnus-article-prepare-display)
+ gnus-article-mime-handles)))
+ (when handles
+ (setq gnus-article-mime-handles
+ (mm-merge-handles gnus-article-mime-handles handles)))))
+
(defun gnus-mime-display-single (handle)
(let ((type (mm-handle-media-type handle))
(ignored gnus-ignored-mime-types)
(mm-inline-font-lock (gnus-visual-p 'article-highlight 'highlight))
(not-attachment t)
- ;; Arrange a callback from `mm-inline-message' if we're
- ;; displaying a message/rfc822 part.
- (mm-inline-message-prepare-function
- (lambda (charset)
- (let ((handles
- (let (gnus-article-mime-handles
- ;; disable prepare hook
- gnus-article-prepare-hook
- (gnus-newsgroup-charset
- ;; mm-uu might set it.
- (unless (eq charset 'gnus-decoded)
- (or charset gnus-newsgroup-charset))))
- (let ((gnus-original-article-buffer
- (mm-handle-buffer handle)))
- (run-hooks 'gnus-article-decode-hook))
- (gnus-article-prepare-display)
- gnus-article-mime-handles)))
- (when handles
- (setq gnus-article-mime-handles
- (mm-merge-handles gnus-article-mime-handles handles))))))
display text
gnus-displaying-mime)
(catch 'ignored
(defvar mm-inline-message-prepare-function nil
"Function called by `mm-inline-message' to do client specific setup.
-It is called with one parameter -- the charset.")
+It is called with two parameters -- the MIME handle and the charset.")
(defun mm-inline-message (handle)
"Insert HANDLE (a message/rfc822 part) into the current buffer.
(narrow-to-region b b)
(mm-insert-part handle)
(when mm-inline-message-prepare-function
- (funcall mm-inline-message-prepare-function charset))
+ (funcall mm-inline-message-prepare-function handle charset))
(goto-char (point-min))
(unless bolp
(insert "\n"))