]> code.delx.au - gnu-emacs/blobdiff - lisp/international/characters.el
-
[gnu-emacs] / lisp / international / characters.el
index 310384aa969884e6ee49febbbf65b4227108ad6a..58695654665ec6e43536a03c48c0e36f05c2cd42 100644 (file)
@@ -1,6 +1,6 @@
 ;;; characters.el --- set syntax and category for multibyte characters
 
-;; Copyright (C) 1997, 2000-2015 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000-2016 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
@@ -290,6 +290,7 @@ with L, LRE, or LRO Unicode bidi character type.")
     (map-charset-chars #'modify-category-entry (car charsets) ?b)
     (setq charsets (cdr charsets))))
 (modify-category-entry '(#x600 . #x6ff) ?b)
+(modify-category-entry '(#x8a0 . #x8ff) ?b)
 (modify-category-entry '(#xfb50 . #xfdff) ?b)
 (modify-category-entry '(#xfe70 . #xfefe) ?b)
 
@@ -496,7 +497,7 @@ with L, LRE, or LRO Unicode bidi character type.")
                    table)))
 
 ;; Load uni-mirrored.el and uni-brackets.el if available, so that they
-;; get dumped into Emacs.  This allows to start Emacs with
+;; get dumped into Emacs.  This allows starting Emacs with
 ;; force-load-messages in ~/.emacs, and avoid infinite recursion in
 ;; bidi_initialize, which needs to load uni-mirrored.el and
 ;; uni-brackets.el in order to display the "Loading" messages.
@@ -649,6 +650,69 @@ with L, LRE, or LRO Unicode bidi character type.")
         (set-case-syntax-pair c (1+ c) tbl))
     (setq c (1+ c)))
 
