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).
This commit is contained in:
Lars Ingebrigtsen 2020-09-19 19:11:09 +02:00
parent 28ba879362
commit 7222e975be

View file

@ -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>.