(while (< i len)
(if (= (aref chars i) ?-)
(setq i (1+ i)
- to (sref chars i))
- (setq ch (sref chars i)
+ to (aref chars i))
+ (setq ch (aref chars i)
to ch))
(while (<= ch to)
(modify-syntax-entry ch syntax)
(modify-category-entry ch category)
(setq ch (1+ ch)))
- (setq i (+ i (char-bytes to))))
+ (setq i (1+ i)))
(setq deflist (cdr deflist))))
;; Ethiopic character set
(modify-category-entry (make-char 'indian-2-column) ?I)
(modify-category-entry (make-char 'indian-1-column) ?I)
+(let ((deflist
+ '(;; chars syntax category
+ ("\e(5!"#\e(B" "w" ?7) ; vowel-modifying diacritical mark
+ ; chandrabindu, anuswar, visarga
+ ("\e(5$\e(B-\e(52\e(B" "w" ?1) ; base (independent) vowel
+ ("\e(53\e(B-\e(5X\e(B" "w" ?0) ; consonant
+ ("\e(5Z\e(B-\e(5g\e(B" "w" ?8) ; matra
+ ("\e(5q\e(B-\e(5z\e(B" "w" ?6) ; digit
+ ))
+ elm chars len syntax category to ch i)
+ (while deflist
+ (setq elm (car deflist))
+ (setq chars (car elm)
+ len (length chars)
+ syntax (nth 1 elm)
+ category (nth 2 elm)
+ i 0)
+ (while (< i len)
+ (if (= (aref chars i) ?-)
+ (setq i (1+ i)
+ to (aref chars i))
+ (setq ch (aref chars i)
+ to ch))
+ (while (<= ch to)
+ (modify-syntax-entry ch syntax)
+ (modify-category-entry ch category)
+ (setq ch (1+ ch)))
+ (setq i (1+ i)))
+ (setq deflist (cdr deflist))))
+
+
;; Japanese character set (JISX0201-kana, JISX0201-roman, JISX0208, JISX0212)
(modify-category-entry (make-char 'katakana-jisx0201) ?k)
(while (< i len)
(if (= (aref chars i) ?-)
(setq i (1+ i)
- to (sref chars i))
- (setq ch (sref chars i)
+ to (aref chars i))
+ (setq ch (aref chars i)
to ch))
(while (<= ch to)
(modify-syntax-entry ch syntax)
(modify-category-entry ch category)
(setq ch (1+ ch)))
- (setq i (+ i (char-bytes to))))
+ (setq i (1+ i)))
(setq deflist (cdr deflist))))
;; Thai character set (TIS620)
(while (< i len)
(if (= (aref chars i) ?-)
(setq i (1+ i)
- to (sref chars i))
- (setq ch (sref chars i)
+ to (aref chars i))
+ (setq ch (aref chars i)
to ch))
(while (<= ch to)
(modify-syntax-entry ch syntax)
(modify-category-entry ch category)
(setq ch (1+ ch)))
- (setq i (+ i (char-bytes to))))
+ (setq i (1+ i)))
(setq deflist (cdr deflist))))
;; Tibetan character set
(while (< i len)
(if (= (aref chars i) ?-)
(setq i (1+ i)
- to (sref chars i))
- (setq ch (sref chars i)
+ to (aref chars i))
+ (setq ch (aref chars i)
to ch))
(while (<= ch to)
(modify-syntax-entry ch syntax)
(modify-category-entry ch category)
(setq ch (1+ ch)))
- (setq i (+ i (char-bytes to))))
+ (setq i (1+ i)))
(setq deflist (cdr deflist))))
;; Vietnamese character set
(idx 0)
ch)
(while (< idx len)
- (setq ch (sref kinsoku-bol idx)
- idx (+ idx (char-bytes ch)))
+ (setq ch (aref kinsoku-bol idx)
+ idx (1+ idx))
(modify-category-entry ch ?>)))
;; Setting character category `<' for characters which should not be
(idx 0)
ch)
(while (< idx len)
- (setq ch (sref kinsoku-eol idx)
- idx (+ idx (char-bytes ch)))
+ (setq ch (aref kinsoku-eol idx)
+ idx (1+ idx))
(modify-category-entry ch ?<)))
;; Try to resolve `kinsoku' restriction by making the current line longer.