From: Lars Magne Ingebrigtsen Date: Sun, 5 Jan 2014 10:23:35 +0000 (+0100) Subject: Make shr do line filling better when encountering very long words X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~62 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3d95a0f45aef361c8d22f14017a655a9f1131a81;p=emacs.git Make shr do line filling better when encountering very long words (shr-insert): If we have a word that's longer than `shr-width', break after it anyway. Otherwise we'll do no breaking once we get such a long word. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 86064cecf98..3b1e0451d4e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -2,6 +2,9 @@ * net/shr.el (shr-descend): Don't bug out if the anchor is empty (bug#16285). + (shr-insert): If we have a word that's longer than `shr-width', + break after it anyway. Otherwise we'll do no breaking once we get + such a long word. 2014-01-05 Kenjiro NAKAYAMA diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 77ebf474bc1..32715b18397 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -475,7 +475,13 @@ size, and full-buffer size." (when (> shr-indentation 0) (shr-indent)) (end-of-line)) - (insert " "))) + (if (<= (current-column) shr-width) + (insert " ") + ;; In case we couldn't get a valid break point (because of a + ;; word that's longer than `shr-width'), just break anyway. + (insert "\n") + (when (> shr-indentation 0) + (shr-indent))))) (unless (string-match "[ \t\r\n ]\\'" text) (delete-char -1)))))