Function: mm-inline-text-html-render-with-w3m
mm-inline-text-html-render-with-w3m is a byte-compiled function
defined in mm-view.el.gz.
Signature
(mm-inline-text-html-render-with-w3m HANDLE)
Documentation
Render a text/html part using emacs-w3m.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/mm-view.el.gz
(defun mm-inline-text-html-render-with-w3m (handle)
"Render a text/html part using emacs-w3m."
(mm-setup-w3m)
(let ((text (mm-get-part handle))
(b (point))
(charset (or (mail-content-type-get (mm-handle-type handle) 'charset)
mail-parse-charset)))
(save-excursion
(insert (if charset (mm-decode-string text charset) text))
(save-restriction
(narrow-to-region b (point))
(unless charset
(goto-char (point-min))
(when (setq charset (w3m-detect-meta-charset))
(delete-region (point-min) (point-max))
(insert (mm-decode-string text charset))))
(let ((w3m-safe-url-regexp mm-w3m-safe-url-regexp)
w3m-force-redisplay)
(w3m-region (point-min) (point-max) nil charset))
;; Put the mark meaning this part was rendered by emacs-w3m.
(put-text-property (point-min) (point-max)
'mm-inline-text-html-with-w3m t)
(when (and mm-inline-text-html-with-w3m-keymap
(boundp 'w3m-minor-mode-map)
w3m-minor-mode-map)
(if (and (boundp 'w3m-link-map)
w3m-link-map)
(let* ((start (point-min))
(end (point-max))
(on (get-text-property start 'w3m-href-anchor))
(map (copy-keymap w3m-link-map))
next)
(set-keymap-parent map w3m-minor-mode-map)
(while (< start end)
(if on
(progn
(setq next (or (text-property-any start end
'w3m-href-anchor nil)
end))
(put-text-property start next 'keymap map))
(setq next (or (text-property-not-all start end
'w3m-href-anchor nil)
end))
(put-text-property start next 'keymap w3m-minor-mode-map))
(setq start next
on (not on))))
(put-text-property (point-min) (point-max)
'keymap w3m-minor-mode-map)))
(mm-handle-set-undisplayer
handle
(let ((beg (point-min-marker))
(end (point-max-marker)))
(lambda ()
(let ((inhibit-read-only t))
(delete-region beg end)))))))))