Changes committed gnus/lisp (ChangeLog gnus-art.el mm-view.el)
"Katsumi Yamaoka" <[email protected]> Thu, 04 Dec 2008 11:53:39 +0100
| Newsgroups | gmane.emacs.gnus.commits |
|---|---|
| Message-ID | <[email protected]> |
Modified: ChangeLog gnus-art.el mm-view.el * 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. Index: ChangeLog diff -u gnus/lisp/ChangeLog:7.1937 gnus/lisp/ChangeLog:7.1938 --- ChangeLog:7.1937 Thu Dec 4 02:58:21 2008 +++ ChangeLog Thu Dec 4 11:53:38 2008 @@ -1,3 +1,12 @@ +2008-12-04 Katsumi Yamaoka <[email protected]> + + * 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. + + * lpath.el: Bind w3m-link-map for Emacs 21, 22, and XEmacs. + 2008-12-04 Naohiro Aota <[email protected]> * mm-view.el (mm-inline-text-html-render-with-w3m): Put special keymap @@ -5,8 +14,6 @@ * gnus-art.el (gnus-article-wash-html-with-w3m): Ditto. - * lpath.el: Bind w3m-link-map for Emacs 21, 22, and XEmacs. - 2008-12-03 Stefan Monnier <[email protected]> * nnimap.el (nnimap-retrieve-headers-progress): Don't use nnimap-demule Index: gnus-art.el diff -u gnus/lisp/gnus-art.el:7.284 gnus/lisp/gnus-art.el:7.285 --- gnus-art.el:7.284 Thu Dec 4 02:58:21 2008 +++ gnus-art.el Thu Dec 4 11:53:38 2008 @@ -2728,37 +2728,33 @@ (let ((w3m-safe-url-regexp mm-w3m-safe-url-regexp) w3m-force-redisplay) (w3m-region (point-min) (point-max))) + ;; 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)))) (defvar charset) ;; Bound by `article-wash-html'. Index: mm-view.el diff -u gnus/lisp/mm-view.el:7.60 gnus/lisp/mm-view.el:7.61 --- mm-view.el:7.60 Thu Dec 4 02:58:21 2008 +++ mm-view.el Thu Dec 4 11:53:38 2008 @@ -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 ()