X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fmm-decode.el;h=327b0e6e86f3abd006419e03d8511133610a0f47;hb=18094baee115e9f9a2f58340b76463e4e88b389d;hp=b2a0cadb8048111230ac363168e1a47325c9432e;hpb=37645a283b23df8169ab52431b0f0baa24a79533;p=gnus diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index b2a0cadb8..327b0e6e8 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -30,8 +30,6 @@ (autoload 'gnus-map-function "gnus-util") (autoload 'gnus-replace-in-string "gnus-util") (autoload 'gnus-read-shell-command "gnus-util") -(autoload 'gnus-overlays-at "gnus-util") -(autoload 'gnus-overlay-put "gnus-util") (autoload 'mm-inline-partial "mm-partial") (autoload 'mm-inline-external-body "mm-extern") @@ -790,6 +788,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; @@ -823,6 +829,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 @@ -845,7 +855,7 @@ external if displayed external." (concat "using external program \"" (format method filename) "\"") - (format + (gnus-format-message "by calling `%s' on the contents)" method)) "? ")))))) (if external @@ -1409,7 +1419,7 @@ Return t if meta tag is added or replaced." (goto-char (point-min)) (if (re-search-forward "\ ]+\\)\\)?[^>]*>" nil t) +text/\\(\\sw+\\)\\(?:;\\s-*charset=\\([^\"'>]+\\)\\)?[^>]*>" nil t) (if (and (not force-charset) (match-beginning 2) (string-match "\\`html\\'" (match-string 1))) @@ -1814,7 +1824,7 @@ If RECURSIVE, search recursively." (not (mm-long-lines-p 76)))))) (declare-function libxml-parse-html-region "xml.c" - (start end &optional base-url)) + (start end &optional base-url discard-comments)) (declare-function shr-insert-document "shr" (dom)) (defvar shr-blocked-images) (defvar shr-use-fonts) @@ -1882,7 +1892,7 @@ If RECURSIVE, search recursively." handle `(lambda () (let ((inhibit-read-only t)) - (delete-region ,(copy-marker (point-min) t) + (delete-region ,(point-min-marker) ,(point-max-marker)))))))) (defvar shr-map) @@ -1902,8 +1912,8 @@ If RECURSIVE, search recursively." :keymap shr-map (get-text-property start 'shr-url)) (put-text-property start end 'local-map nil) - (dolist (overlay (gnus-overlays-at start)) - (gnus-overlay-put overlay 'face nil)) + (dolist (overlay (overlays-at start)) + (overlay-put overlay 'face nil)) (setq start end))))) (defun mm-handle-filename (handle)