changeset 12708:1a81e79198c6

(do-auto-fill): Handle adaptive-fill-regexp.
author Richard M. Stallman <rms@gnu.org>
date Fri, 28 Jul 1995 02:38:16 +0000
parents 06608e9272b5
children a3d74b20e0e2
files lisp/simple.el
diffstat 1 files changed, 22 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/simple.el	Fri Jul 28 00:36:18 1995 +0000
+++ b/lisp/simple.el	Fri Jul 28 02:38:16 1995 +0000
@@ -2300,7 +2300,8 @@
   "*Regexp to match lines which should not be auto-filled.")
 
 (defun do-auto-fill ()
-  (let (fc justify bol give-up)
+  (let (fc justify bol give-up
+	   (fill-prefix fill-prefix))
     (if (or (not (setq justify (current-justification)))
 	    (null (setq fc (current-fill-column)))
 	    (and (eq justify 'left)
@@ -2312,6 +2313,26 @@
 	nil ;; Auto-filling not required
       (if (memq justify '(full center right))
 	  (save-excursion (unjustify-current-line)))
+
+      ;; Choose a fill-prefix automatically.
+      (if (and adaptive-fill-mode
+	       (or (null fill-prefix) (string= fill-prefix "")))
+	  (let (start end)
+	    (save-excursion
+	      (end-of-line)
+	      (setq end (point))
+	      (beginning-of-line)
+	      (setq start (point))
+	      (move-to-left-margin)
+	      ;; Don't do it if this line is a paragraph-starter line
+	      ;; because then the next line will probably also become one.
+	      ;; In text mode, when the user indents the first line of a
+	      ;; paragraph, we don't want all the lines to be indented.
+	      (and (not (looking-at paragraph-start))
+		   (re-search-forward adaptive-fill-regexp end t)
+		   (setq fill-prefix
+			 (buffer-substring-no-properties start (point)))))))
+
       (while (and (not give-up) (> (current-column) fc))
 	  ;; Determine where to split the line.
 	  (let ((fill-point