1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

Fix another shr infloop in the filling code

(shr-find-fill-point): Off by one error in comparison with the
indentation.
This commit is contained in:
Lars Ingebrigtsen 2013-12-27 03:58:16 +01:00
parent ac5758d162
commit 24a6b65e90
2 changed files with 7 additions and 4 deletions

View File

@ -5,6 +5,8 @@
infloop.
(shr-insert): Fill repeatedly long texts, so that Japanese is
formatted correctly (bug#16263).
(shr-find-fill-point): Off by one error in comparison with the
indentation.
2013-12-26 João Távora <joaotavora@gmail.com>

View File

@ -478,7 +478,7 @@ size, and full-buffer size."
(backward-char 1))
(let ((bp (point))
failed)
(while (not (or (setq failed (< (current-column) shr-indentation))
(while (not (or (setq failed (<= (current-column) shr-indentation))
(eq (preceding-char) ? )
(eq (following-char) ? )
(shr-char-breakable-p (preceding-char))
@ -486,7 +486,8 @@ size, and full-buffer size."
(and (shr-char-kinsoku-bol-p (preceding-char))
(shr-char-breakable-p (following-char))
(not (shr-char-kinsoku-bol-p (following-char))))
(shr-char-kinsoku-eol-p (following-char))))
(shr-char-kinsoku-eol-p (following-char))
(bolp)))
(backward-char 1))
(if failed
;; There's no breakable point, so we give it up.
@ -508,7 +509,7 @@ size, and full-buffer size."
(while (and (not (memq (preceding-char) (list ?\C-@ ?\n ? )))
(shr-char-kinsoku-eol-p (preceding-char)))
(backward-char 1))
(when (setq failed (< (current-column) shr-indentation))
(when (setq failed (<= (current-column) shr-indentation))
;; There's no breakable point that doesn't violate kinsoku,
;; so we look for the second best position.
(while (and (progn
@ -528,7 +529,7 @@ size, and full-buffer size."
(not (memq (preceding-char) (list ?\C-@ ?\n ? )))
(or (shr-char-kinsoku-eol-p (preceding-char))
(shr-char-kinsoku-bol-p (following-char)))))))
(when (setq failed (< (current-column) shr-indentation))
(when (setq failed (<= (current-column) shr-indentation))
;; There's no breakable point that doesn't violate kinsoku,
;; so we go to the second best position.
(if (looking-at "\\(\\c<+\\)\\c<")