Mercurial > emacs
changeset 100198:c20a057aefda
* mm-view.el (mm-inline-text-html-render-with-w3m): Put special keymap on links.
* gnus-art.el (gnus-article-wash-html-with-w3m): Ditto.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Thu, 04 Dec 2008 01:58:01 +0000 |
parents | 3076f8588570 |
children | 534909f112bb |
files | lisp/gnus/ChangeLog lisp/gnus/gnus-art.el lisp/gnus/mm-view.el |
diffstat | 3 files changed, 66 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog Wed Dec 03 23:49:00 2008 +0000 +++ b/lisp/gnus/ChangeLog Thu Dec 04 01:58:01 2008 +0000 @@ -1,3 +1,10 @@ +2008-12-04 Naohiro Aota <nao.aota@gmail.com> + + * mm-view.el (mm-inline-text-html-render-with-w3m): Put special keymap + on links. + + * gnus-art.el (gnus-article-wash-html-with-w3m): Ditto. + 2008-12-03 Katsumi Yamaoka <yamaoka@jpl.org> * message.el (message-idna-to-ascii-rhs-1): Protect against local
--- a/lisp/gnus/gnus-art.el Wed Dec 03 23:49:00 2008 +0000 +++ b/lisp/gnus/gnus-art.el Thu Dec 04 01:58:01 2008 +0000 @@ -2731,11 +2731,34 @@ (when (and mm-inline-text-html-with-w3m-keymap (boundp 'w3m-minor-mode-map) w3m-minor-mode-map) - (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)))) + (if (and (boundp 'w3m-link-map) + w3m-link-map) + (let ((begin (point-min)) + (map (copy-keymap w3m-link-map)) + end) + (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))))) (defvar charset) ;; Bound by `article-wash-html'.
--- a/lisp/gnus/mm-view.el Wed Dec 03 23:49:00 2008 +0000 +++ b/lisp/gnus/mm-view.el Thu Dec 04 01:58:01 2008 +0000 @@ -261,11 +261,37 @@ (when (and mm-inline-text-html-with-w3m-keymap (boundp 'w3m-minor-mode-map) w3m-minor-mode-map) - (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))) + (if (and (boundp 'w3m-link-map) + w3m-link-map) + (let ((begin (point-min)) + (map (copy-keymap w3m-link-map)) + end) + (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)))) (mm-handle-set-undisplayer handle `(lambda ()