+  ;; Latin Extended-C
+  (setq c #x2C60)
+  (while (<= c #x2C7F)
+    (modify-category-entry c ?l)
+    (setq c (1+ c)))
+
+  (let ((pair-ranges '((#x2C60 . #x2C61)
+                       (#x2C67 . #x2C6C)
+                       (#x2C72 . #x2C73)
+                       (#x2C75 . #x2C76))))
+    (dolist (elt pair-ranges)
+      (let ((from (car elt)) (to (cdr elt)))
+        (while (< from to)
+          (set-case-syntax-pair from (1+ from) tbl)
+          (setq from (+ from 2))))))
+
+  (set-case-syntax-pair ?Ɫ ?ɫ tbl)
+  (set-case-syntax-pair ?Ᵽ ?ᵽ tbl)
+  (set-case-syntax-pair ?Ɽ ?ɽ tbl)
+  (set-case-syntax-pair ?Ɑ ?ɑ tbl)
+  (set-case-syntax-pair ?Ɱ ?ɱ tbl)
+  (set-case-syntax-pair ?Ɐ ?ɐ tbl)
+  (set-case-syntax-pair ?Ɒ ?ɒ tbl)
+  (set-case-syntax-pair ?Ȿ ?ȿ tbl)
+  (set-case-syntax-pair ?Ɀ ?ɀ tbl)
+
+  ;; Latin Extended-D
+  (setq c #xA720)
+  (while (<= c #xA7FF)
+    (modify-category-entry c ?l)
+    (setq c (1+ c)))
+
+  (let ((pair-ranges '((#xA722 . #xA72F)
+                       (#xA732 . #xA76F)
+                       (#xA779 . #xA77C)
+                       (#xA77E . #xA787)
+                       (#xA78B . #xA78E)
+                       (#xA790 . #xA793)
+                       (#xA796 . #xA7A9)
+                       (#xA7B4 . #xA7B7))))
+    (dolist (elt pair-ranges)
+      (let ((from (car elt)) (to (cdr elt)))
+        (while (< from to)
+          (set-case-syntax-pair from (1+ from) tbl)
+          (setq from (+ from 2))))))
+
+  (set-case-syntax-pair ?Ᵹ ?ᵹ tbl)
+  (set-case-syntax-pair ?Ɦ ?ɦ tbl)
+  (set-case-syntax-pair ?Ɜ ?ɜ tbl)
+  (set-case-syntax-pair ?Ɡ ?ɡ tbl)
+  (set-case-syntax-pair ?Ɬ ?ɬ tbl)
+  (set-case-syntax-pair ?Ɪ ?ɪ tbl)
+  (set-case-syntax-pair ?Ʞ ?ʞ tbl)
+  (set-case-syntax-pair ?Ʇ ?ʇ tbl)
+  (set-case-syntax-pair ?Ʝ ?ʝ tbl)
+  (set-case-syntax-pair ?Ꭓ ?ꭓ tbl)
+
+  ;; Latin Extended-E
+  (setq c #xAB30)
+  (while (<= c #xAB64)
+    (modify-category-entry c ?l)
+    (setq c (1+ c)))
+
   ;; Greek
   (modify-category-entry '(#x0370 . #x03ff) ?g)
   (setq c #x0370)
@@ -724,14 +788,32 @@ with L, LRE, or LRO Unicode bidi character type.")
     (and (zerop (% c 2))
         (or (and (>= c #x0460) (<= c #x0480))
             (and (>= c #x048c) (<= c #x04be))
-            (and (>= c #x04d0) (<= c #x04f4)))
+            (and (>= c #x04d0) (<= c #x052e)))
         (set-case-syntax-pair c (1+ c) tbl))
     (setq c (1+ c)))
   (set-case-syntax-pair ?Ӂ ?ӂ tbl)
   (set-case-syntax-pair ?Ӄ ?ӄ tbl)
   (set-case-syntax-pair ?Ӈ ?ӈ tbl)
   (set-case-syntax-pair ?Ӌ ?ӌ tbl)
-  (set-case-syntax-pair ?Ӹ ?ӹ tbl)
+
+  (modify-category-entry '(#xA640 . #xA69F) ?y)
+  (setq c #xA640)
+  (while (<= c #xA66C)
+    (set-case-syntax-pair c (+ c 1) tbl)
+    (setq c (+ c 2)))
+  (setq c #xA680)
+  (while (<= c #xA69A)
+    (set-case-syntax-pair c (+ c 1) tbl)
+    (setq c (+ c 2)))
+
+  ;; Georgian
+  (setq c #x10A0)
+  (while (<= c #x10CD)
+    (set-case-syntax-pair c (+ c #x1C60) tbl)
+    (setq c (1+ c)))
+
+  ;; Cyrillic Extended-C
+  (modify-category-entry '(#x1C80 . #x1C8F) ?y)
 
   ;; general punctuation
   (setq c #x2000)
@@ -792,6 +874,12 @@ with L, LRE, or LRO Unicode bidi character type.")
     (modify-category-entry (+ c 26) ?l)
     (setq c (1+ c)))
 
+  ;; Glagolitic
+  (setq c #x2C00)
+  (while (<= c #x2C2E)
+    (set-case-syntax-pair c (+ c 48) tbl)
+    (setq c (1+ c)))
+
   ;; Coptic
   (let ((pair-ranges '((#x2C80 . #x2CE2)
                       (#x2CEB . #x2CF2))))
@@ -814,6 +902,36 @@ with L, LRE, or LRO Unicode bidi character type.")
     (modify-category-entry (+ c #x20) ?l)
     (setq c (1+ c)))
 
+  ;; Deseret
+  (setq c #x10400)
+  (while (<= c #x10427)
+    (set-case-syntax-pair c (+ c 28) tbl)
+    (setq c (1+ c)))
+
+  ;; Osage
+  (setq c #x104B0)
+  (while (<= c #x104D3)
+    (set-case-syntax-pair c (+ c 40) tbl)
+    (setq c (1+ c)))
+
+  ;; Old Hungarian
+  (setq c #x10c80)
+  (while (<= c #x10cb2)
+    (set-case-syntax-pair c (+ c #x40) tbl)
+    (setq c (1+ c)))
+
+  ;; Warang Citi
+  (setq c #x118a0)
+  (while (<= c #x118bf)
+    (set-case-syntax-pair c (+ c #x20) tbl)
+    (setq c (1+ c)))
+
+  ;; Adlam
+  (setq c #x1e900)
+  (while (<= c #x1e921)
+    (set-case-syntax-pair c (+ c #x22) tbl)
+    (setq c (1+ c)))
+
   ;; Combining diacritics
   (modify-category-entry '(#x300 . #x362) ?^)
   ;; Combining marks
@@ -1082,7 +1200,40 @@ with L, LRE, or LRO Unicode bidi character type.")
 
 ;; 2: East Asian Wide and Full-width characters.
 (let ((l '((#x1100 . #x115F)
+           (#x231A . #x231B)
           (#x2329 . #x232A)
+           (#x23E9 . #x23EC)
+           (#x23F0 . #x23F0)
+           (#x23F3 . #x23F3)
+           (#x25FD . #x25FE)
+           (#x2614 . #x2615)
+           (#x2648 . #x2653)
+           (#x267F . #x267F)
+           (#x2693 . #x2693)
+           (#x26A1 . #x26A1)
+           (#x26AA . #x26AB)
+           (#x26BD . #x26BE)
+           (#x26C4 . #x26C5)
+           (#x26CE . #x26CE)
+           (#x26D4 . #x26D4)
+           (#x26EA . #x26EA)
+           (#x26F2 . #x26F3)
+           (#x26F5 . #x26F5)
+           (#x26FA . #x26FA)
+           (#x26FD . #x26FD)
+           (#x2705 . #x2705)
+           (#x270A . #x270B)
+           (#x2728 . #x2728)
+           (#x274C . #x274C)
+           (#x274E . #x274E)
+           (#x2753 . #x2755)
+           (#x2757 . #x2757)
+           (#x2795 . #x2797)
+           (#x27B0 . #x27B0)
+           (#x27BF . #x27BF)
+           (#x2B1B . #x2B1C)
+           (#x2B50 . #x2B50)
+           (#x2B55 . #x2B55)
           (#x2E80 . #x303E)
           (#x3040 . #xA4CF)
           (#xAC00 . #xD7A3)
@@ -1090,6 +1241,46 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#xFE30 . #xFE6F)
           (#xFF01 . #xFF60)
           (#xFFE0 . #xFFE6)
+           (#x16FE0 . #x16FE0)
+           (#x17000 . #x187EC)
+           (#x18800 . #x18AF2)
+           (#x1F18E . #x1F18E)
+           (#x1F191 . #x1F19A)
+           (#x1F200 . #x1F202)
+           (#x1F210 . #x1F23B)
+           (#x1F300 . #x1F320)
+           (#x1F32D . #x1F335)
+           (#x1F337 . #x1F37C)
+           (#x1F37E . #x1F393)
+           (#x1F3A0 . #x1F3CA)
+           (#x1F3CF . #x1F3D3)
+           (#x1F3E0 . #x1F3F0)
+           (#x1F3F4 . #x1F3F4)
+           (#x1F3F8 . #x1F3FA)
+           (#x1F3FB . #x1F3FF)
+           (#x1F440 . #x1F440)
+           (#x1F442 . #x1F4FC)
+           (#x1F4FF . #x1F53D)
+           (#x1F54B . #x1F54E)
+           (#x1F550 . #x1F567)
+           (#x1F57A . #x1F57A)
+           (#x1F595 . #x1F596)
+           (#x1F5A4 . #x1F5A4)
+           (#x1F5FB . #x1F5FF)
+           (#x1F600 . #x1F64F)
+           (#x1F680 . #x1F6C5)
+           (#x1F6CC . #x1F6CC)
+           (#x1F6D0 . #x1F6D2)
+           (#x1F6EB . #x1F6EC)
+           (#x1F6F4 . #x1F6F6)
+           (#x1F910 . #x1F91E)
+           (#x1F920 . #x1F927)
+           (#x1F930 . #x1F930)
+           (#x1F933 . #x1F93E)
+           (#x1F940 . #x1F94B)
+           (#x1F950 . #x1F95E)
+           (#x1F980 . #x1F991)
+           (#x1F9C0 . #x1F9C0)
           (#x20000 . #x2FFFF)
           (#x30000 . #x3FFFF))))
   (dolist (elt l)
@@ -1206,10 +1397,10 @@ Setup char-width-table appropriate for non-CJK language environment."
     (aset char-acronym-table i (car c0-acronyms))
     (setq c0-acronyms (cdr c0-acronyms))))
 
-(let ((c1-acronyms '("XXX" "XXX" "BPH" "NBH" "IND" "NEL" "SSA" "ESA"
+(let ((c1-acronyms '("PAD" "HOP" "BPH" "NBH" "IND" "NEL" "SSA" "ESA"
                     "HTS" "HTJ" "VTS" "PLD" "PLU" "R1"  "SS2" "SS1"
                     "DCS" "PU1" "PU2" "STS" "CCH" "MW"  "SPA" "EPA"
-                    "SOS" "XXX" "SC1" "CSI" "ST"  "OSC" "PM"  "APC")))
+                    "SOS" "SGCI" "SC1" "CSI" "ST"  "OSC" "PM"  "APC")))
   (dotimes (i 32)
     (aset char-acronym-table (+ #x0080 i) (car c1-acronyms))
     (setq c1-acronyms (cdr c1-acronyms))))