emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 292921f 5/5: Fix <p> and <div> newlines with or wit


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 292921f 5/5: Fix <p> and <div> newlines with or without <li> in shr
Date: Sun, 20 Mar 2016 12:43:50 +0000

branch: master
commit 292921facaff2f02ac4e8602c1f7ecbdcfe7ef45
Author: Lars Magne Ingebrigtsen <address@hidden>
Commit: Lars Magne Ingebrigtsen <address@hidden>

    Fix <p> and <div> newlines with or without <li> in shr
    
    * lisp/net/shr.el (shr-ensure-newline): Respect that we're in
    a <li>, if we are, and don't insert newlines there.
    (shr-ensure-paragraph): When mixing newlines and paragraph
    ensurements, don't insert too many blank lines.
    (shr-tag-div): A <div> shouldn't introduce a paragraph, but a
    new line.
---
 lisp/net/shr.el |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 0a7ea14..eae50a7 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -805,8 +805,13 @@ size, and full-buffer size."
         (url-expand-file-name url (concat (car base) (cadr base))))))
 
 (defun shr-ensure-newline ()
-  (unless (zerop (current-column))
-    (insert "\n")))
+  (unless (bobp)
+    (let ((prefix (get-text-property (line-beginning-position)
+                                    'shr-prefix-length)))
+      (unless (or (zerop (current-column))
+                  (and prefix
+                       (= prefix (- (point) (line-beginning-position)))))
+        (insert "\n")))))
 
 (defun shr-ensure-paragraph ()
   (unless (bobp)
@@ -834,6 +839,10 @@ size, and full-buffer size."
                                                    (line-end-position))
                       (line-end-position)))))
        (delete-region (match-beginning 0) (match-end 0)))
+       ;; We have a single blank line.
+       ((and (eolp) (bolp))
+        (insert "\n"))
+       ;; Insert new paragraph.
        (t
        (insert "\n\n"))))))
 
@@ -1247,7 +1256,7 @@ ones, in case fg and bg are nil."
   (shr-ensure-paragraph))
 
 (defun shr-tag-div (dom)
-  (shr-ensure-paragraph)
+  (shr-ensure-newline)
   (shr-generic dom)
   (shr-ensure-newline))
 



reply via email to

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