diff options
author | Lars Magne Ingebrigtsen <larsi@gnus.org> | 2015-02-13 15:51:23 +1100 |
---|---|---|
committer | Lars Magne Ingebrigtsen <larsi@gnus.org> | 2015-02-13 15:51:23 +1100 |
commit | 10a5a054ac7b1767623ed7e7f3ff5d7ae4ffe906 (patch) | |
tree | 99e4d0cab29e60076cf4c734add1a08fd8e20e94 | |
parent | 65563fd7714271582d5146c09202c0f7a0631fe5 (diff) | |
download | emacs-10a5a054ac7b1767623ed7e7f3ff5d7ae4ffe906.tar.gz |
* lisp/net/shr.el (shr-tag-li): Speed up rendering pages with lots of <ul>
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/net/shr.el | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ff2755df630..8393009c061 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2015-02-13 Lars Ingebrigtsen <larsi@gnus.org> + + * net/shr.el (shr-tag-li): Speed up rendering pages with lots of + <ul>. + 2015-02-12 Oleh Krehel <ohwoeowho@gmail.com> * progmodes/gdb-mi.el (gdb-display-io-nopopup): New defcustom. diff --git a/lisp/net/shr.el b/lisp/net/shr.el index cf35a1287d6..f6a390e4d0a 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -157,6 +157,7 @@ cid: URL as the argument.") (defvar shr-table-separator-pixel-width 0) (defvar shr-table-id nil) (defvar shr-current-font nil) +(defvar shr-internal-bullet nil) (defvar shr-map (let ((map (make-sparse-keymap))) @@ -216,6 +217,8 @@ DOM should be a parse tree as generated by (shr-table-id 0) (shr-warning nil) (shr-table-separator-pixel-width (shr-string-pixel-width "-")) + (shr-internal-bullet (cons shr-bullet + (shr-string-pixel-width shr-bullet))) (shr-internal-width (or (and shr-width (if (not shr-use-fonts) shr-width @@ -1408,11 +1411,13 @@ The preference is a float determined from `shr-prefer-media-type'." (prog1 (format "%d " shr-list-mode) (setq shr-list-mode (1+ shr-list-mode))) - shr-bullet))) + (car shr-internal-bullet))) + (width (if (numberp shr-list-mode) + (shr-string-pixel-width bullet) + (cdr shr-internal-bullet)))) (insert bullet) (shr-mark-fill start) - (let ((shr-indentation (+ shr-indentation - (shr-string-pixel-width bullet)))) + (let ((shr-indentation (+ shr-indentation width))) (put-text-property start (1+ start) 'shr-continuation-indentation shr-indentation) (put-text-property start (1+ start) 'shr-prefix-length (length bullet)) |