From 4c322986ceccf098ec4ddc3f9c94e541242830d6 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 14 Feb 2015 16:01:20 +1100 Subject: [PATCH] Fix inserting parts with `E' in Gnus * lisp/mm-decode.el (mm-head-p): New function. (mm-display-part): Go to a blank line when inserting parts internally. --- lisp/ChangeLog | 5 +++++ lisp/gnus-art.el | 3 ++- lisp/mm-decode.el | 12 ++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8110accac..9f93a3031 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2015-02-14 Lars Ingebrigtsen + + * mm-decode.el (mm-head-p): New function. + (mm-display-part): Go to a blank line when inserting parts internally. + 2015-02-13 Lars Ingebrigtsen * gnus-msg.el (gnus-msg-mail): Don't let-bind `gnus-newsgroup-name' so diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 1e3163040..c9197e4db 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -5506,7 +5506,8 @@ If no internal viewer is available, use an external viewer." (gnus-mime-view-part-as-type nil (lambda (type) (mm-inlinable-p handle type))) (when handle - (gnus-bind-safe-url-regexp (mm-display-part handle)))))) + (gnus-bind-safe-url-regexp + (mm-display-part handle nil t)))))) (defun gnus-mime-action-on-part (&optional action) "Do something with the MIME attachment at \(point\)." diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 3fdcdba45..459c7935f 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -791,6 +791,14 @@ MIME-Version header before proceeding." (autoload 'mailcap-parse-mailcaps "mailcap") (autoload 'mailcap-mime-info "mailcap") +(defun mm-head-p (&optional point) + "Return non-nil if point is in the article header." + (let ((point (or point (point)))) + (save-excursion + (goto-char point) + (and (not (re-search-backward "^$" nil t)) + (re-search-forward "^$" nil t))))) + (defun mm-display-part (handle &optional no-default force) "Display the MIME part represented by HANDLE. Returns nil if the part is removed; inline if displayed inline; @@ -824,6 +832,10 @@ external if displayed external." 'inline) ((and (mm-inlinable-p ehandle) (mm-inlined-p ehandle)) + (when force + (if (mm-head-p) + (re-search-forward "^$" nil t) + (forward-line 1))) (mm-display-inline handle) 'inline) ((or method -- 2.34.1