]> git.eshelyaron.com Git - emacs.git/commitdiff
(kinsoku-longer, kinsoku-shorter): Do not choose a
authorKenichi Handa <handa@m17n.org>
Fri, 29 Aug 2003 12:10:48 +0000 (12:10 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 29 Aug 2003 12:10:48 +0000 (12:10 +0000)
line break position in the middle of a non-kinsoku (e.g. latin)
word, making it skip until either a space or a character with
category "|".
(kinsoku-longer): Test for end of buffer.

lisp/ChangeLog
lisp/international/kinsoku.el

index 0ed8576d53750898a5135b1cb829975507287342..72d91ce023b89ab7516542779a5e4361ae93af7e 100644 (file)
@@ -1,3 +1,11 @@
+2003-08-29  Thierry Emery <thierry.emery@club-internet.fr>  (tiny change)
+
+       * kinsoku.el (kinsoku-longer, kinsoku-shorter): Do not choose a
+       line break position in the middle of a non-kinsoku (e.g. latin)
+       word, making it skip until either a space or a character with
+       category "|".
+       (kinsoku-longer): Test for end of buffer.
+
 2003-08-28  Eli Zaretskii  <eliz@elta.co.il>
 
        * mail/rmail.el (rmail-convert-to-babyl-format): Detect
index b551161a6f3c1e4cc0b3312a12e1fb42bbd41c60..f90c6442c0e69f9a524c1c42d0e33bac01987e6d 100644 (file)
@@ -121,11 +121,17 @@ The value 0 means there's no limitation.")
 
 ;; Try to resolve `kinsoku' restriction by making the current line longer.
 (defun kinsoku-longer ()
-  (let ((pos-and-column (save-excursion
-                         (forward-char 1)
-                         (while (aref (char-category-set (following-char)) ?>)
-                           (forward-char 1))
-                         (cons (point) (current-column)))))
+  (let ((pos-and-column
+        (save-excursion
+          (forward-char 1)
+          (while (and (not (eobp))
+                      (or (aref (char-category-set (following-char)) ?>)
+                          ;; protect non-kinsoku words
+                          (not (or (eq (preceding-char) ? )
+                                   (aref (char-category-set (preceding-char))
+                                         ?|)))))
+            (forward-char 1))
+          (cons (point) (current-column)))))
     (if (or (<= kinsoku-limit 0)
            (< (cdr pos-and-column) (+ (current-fill-column) kinsoku-limit)))
        (goto-char (car pos-and-column)))))
@@ -135,9 +141,14 @@ The value 0 means there's no limitation.")
 (defun kinsoku-shorter (linebeg)
   (let ((pos (save-excursion
               (forward-char -1)
-              (while (and (< linebeg (point))
-                          (or (aref (char-category-set (preceding-char)) ?<)
-                              (aref (char-category-set (following-char)) ?>)))
+              (while (and
+                      (< linebeg (point))
+                      (or (aref (char-category-set (preceding-char)) ?<)
+                          (aref (char-category-set (following-char)) ?>)
+                          ;; protect non-kinsoku words
+                          (not (or (eq (preceding-char) ? )
+                                   (aref (char-category-set (preceding-char))
+                                         ?|)))))
                 (forward-char -1))
               (point))))
     (if (< linebeg pos)