XEmacs 21.4.4 "Artificial Intelligence".
[chise/xemacs-chise.git.1] / lisp / mule / kinsoku.el
index 94cf414..c6f342d 100644 (file)
 ;; kinsoku ascii
 (loop for char in (string-to-char-list kinsoku-ascii-bol)
       do (modify-category-entry char ?s))
-(loop for char in kinsoku-ascii-eol
+(loop for char in (string-to-char-list kinsoku-ascii-eol)
       do (modify-category-entry char ?e))
 ;; kinsoku-jis
 (loop for char in (string-to-char-list kinsoku-jis-bol)
 (loop for char in (string-to-char-list kinsoku-jis-eol)
       do (modify-category-entry char ?e))
 ;; kinsoku-gb
-(loop for char in kinsoku-gb-bol
+(loop for char in (string-to-char-list kinsoku-gb-bol)
       do (modify-category-entry char ?s))
-(loop for char in kinsoku-gb-eol
+(loop for char in (string-to-char-list kinsoku-gb-eol)
       do (modify-category-entry char ?e))
 ;; kinsoku-big5
-(loop for char in kinsoku-big5-bol
+(loop for char in (string-to-char-list kinsoku-big5-bol)
       do (modify-category-entry char ?s))
-(loop for char in kinsoku-big5-eol
+(loop for char in (string-to-char-list kinsoku-big5-eol)
       do (modify-category-entry char ?e))
 
 (defun kinsoku-bol-p ()
 Uses category \'s\' to check.
 point\e$B$G2~9T$9$k$H9TF,6XB'$K?($l$k$+$I$&$+$r$+$($9!#\e(B
 \e$B9TF,6XB'J8;z$O\e(B\'s\'\e$B$N\e(Bcategory\e$B$G;XDj$9$k!#\e(B"
-  (let ((ch (char-after)))
-    (if (and ch
+  (let ((before (char-before))
+       (after (char-after)))
+    (if (and after
             (or
-             (and kinsoku-ascii (char-in-category-p ch ?a))
-             (and kinsoku-jis (char-in-category-p ch ?j))
-             (and kinsoku-gb (char-in-category-p ch ?c))
-             (and kinsoku-big5 (char-in-category-p ch ?t))))
-       (char-in-category-p ch ?s)
+             (and kinsoku-ascii (char-in-category-p after ?a))
+             (and kinsoku-jis (or (char-in-category-p after ?j)
+                                  (and before
+                                       (char-in-category-p before ?j))))
+             (and kinsoku-gb (or (char-in-category-p after ?c)
+                                 (and before
+                                      (char-in-category-p before ?c))))
+             (and kinsoku-big5 (or (char-in-category-p after ?t)
+                                   (and before
+                                        (char-in-category-p before ?t))))))
+       (char-in-category-p after ?s)
       nil)))
 
 (defun kinsoku-eol-p ()
@@ -210,14 +217,21 @@ point\e$B$G2~9T$9$k$H9TF,6XB'$K?($l$k$+$I$&$+$r$+$($9!#\e(B
 Uses category \'e\' to check.
 point\e$B$G2~9T$9$k$H9TKv6XB'$K?($l$k$+$I$&$+$r$+$($9!#\e(B
 \e$B9TKv6XB'J8;z$O\e(B\'s\'\e$B$N\e(Bcategory\e$B$G;XDj$9$k!#\e(B"
-  (let ((ch (char-before)))
-    (if (and ch
+  (let ((before (char-before))
+       (after (char-after)))
+    (if (and before
             (or
-             (and kinsoku-ascii (char-in-category-p ch ?a))
-             (and kinsoku-jis (char-in-category-p ch ?j))
-             (and kinsoku-gb (char-in-category-p ch ?c))
-             (and kinsoku-big5 (char-in-category-p ch ?t))))
-       (char-in-category-p ch ?e)
+             (and kinsoku-ascii (char-in-category-p before ?a))
+             (and kinsoku-jis (or (char-in-category-p before ?j)
+                                  (and after
+                                       (char-in-category-p after ?j))))
+             (and kinsoku-gb (or (char-in-category-p before ?c)
+                                 (and after
+                                      (char-in-category-p after ?c))))
+             (and kinsoku-big5 (or (char-in-category-p before ?t)
+                                   (and after
+                                        (char-in-category-p after ?t))))))
+       (char-in-category-p before ?e)
       nil)))
 
 (defvar kinsoku-extend-limit nil