diff options
author | Samuel Freilich <sfreilich@google.com> | 2017-08-23 13:40:45 -0400 |
---|---|---|
committer | Noam Postavsky <npostavs@gmail.com> | 2017-08-30 20:10:36 -0400 |
commit | cda26e64621d71c6a797f694418d844a621998be (patch) | |
tree | 9ac729275eb1129bacb340ba849d84ffc4eb3a46 /lisp/simple.el | |
parent | 160295867de98241a16f2ede93da7e825ed4406b (diff) | |
download | emacs-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.el | 27 |
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 |