]> git.eshelyaron.com Git - emacs.git/commitdiff
(fill-region-as-paragraph): Don't find adaptive-fill-regexp
authorRichard M. Stallman <rms@gnu.org>
Wed, 2 Aug 1995 18:36:20 +0000 (18:36 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 2 Aug 1995 18:36:20 +0000 (18:36 +0000)
on first line of paragraph if it's a paragraph-separate line.
Don't look past the intended line.
(adaptive-fill-function): New variable.
(fill-region-as-paragraph): Use it.
(colon-double-space): New variable.
(canonically-space-region): Put two spaces after colon if necessary.

lisp/textmodes/fill.el

index a384125db9088c7c605a1634974ba1cd8656fc80..991ca8a19331b6ff213a5689f5a480efc7d01f7d 100644 (file)
@@ -37,6 +37,9 @@ A value of nil means that any change in indentation starts a new paragraph.")
 (defconst sentence-end-double-space t
   "*Non-nil means a single space does not end a sentence.")
 
+(defconst colon-double-space nil
+  "*Non-nil means put two spaces after a colon when filling.")
+
 (defvar fill-paragraph-function nil
   "Mode-specific function to fill a paragraph.")
 
@@ -64,6 +67,10 @@ on the second line of a paragraph is used as the standard indentation
 for the paragraph.  If the paragraph has just one line, the indentation
 is taken from that line.")
 
+(defun adaptive-fill-function nil
+  "*Function to call to choose a fill prefix for a paragraph.
+This function is used when `adaptive-fill-regexp' does not match.")
+
 (defun current-fill-column ()
   "Return the fill-column to use for this line.
 The fill-column to use for a buffer is stored in the variable `fill-column',
@@ -111,6 +118,8 @@ Remove indentation from each line."
            (skip-chars-backward " ]})\"'")
            (cond ((and sentence-end-double-space
                        (memq (preceding-char) '(?. ?? ?!)))  2)
+                 ((and colon-double-space
+                       (= (preceding-char) ?:))  2)
                  ((char-equal (preceding-char) ?\n)  0)
                  (t 1))))
        (match-end 0)))
@@ -187,12 +196,15 @@ space does not end a sentence, so don't break a line there."
              (if (>= (point) to)
                  (goto-char firstline)))
            (move-to-left-margin)
-           (let ((start (point)))
-             (re-search-forward adaptive-fill-regexp)
-             (setq fill-prefix (buffer-substring start (point)))
-             (set-text-properties 0 (length fill-prefix) nil
-                                  fill-prefix))
-           ))
+           (let ((start (point))
+                 (eol (save-excursion (end-of-line) (point)))
+                 temp)
+             (if (not (looking-at paragraph-start))
+                 (cond ((re-search-forward adaptive-fill-regexp nil t)
+                        (setq fill-prefix
+                              (buffer-substring-no-properties start (point))))
+                       ((setq temp (funcall adaptive-fill-function))
+                        (setq fill-prefix temp)))))))
 
       (save-restriction
        (goto-char from)