emacs-diffs
[Top][All Lists]
Advanced

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

master 7222e97: Fix problem with spurious extra paragraphs in shr


From: Lars Ingebrigtsen
Subject: master 7222e97: Fix problem with spurious extra paragraphs in shr
Date: Sat, 19 Sep 2020 13:11:22 -0400 (EDT)

branch: master
commit 7222e975be8d3d128086ed49506aa5bd8fccfae5
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Fix problem with spurious extra paragraphs in shr
    
    * lisp/net/shr.el (shr-ensure-paragraph): Don't regard <div
    id=foo></div> (empty placeholders) as occupying any space (bug#43510).
---
 lisp/net/shr.el | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 6517596..1f53bc4 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -555,7 +555,7 @@ size, and full-buffer size."
          ;; If the element was empty, we don't have anything to put the
          ;; anchor on.  So just insert a dummy character.
          (when (= start (point))
-            (insert ?*)
+            (insert ? )
             (put-text-property (1- (point)) (point) 'display ""))
           (put-text-property start (1+ start) 'shr-target-id id))
        ;; If style is set, then this node has set the color.
@@ -932,6 +932,22 @@ size, and full-buffer size."
               (looking-at " *$")))
        ;; We're already at a new paragraph; do nothing.
        )
+       ((and (not (bolp))
+             (save-excursion
+               (beginning-of-line)
+               (looking-at " *$"))
+            (save-excursion
+              (forward-line -1)
+              (looking-at " *$"))
+             ;; Check all chars on the current line and see whether
+             ;; they're all placeholders.
+             (cl-loop for pos from (line-beginning-position) upto (1- (point))
+                      unless (get-text-property pos 'shr-target-id)
+                      return nil
+                      finally return t))
+       ;; We have some invisible markers from <div id="foo"></div>;
+       ;; do nothing.
+       )
        ((and prefix
             (= prefix (- (point) (line-beginning-position))))
        ;; Do nothing; we're at the start of a <li>.



reply via email to

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