XEmacs 21.2.28 "Hermes".
[chise/xemacs-chise.git.1] / lisp / fill.el
index f76a017..a1eafa1 100644 (file)
@@ -33,7 +33,7 @@
 
 ;; 97/3/14 Jareth Hein (jhod@po.iijnet.or.jp) added functions for kinsoku (asian text
 ;; line break processing)
-;; 97/06/11 Steve Baur (steve@altair.xemacs.org) converted broken
+;; 97/06/11 Steve Baur (steve@xemacs.org) converted broken
 ;;  following-char/preceding-char calls to char-after/char-before.
 
 ;;; Code:
@@ -226,9 +226,10 @@ first line, insist it must match FIRST-LINE-REGEXP."
       ;; XEmacs change
       (if (not dont-skip-first)
          (forward-line 1))
-      (if (>= (point) to)
-         (goto-char firstline)
-       (setq at-second t))
+      (cond ((>= (point) to)
+            (goto-char firstline))
+           ((/= (point) from)
+            (setq at-second t)))
       (move-to-left-margin)
       ;; XEmacs change
       (let ((start (point))
@@ -236,7 +237,7 @@ first line, insist it must match FIRST-LINE-REGEXP."
            ;(eol (save-excursion (end-of-line) (point)))
            )
        (setq result
-             (if (not (looking-at paragraph-start))
+             (if (or dont-skip-first (not (looking-at paragraph-start)))
                  (cond ((and adaptive-fill-regexp (looking-at adaptive-fill-regexp))
                         (buffer-substring-no-properties start (match-end 0)))
                        (adaptive-fill-function (funcall adaptive-fill-function)))))
@@ -382,8 +383,9 @@ space does not end a sentence, so don't break a line there."
          (skip-chars-forward " \t")
          ;; Then change all newlines to spaces.
          ;;; 97/3/14 jhod: Kinsoku change
-         ;; Spacing is not necessary for charcters of no word-separater.
+         ;; Spacing is not necessary for characters of no word-separator.
          ;; The regexp word-across-newline is used for this check.
+         (defvar word-across-newline)
          (if (not (and (featurep 'mule)
                        (stringp word-across-newline)))
              (subst-char-in-region from (point-max) ?\n ?\ )
@@ -428,7 +430,8 @@ space does not end a sentence, so don't break a line there."
          ;; This is the actual filling loop.
          (let ((prefixcol 0) linebeg
                (re-break-point (if (featurep 'mule)
-                                   (concat "[ \n\t]\\|" word-across-newline)
+                                   (concat "[ \n\t]\\|" word-across-newline
+                                           ".\\|." word-across-newline)
                                  "[ \n\t]")))
            (while (not (eobp))
              (setq linebeg (point))
@@ -782,7 +785,7 @@ If the mark is not active, this applies to the current paragraph."
 
 ;; 97/3/14 jhod: This functions are added for Kinsoku support
 (defun find-space-insertable-point ()
- "Search backward for a permissable point for inserting justification spaces"
+ "Search backward for a permissible point for inserting justification spaces"
  (if (boundp 'space-insertable)
      (if (re-search-backward space-insertable nil t)
         (progn (forward-char 1)