diff lisp/simple.el @ 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 8fef255fe6b3
children 569c0798fb72
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)))