summaryrefslogtreecommitdiff
path: root/lisp/gnus/mm-view.el
diff options
context:
space:
mode:
authorKatsumi Yamaoka <yamaoka@jpl.org>2008-12-04 10:53:18 +0000
committerKatsumi Yamaoka <yamaoka@jpl.org>2008-12-04 10:53:18 +0000
commit1250af7b900dd9ab6ec18113c62048e0ef416cd7 (patch)
tree0dd22d47dc302e614c04eab0865a420b83e82c04 /lisp/gnus/mm-view.el
parenta3b1a468318226d795e46d65d8c3c0b44942d6cc (diff)
downloademacs-1250af7b900dd9ab6ec18113c62048e0ef416cd7.tar.gz
* mm-view.el (mm-inline-text-html-render-with-w3m): Make it simple and fast.
* gnus-art.el (gnus-article-wash-html-with-w3m): Ditto.
Diffstat (limited to 'lisp/gnus/mm-view.el')
-rw-r--r--lisp/gnus/mm-view.el51
1 files changed, 23 insertions, 28 deletions
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index fd01a0132f6..3f86642b18b 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -258,40 +258,35 @@
(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 ((begin (point-min))
- (map (copy-keymap w3m-link-map))
- end)
+ (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 (setq end (next-single-property-change
- begin 'w3m-href-anchor))
- (add-text-properties
- begin end
- (list 'keymap (if (get-text-property begin 'w3m-href-anchor)
- map
- w3m-minor-mode-map)
- ;; Put the mark meaning this part was rendered
- ;; by emacs-w3m.
- 'mm-inline-text-html-with-w3m t))
- (setq begin end))
- (add-text-properties
- begin (point-max)
- (list 'keymap (if (get-text-property begin 'w3m-href-anchor)
- map
- w3m-minor-mode-map)
- ;; Put the mark meaning this part was rendered
- ;; by emacs-w3m.
- 'mm-inline-text-html-with-w3m t)))
- (add-text-properties
- (point-min) (point-max)
- (list 'keymap w3m-minor-mode-map
- ;; Put the mark meaning this part was rendered
- ;; by emacs-w3m.
- 'mm-inline-text-html-with-w3m t))))
+ (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
`(lambda ()