From: Lars Magne Ingebrigtsen Date: Sun, 20 Mar 2016 12:43:42 +0000 (+0100) Subject: Fix

and

newlines with or without
  • in shr X-Git-Tag: emacs-25.0.93~89^2~40 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/52ba24bdd913f6be8318c34b281c7ad727dee6ad Fix

    and

    newlines with or without
  • in shr * lisp/net/shr.el (shr-ensure-newline): Respect that we're in a
  • , 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
    shouldn't introduce a paragraph, but a new line. (cherry picked from commit 292921facaff2f02ac4e8602c1f7ecbdcfe7ef45) Backport: --- diff --git a/lisp/net/shr.el b/lisp/net/shr.el index e943132533..900b8ec3f5 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -783,8 +783,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) @@ -812,6 +817,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")))))) @@ -1206,7 +1215,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))