Mercurial > emacs
changeset 5769:95188ebbb0bc
(do-auto-fill): Don't break line at period-single-space.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 04 Feb 1994 04:37:44 +0000 |
parents | ab11e2af95ef |
children | 92dd602768d2 |
files | lisp/simple.el |
diffstat | 1 files changed, 29 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Fri Feb 04 01:18:01 1994 +0000 +++ b/lisp/simple.el Fri Feb 04 04:37:44 1994 +0000 @@ -1943,17 +1943,39 @@ (save-excursion (beginning-of-line) (looking-at auto-fill-inhibit-regexp))) (while (and (not give-up) (> (current-column) fill-column)) + ;; Determine where to split the line. (let ((fill-point - (let ((opoint (point))) + (let ((opoint (point)) + bounce + (first t)) (save-excursion (move-to-column (1+ fill-column)) - (skip-chars-backward "^ \t\n") - (if (bolp) - (re-search-forward "[ \t]" opoint t)) - (skip-chars-backward " \t") + ;; Move back to a word boundary. + (while (or first + ;; If this is after period and a single space, + ;; move back once more--we don't want to break + ;; the line there and make it look like a + ;; sentence end. + (and (not (bobp)) + (not bounce) + sentence-end-double-space + (save-excursion (forward-char -1) + (and (looking-at "\\. ") + (not (looking-at "\\. ")))))) + (setq first nil) + (skip-chars-backward "^ \t\n") + ;; If we find nowhere on the line to break it, + ;; break after one word. Set bounce to t + ;; so we will not keep going in this while loop. + (if (bolp) + (progn + (re-search-forward "[ \t]" opoint t) + (setq bounce t))) + (skip-chars-backward " \t")) + ;; Let fill-point be set to the place where we end up. (point))))) - ;; If there is a space on the line before fill-point, - ;; and nonspaces precede it, break the line there. + ;; If that place is not the beginning of the line, + ;; break the line there. (if (save-excursion (goto-char fill-point) (not (bolp)))