- (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))