master a9d79796e25 1/2: Improve fontset setup for some scripts

Eli Zaretskii <[email protected]>
Newsgroups gmane.emacs.diffs
Message-ID <[email protected]>
branch: master
commit a9d79796e2524bee76284b4d5594c9501ed157f7
Author: Eli Zaretskii <[email protected]>
Commit: Eli Zaretskii <[email protected]>

    Improve fontset setup for some scripts
    
    * lisp/international/fontset.el (script-representative-chars)
    (setup-default-fontset): Add scripts which were mistakenly
    omitted.  Fix fontset setup for Syriac and N'ko scripts.  Add
    ol-onal.  More symbols supported by Symbola.
    
    * admin/unidata/blocks.awk: Special rules for U+FFFC and U+FFFD.
    Map Kanbun to han.  Map Vertical Forms to cjk-misc.
---
 admin/unidata/blocks.awk      | 13 ++++++
 lisp/international/fontset.el | 98 ++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 100 insertions(+), 11 deletions(-)

diff --git a/admin/unidata/blocks.awk b/admin/unidata/blocks.awk
index 477f0c725bd..5b4d9b388ea 100755
--- a/admin/unidata/blocks.awk
+++ b/admin/unidata/blocks.awk
@@ -64,6 +64,8 @@ BEGIN {
     alias["halfwidth and fullwidth forms"] = "cjk-misc"
     alias["yijing hexagram symbols"] = "cjk-misc"
     alias["common indic number forms"] = "north-indic-number"
+    alias["kanbun"] = "han"
+    alias["vertical forms"] = "cjk-misc"
 
     tohex["a"] = 10
     tohex["b"] = 11
@@ -160,6 +162,17 @@ FILENAME ~ "Blocks.txt" && /^[0-9A-F]/ {
 	end[i] = "33FF"
 	name[i] = "CJK Compatibility"
     }
+    else if (start[i] == "FFF0")
+    {
+	start[i] = "FFFC"
+	end[i] = "FFFD"
+	name[i] = "Replacement Symbols"
+	alt[i] = "symbol"
+	i++
+	start[i] = "FFFE"
+	end[i] = "FFFF"
+	name[i] = "Specials"
+    }
 
     alt[i] = name2alias(name[i])
 
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 27e89968874..0696cdcc10c 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -161,6 +161,9 @@
 	(arabic #x628 #x6C1)
 	(syriac #x710)
 	(thaana #x78C)
+        (nko #x7C0 #x7CA)
+        (samaritan #x800)
+        (mandaic #x841)
 	(devanagari #x915)
 	(bengali #x995)
 	(gurmukhi #xA15)
@@ -193,11 +196,14 @@
         (sundanese #x1B8A #x1BAB #x1CC4)
         (batak #x1BC2 #x1BE7 #x1BFF)
         (lepcha #x1C00 #x1C24 #x1C40)
+        (ol-chiki #x1C50 #xC5A)
         (tai-le #x1950)
         (tai-lue #x1980)
         (tai-tham #x1A20 #x1A55 #x1A61 #x1A80)
+        (vedic #x1CD0 #x1CE2)
 	(symbol . [#x201C #x2200 #x2500])
 	(braille #x2800)
+        (glagolitic #x2C00)
         (tifinagh #x2D30 #x2D60)
 	(ideographic-description #x2FF0)
         ;; Noto Sans Phags Pa is broken and reuses the CJK misc code
@@ -206,17 +212,22 @@
 	(cjk-misc #x300E #xff0c #x300a #xff09 #x5b50)
 	(kana #x304B)
 	(bopomofo #x3105)
-	(kanbun #x319D)
 	(han #x3410 #x4e10 #x5B57 #xfe30 #xf900)
-	(yi #xA288)
+	(yi #xA288 #xA49A)
+        (lisu #xA4D0 #xA4F9)
+        (bamum #xA6A0)
         (syloti-nagri #xA807 #xA823 #xA82C)
+        (north-indic-number #xA830)
+        (phags-pa #xA840)
+        (saurashtra #xA882 #xA8B5 #xA8D0)
+        (kayah-li #xA900 #xA90A #xA926)
         (rejang #xA930 #xA947 #xA95F)
 	(javanese #xA98F #xA9B4 #xA9CA)
 	(cham #xAA00)
 	(tai-viet #xAA80)
         (meetei-mayek #xABC0 #xABE3 #xAAE0 #xAAF6)
 	(hangul #xAC00)
-	(linear-b #x10000)
+	(linear-b #x10000 #x10080)
 	(aegean-number #x10100)
 	(ancient-greek-number #x10140)
 	(ancient-symbol #x10190)
@@ -238,15 +249,24 @@
         (todhri #x105C0 #x105ED)
 	(linear-a #x10600)
 	(cypriot-syllabary #x10800)
+        (aramaic #x10840 #x10858)
 	(palmyrene #x10860)
 	(nabataean #x10880)
+        (hatran #x108E0 #x108FB)
 	(phoenician #x10900)
 	(lydian #x10920)
         (sidetic #x10940)
+        (meroitic #x10980 #x109A0)
 	(kharoshthi #x10A00)
+        (old-south-arabian #x10A60 #x10A7D)
+        (old-north-arabian #x10A80 #x10A9D)
 	(manichaean #x10AC0)
 	(avestan #x10B00)
+        (inscriptional-parthian #x10B40 #x10B58)
+        (inscriptional-pahlavi #x10B60 #x10B78)
+        (psalter-pahlavi #x10B80 #x10BA9)
 	(old-turkic #x10C00 #x10C01)
+        (old-hungarian #x10C80 #x10CC0 #x10CFA)
 	(hanifi-rohingya #x10D00 #x10D24 #x10D39)
         (garay #x10D50 #x10D70 #x10D4A #x10D41)
 	(yezidi #x10E80)
@@ -257,18 +277,21 @@
 	(old-uyghur #x10F70)
         (brahmi #x11013 #x11045 #x11052 #x11065)
         (kaithi #x1108D #x110B0 #x110BD)
+        (sora-sompeng #x110D0 #x110F1)
         (chakma #x11103 #x11127)
 	(mahajani #x11150)
         (sharada #x11191 #x111B3 #x111CD)
 	(khojki #x11200)
-	(khudawadi #x112B0)
+        (multani #x11280)
+	(khudawadi #x112B0 #x112E0)
 	(grantha #x11315 #x1133E #x11374)
         (tulu-tigalari #x11380 #x113B8)
-	(newa #x11400)
+	(newa #x11400 #x11435)
 	(tirhuta #x11481 #x1148F #x114D0)
 	(siddham #x1158E #x115AF #x115D4)
 	(modi #x1160E #x11630 #x11655)
 	(takri #x11680)
+        (ahom #x11700 #x11720 #x11730)
 	(dogra #x11800)
 	(warang-citi #x118A1)
 	(dives-akuru #x11900)
@@ -287,6 +310,7 @@
 	(cuneiform #x12000)
 	(cypro-minoan #x12F90)
 	(egyptian #x13000)
+        (anatolian #x14400)
         (gurung-khema #x16100 #x1611E #x16131)
 	(mro #x16A40)
 	(tangsa #x16A70 #x16AC0)
@@ -295,6 +319,7 @@
         (kirat-rai #x16D43 #x16D63 #x16D71)
 	(medefaidrin #x16E40)
         (beria-erfe #x16EA0)
+        (miao #x16F00 #x16F54)
 	(tangut #x17000)
 	(khitan-small-script #x18B00)
 	(nushu #x1B170)
@@ -304,8 +329,10 @@
 	(musical-symbol #x1D100)
 	(ancient-greek-musical-notation #x1D200)
         (kaktovik-numeral #x1D2C0)
+        (mayan-numeral #x1D2E0)
 	(tai-xuan-jing-symbol #x1D300)
 	(counting-rod-numeral #x1D360)
+        (sutton-sign-writing #x1D800)
 	(nyiakeng-puachue-hmong #x1e100)
 	(toto #x1E290 #x1E295 #x1E2AD)
 	(wancho #x1E2C0 #x1E2E8 #x1E2EF)
@@ -318,6 +345,7 @@
 	(ottoman-siyaq-number #x1ED01 #x1ED27)
 	(mahjong-tile #x1F000)
 	(domino-tile #x1F030)
+        (playing-cards #x1F0A0)
         (emoji #x1F300 #x1F600)
         (chess-symbol . [#x1FA00 #x1FA67])))
 
@@ -389,8 +417,6 @@
 	(hatr . hatran)
 	(hebr . hebrew)
 	(hung . old-hungarian)
-	(phli . inscriptional-pahlavi)
-	(prti . inscriptional-parthian)
 	(java . javanese)
 	(kthi . kaithi)
 	(knda . kannada)
@@ -660,8 +686,6 @@
 	  ,(font-spec :registry "iso10646-1" :script 'lao)
 	  (nil . "MuleLao-1"))
 
-     (tai-viet ("TaiViet" . "iso10646-1"))
-
      (greek ,(font-spec :registry "iso10646-1" :script 'greek)
 	    (nil . "ISO8859-7"))
 
@@ -684,6 +708,13 @@
 	     (nil . "ISO8859-6"))
      (mongolian ,(font-spec :registry "iso10646-1"
 			    :otf '(mong nil (init medi fina isol))))
+     (syriac ,(if (featurep 'android)
+                  (font-spec :registry "iso10646-1" :script 'syriac)
+                (font-spec :registry "iso10646-1"
+                           ;; Don't use isol, as it rejects Syriac fonts
+			   :otf '(syrc nil (init medi med2 fina fin2 fin3)))))
+     (nko ,(font-spec :registry "iso10646-1"
+		      :otf '(nko\  nil (init medi fina isol))))
 
      (hebrew ,(font-spec :registry "iso10646-1" :script 'hebrew)
 	     (nil . "ISO8859-8"))
@@ -809,11 +840,13 @@
   (dolist (script '(phonetic
 		    armenian
 		    thaana
-		    syriac
+                    samaritan
+                    mandaic
 		    georgian
 		    cherokee
 		    canadian-aboriginal
                     cham
+                    tai-viet
 		    ogham
 		    runic
                     tagalog
@@ -826,14 +859,24 @@
                     sundanese
                     batak
                     lepcha
+                    ol-chiki
 		    symbol
 		    braille
+                    glagolitic
                     coptic
 		    yi
+                    lisu
+                    bamum
+                    vai
                     syloti-nagri
+                    north-indic-number
+                    phags-pa
+                    saurashtra
+                    kayah-li
                     rejang
                     javanese
-		    tai-viet
+		    tai-le
+                    tai-lue
                     meetei-mayek
 		    aegean-number
 		    ancient-greek-number
@@ -844,36 +887,50 @@
 		    old-italic
                     gothic
 		    ugaritic
+                    old-permic
 		    old-persian
 		    deseret
 		    shavian
 		    osmanya
 		    osage
                     vithkuqi
+                    todhri
 		    cypriot-syllabary
+                    aramaic
 		    phoenician
 		    lydian
                     hanifi-rohingya
                     yezidi
 		    kharoshthi
+                    old-south-arabian
+                    old-north-arabian
 		    manichaean
 		    avestan
+                    inscriptional-parthian
+                    inscriptional-pahlavi
+                    psalter-pahlavi
                     chorasmian
 		    elymaic
                     old-uyghur
                     brahmi
                     kaithi
+                    sora-sompeng
                     chakma
                     sharada
                     grantha
+                    tulu-tigalari
+                    newa
                     tirhuta
                     siddham
                     modi
 		    makasar
                     kawi
                     dives-akuru
+                    nandinagari
 		    cuneiform
+                    cypro-minoan
 		    egyptian
+                    anatolian
                     tangsa
 		    bassa-vah
 		    pahawh-hmong
@@ -881,11 +938,14 @@
                     znamenny-musical-notation
                     khudawadi
                     khojki
+                    multani
                     mahajani
                     sogdian
                     old-sogdian
                     old-turkic
+                    old-hungarian
                     nabataean
+                    hatran
                     palmyrene
                     linear-a
                     linear-b
@@ -895,35 +955,49 @@
 		    musical-symbol
 		    ancient-greek-musical-notation
                     kaktovik-numeral
+                    mayan-numeral
 		    tai-xuan-jing-symbol
 		    counting-rod-numeral
                     toto
                     wancho
                     nag-mundari
+                    ol-onal
                     mende-kikakui
                     nyiakeng-puachue-hmong
                     mro
                     masaram-gondi
+                    gunjala-gondi
                     pau-cin-hau
                     soyombo
                     zanabazar-square
                     warang-citi
                     dogra
                     takri
+                    ahom
 		    adlam
                     tifinagh
                     tai-tham
+                    vedic
                     indic-siyaq-number
                     ottoman-siyaq-number
 		    mahjong-tile
 		    domino-tile
+                    playing-cards
                     emoji
                     chess-symbol
                     garay
                     sunuwar
+                    bhaiksuki
+                    marchen
                     sidetic
+                    meroitic
                     tolong-siki
                     beria-erfe
+                    miao
+                    tangut
+                    khitan-small-script
+                    nushu
+                    duployan-shorthand
                     tai-yo))
     (set-fontset-font "fontset-default"
 		      script (font-spec :registry "iso10646-1" :script script)
@@ -985,6 +1059,7 @@
              (#x203B . #x206F)
              (#x2070 . #x209F)	;; Superscripts and Subscripts
              (#x20B6 . #x20CF)	;; Currency Symbols
+             (#x20D0 . #x20EF)  ;; Combining Diacritical Marks for Symbols
              (#x2100 . #x2121)	;; Letterlike Symbols
              (#x2123 . #x214F)
              (#x2150 . #x215A)	;; Number Forms
@@ -1018,6 +1093,7 @@
              (#x2E00 . #x2E7F)	;; Supplemental Punctuation
              (#x4DC0 . #x4DFF)	;; Yijing Hexagram Symbols
              (#xFE10 . #xFE1F)	;; Vertical Forms
+             (#xFFFC . #xFFFD)  ;; Replacement symbols
              (#x10100 . #x1013F)	;; Aegean Numbers
              (#x10190 . #x101CF)	;; Ancient Symbols
              (#x101D0 . #x101FF)	;; Phaistos Disc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.