* egg-edep.el (egg-string-match-charset): More portable definition.
[elisp/tamago.git] / egg-edep.el
index 47a16c9..fc659f5 100644 (file)
       (next-single-property-change pos prop object))))
 
 (defun egg-string-match-charset (charset string &optional start)
-  (let ((cur-ct (category-table))
-       category)
-    (unwind-protect
-       (progn
-         (set-category-table (copy-category-table))
-         (setq category (get-unused-category))
-         (define-category category "")
-         (modify-category-entry (make-char charset) category)
-         (string-match (concat "\\c" (list category) "+") string start))
-      (set-category-table cur-ct))))
-
-(unless (egg-string-match-charset 'japanese-jisx0208 "\e$B!#\e(B")
-  (defun egg-string-match-charset (charset string &optional start)
-    (let (min max)
-      (if (= (charset-chars charset) 94)
-          (setq min 33 max 126)
-        (setq min 32 max 127))
-      (string-match (if (= (charset-dimension charset) 1)
-                        (concat "[" (list (make-char charset min))
-                                "-" (list (make-char charset max))
-                                "]+")
-                      (concat "[" (list (make-char charset min min))
-                              "-" (list (make-char charset max max))
-                              "]+"))
-                    string start))))
+  (eq charset (char-charset (aref string (or start 0)))))
+
+(defun egg-string-match-charset-end (charset string &optional start)
+  (let ((index (or start 0))
+       (str-len (length string)))
+    (while (and (< index str-len)
+               (eq charset (char-charset (aref string index))))
+      (setq index (1+ index)))
+    index))
 
 (provide 'egg-edep)