emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 10a5a05: * lisp/net/shr.el (shr-tag-li): Speed up r


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 10a5a05: * lisp/net/shr.el (shr-tag-li): Speed up rendering pages with lots of <ul>
Date: Fri, 13 Feb 2015 04:51:33 +0000

branch: master
commit 10a5a054ac7b1767623ed7e7f3ff5d7ae4ffe906
Author: Lars Magne Ingebrigtsen <address@hidden>
Commit: Lars Magne Ingebrigtsen <address@hidden>

    * lisp/net/shr.el (shr-tag-li): Speed up rendering pages with lots of <ul>
---
 lisp/ChangeLog  |    5 +++++
 lisp/net/shr.el |   11 ++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ff2755d..8393009 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-13  Lars Ingebrigtsen  <address@hidden>
+
+       * net/shr.el (shr-tag-li): Speed up rendering pages with lots of
+       <ul>.
+
 2015-02-12  Oleh Krehel  <address@hidden>
 
        * progmodes/gdb-mi.el (gdb-display-io-nopopup): New defcustom.
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index cf35a12..f6a390e 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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]