summaryrefslogtreecommitdiff
path: root/lisp/simple.el
diff options
context:
space:
mode:
authorSamuel Freilich <sfreilich@google.com>2017-08-23 13:40:45 -0400
committerNoam Postavsky <npostavs@gmail.com>2017-08-30 20:10:36 -0400
commitcda26e64621d71c6a797f694418d844a621998be (patch)
tree9ac729275eb1129bacb340ba849d84ffc4eb3a46 /lisp/simple.el
parent160295867de98241a16f2ede93da7e825ed4406b (diff)
downloademacs-cda26e64621d71c6a797f694418d844a621998be.tar.gz
Do not split line before width of fill-prefix
When auto-filling a paragraph, don't split a line before the width of the fill-prefix, creating a subsequent line that is as long or longer (Bug#20774). * lisp/simple.el (do-auto-fill): Only consider break-points that are later in the line than the width of the fill-prefix. This is a more general solution than the previous logic, which only skipped over the exact fill-prefix. The fill-prefix doesn't necessarily match the prefix of the first line of a paragraph in adaptive-fill-mode.
Diffstat (limited to 'lisp/simple.el')
-rw-r--r--lisp/simple.el27
1 files changed, 12 insertions, 15 deletions
diff --git a/lisp/simple.el b/lisp/simple.el
index 13cfa3487da..27990bb6611 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -7151,18 +7151,18 @@ Returns t if it really did any work."
(setq fill-prefix prefix))))
(while (and (not give-up) (> (current-column) fc))
- ;; Determine where to split the line.
- (let* (after-prefix
- (fill-point
- (save-excursion
- (beginning-of-line)
- (setq after-prefix (point))
- (and fill-prefix
- (looking-at (regexp-quote fill-prefix))
- (setq after-prefix (match-end 0)))
- (move-to-column (1+ fc))
- (fill-move-to-break-point after-prefix)
- (point))))
+ ;; Determine where to split the line.
+ (let ((fill-point
+ (save-excursion
+ (beginning-of-line)
+ ;; Don't split earlier in the line than the length of the
+ ;; fill prefix, since the resulting line would be longer.
+ (when fill-prefix
+ (move-to-column (string-width fill-prefix)))
+ (let ((after-prefix (point)))
+ (move-to-column (1+ fc))
+ (fill-move-to-break-point after-prefix)
+ (point)))))
;; See whether the place we found is any good.
(if (save-excursion
@@ -7170,9 +7170,6 @@ Returns t if it really did any work."
(or (bolp)
;; There is no use breaking at end of line.
(save-excursion (skip-chars-forward " ") (eolp))
- ;; It is futile to split at the end of the prefix
- ;; since we would just insert the prefix again.
- (and after-prefix (<= (point) after-prefix))
;; Don't split right after a comment starter
;; since we would just make another comment starter.
(and comment-start-skip