;; Unicode (mule-unicode-0100-24ff)
-(let ((c #x0100) (tbl (standard-case-table)))
- (while (<= c #x0233) ; Latin Extended-A, Latin Extended-B
+(let ((tbl (standard-case-table)) c)
+
+;; In some languages, U+0049 LATIN CAPITAL LETTER I and U+0131 LATIN
+;; SMALL LETTER DOTLESS I make a case pair, and so do U+0130 LATIN
+;; CAPITAL LETTER I WITH DOT ABOVE and U+0069 LATIN SMALL LETTER I.
+;; Thus we have to check language-environment to handle casing
+;; correctly. Currently only I<->i is available.
+
+;; case-syntax-pair's are not yet given for Latin Extendet-B
+
+ ;; Latin Extended-A, Latin Extended-B
+ (setq c #x0100)
+ (while (<= c #x0233)
(modify-category-entry (decode-char 'ucs c) ?l)
- (and (<= c #x0176)
+ (and (or (<= c #x012e)
+ (and (>= c #x014a) (<= c #x0177)))
(zerop (% c 2))
(set-case-syntax-pair
(decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl))
+ (and (>= c #x013a)
+ (<= c #x0148)
+ (zerop (% c 2))
+ (set-case-syntax-pair
+ (decode-char 'ucs (1- c)) (decode-char 'ucs c) tbl))
(setq c (1+ c)))
- (set-case-syntax-pair ?\e$,1!8\e(B ?\e,A\7f\e(B tbl)
+ (set-case-syntax-pair ?\e$,1 R\e(B ?\e$,1 S\e(B tbl)
+ (set-case-syntax-pair ?\e$,1 T\e(B ?\e$,1 U\e(B tbl)
+ (set-case-syntax-pair ?\e$,1 V\e(B ?\e$,1 W\e(B tbl)
+; (set-case-syntax-pair ?\e$,1!8\e(B ?\e,A\7f\e(B tbl) ; these two have different length!
(set-case-syntax-pair ?\e$,1!9\e(B ?\e$,1!:\e(B tbl)
(set-case-syntax-pair ?\e$,1!;\e(B ?\e$,1!<\e(B tbl)
(set-case-syntax-pair ?\e$,1!=\e(B ?\e$,1!>\e(B tbl)
- (setq c #x1e00) ; Latin Extended Additional
+ ;; Latin Extended Additional
+ (setq c #x1e00)
(while (<= c #x1ef9)
(modify-category-entry (decode-char 'ucs c) ?l)
(and (zerop (% c 2))
(decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl))
(setq c (1+ c)))
- (setq c #x0370) ; Greek
+ ;; Greek
+ (setq c #x0370)
(while (<= c #x03ff)
(modify-category-entry (decode-char 'ucs c) ?g)
(if (or (and (>= c #x0391) (<= c #x03a1))
(set-case-syntax-pair ?\e$,1&n\e(B ?\e$,1'M\e(B tbl)
(set-case-syntax-pair ?\e$,1&o\e(B ?\e$,1'N\e(B tbl)
- (setq c #x1f00) ; Greek Extended
+ ;; Greek Extended
+ (setq c #x1f00)
(while (<= c #x1fff)
(modify-category-entry (decode-char 'ucs c) ?g)
(and (<= (logand c #x000f) 7)
(set-case-syntax-pair ?\e$,1r[\e(B ?\e$,1q=\e(B tbl)
(set-case-syntax-pair ?\e$,1r\\e(B ?\e$,1rS\e(B tbl)
- (setq c #x0400) ; cyrillic
+ ;; cyrillic
+ (setq c #x0400)
(while (<= c #x04ff)
(modify-category-entry (decode-char 'ucs c) ?y)
(and (>= c #x0400)
(set-case-syntax-pair ?\e$,1*+\e(B ?\e$,1*,\e(B tbl)
(set-case-syntax-pair ?\e$,1*X\e(B ?\e$,1*Y\e(B tbl)
- (setq c #x2000) ; general punctuation
+ ;; general punctuation
+ (setq c #x2000)
(while (<= c #x200b)
(set-case-syntax c " " tbl)
(setq c (1+ c)))