]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix cases and syntaxes for mule-unicode-0100-24ff.
authorKenichi Handa <handa@m17n.org>
Wed, 13 Dec 2000 02:01:05 +0000 (02:01 +0000)
committerKenichi Handa <handa@m17n.org>
Wed, 13 Dec 2000 02:01:05 +0000 (02:01 +0000)
lisp/international/characters.el

index 2c55449ae84d85c909f67c1e27d3e444d6c56f93..163e550973ddbb8d3a2553d83b31803b90c79a5b 100644 (file)
 
 ;; 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)))