# HG changeset patch # User Richard M. Stallman # Date 806899096 0 # Node ID 1a81e79198c66cc92faca7b3980b6e97bbc586c6 # Parent 06608e9272b5487b1a4de5f4298c28ff763f127c (do-auto-fill): Handle adaptive-fill-regexp. diff -r 06608e9272b5 -r 1a81e79198c6 lisp/simple.el --- 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