Subject: Re: [PATCH] Add support for the Coptic script

From: समीर सिंह Sameer Singh<[email-masked]>
Date: Thu, 6 Oct 2022 17:35:28 +0530

On Thu, Oct 6, 2022 at 5:27 PM समीर सिंह Sameer Singh <[email-masked]>
wrote:

> The Coptic script support is added to Emacs this time.
>
> Please review the patch.
> Thanks
>
From 4319fcca3175bedaf6af02a5a181a916f68bd933 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E0=A4=B8=E0=A4=AE=E0=A5=80=E0=A4=B0=20=E0=A4=B8=E0=A4=BF?=
 =?UTF-8?q?=E0=A4=82=E0=A4=B9=20Sameer=20Singh?= <[email-masked]>
Date: Thu, 6 Oct 2022 17:34:28 +0530
Subject: [PATCH] Add support for the Coptic script (bug#58330)

* lisp/language/misc-lang.el ("Coptic"): New language environment.
Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support coptic.
* lisp/leim/quail/misc-lang.el ("coptic"): New input method.

* etc/HELLO: Add a Coptic greeting.
* etc/NEWS: Announce the new language environment.
---
 etc/HELLO                     |   1 +
 etc/NEWS                      |   1 +
 lisp/international/fontset.el |   3 +-
 lisp/language/misc-lang.el    |  14 ++++
 lisp/leim/quail/misc-lang.el  | 117 ++++++++++++++++++++++++++++++++++
 5 files changed, 135 insertions(+), 1 deletion(-)

diff --git a/etc/HELLO b/etc/HELLO
index b05c09da3c..7bc12063f8 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -41,6 +41,7 @@ C	printf (<x-color><param>orange red</param>"Hello, world!\n"</x-color>);
 Cham (ꨌꩌ)	ꨦꨤꩌ ꨦꨁꨰ
 Cherokee (ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ)	ᎣᏏᏲ / ᏏᏲ
 Comanche /kəˈmæntʃiː/	Haa marʉ́awe
+Coptic (ⲘⲉⲧⲢⲉⲙ̀ⲛⲭⲏⲙⲓ)	Ⲛⲟⲩϥⲣⲓ
 Cree (ᓀᐦᐃᔭᐍᐏᐣ)	ᑕᓂᓯ / ᐙᒋᔮ
 Czech (čeština)	Dobrý den
 Danish (dansk)	Hej / Goddag / Halløj
diff --git a/etc/NEWS b/etc/NEWS
index 536c7aa319..3ce95e3970 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1338,6 +1338,7 @@ Mende Kikakui script and language environment
 Wancho script and language environment
 Toto script and language environment
 Gothic script and language environment
+Coptic script and language environment
 
 ---
 *** The "Oriya" language environment was renamed to "Odia".
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 6e44b85e6c..93fedb8c1a 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -152,7 +152,7 @@
       '((latin ?A ?Z ?a ?z #x00C0 #x0100 #x0180 #x1e00)
 	(phonetic #x250 #x283)
 	(greek #x3A9)
-	(coptic #x3E2)
+	(coptic #x3E2 #x2C80 #x2CAE)
 	(cyrillic #x42F)
 	(armenian #x531)
 	(hebrew #x5D0)
@@ -779,6 +779,7 @@
                     lepcha
 		    symbol
 		    braille
+                    coptic
 		    yi
                     syloti-nagri
                     rejang
diff --git a/lisp/language/misc-lang.el b/lisp/language/misc-lang.el
index 4a2e7838fc..370be4b4a3 100644
--- a/lisp/language/misc-lang.el
+++ b/lisp/language/misc-lang.el
@@ -319,6 +319,20 @@ in this language environment.")))
 Ancient Gothic language using the Gothic script is supported in this
 language environment.")))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Coptic
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(set-language-info-alist
+ "Coptic" '((charset unicode)
+            (coding-system utf-8)
+            (coding-priority utf-8)
+            (input-method . "coptic")
+            (sample-text . "Coptic (ⲘⲉⲧⲢⲉⲙ̀ⲛⲭⲏⲙⲓ)	Ⲛⲟⲩϥⲣⲓ")
+            (documentation . "\
+Coptic language using the Coptic script is supported in this
+language environment.")))
+
 (provide 'misc-lang)
 
 ;;; misc-lang.el ends here
diff --git a/lisp/leim/quail/misc-lang.el b/lisp/leim/quail/misc-lang.el
index dad5cfc3e3..73287ee784 100644
--- a/lisp/leim/quail/misc-lang.el
+++ b/lisp/leim/quail/misc-lang.el
@@ -1558,5 +1558,122 @@
  ("n"  ?𐌽)
  ("m"  ?𐌼))
 
+(quail-define-package
+ "coptic" "Coptic" "Ⲁ" nil "Coptic input method.
+
+ `\\=`' is used to switch levels instead of Alt-Gr."
+ nil t t t t nil nil nil nil nil t)
+
+(quail-define-rules
+ ("1"   ?𐋡)
+ ("`1"  ?1)
+ ("`!"  ?𐋠)
+ ("2"   ?𐋢)
+ ("`2"  ?2)
+ ("3"   ?𐋣)
+ ("`3"  ?3)
+ ("4"   ?𐋤)
+ ("`4"  ?4)
+ ("5"   ?𐋥)
+ ("`5"  ?5)
+ ("6"   ?𐋦)
+ ("`6"  ?6)
+ ("7"   ?𐋧)
+ ("`7"  ?7)
+ ("8"   ?𐋨)
+ ("`8"  ?8)
+ ("9"   ?𐋩)
+ ("`9"  ?9)
+ ("10"  ?𐋪)
+ ("20"  ?𐋫)
+ ("30"  ?𐋬)
+ ("40"  ?𐋭)
+ ("50"  ?𐋮)
+ ("60"  ?𐋯)
+ ("70"  ?𐋰)
+ ("80"  ?𐋱)
+ ("90"  ?𐋲)
+ ("100" ?𐋳)
+ ("200" ?𐋴)
+ ("300" ?𐋵)
+ ("400" ?𐋶)
+ ("500" ?𐋷)
+ ("600" ?𐋸)
+ ("700" ?𐋹)
+ ("800" ?𐋺)
+ ("900" ?𐋻)
+ ("1/2" ?⳽)
+
+ ("q"  ?ⲑ)
+ ("Q"  ?Ⲑ)
+ ("w"  ?ⲱ)
+ ("W"  ?Ⲱ)
+ ("e"  ?ⲉ)
+ ("E"  ?Ⲉ)
+ ("r"  ?ⲣ)
+ ("R"  ?Ⲣ)
+ ("t"  ?ⲧ)
+ ("T"  ?Ⲧ)
+ ("ti" ?ϯ)
+ ("Ti" ?Ϯ)
+ ("y"  ?ⲏ)
+ ("Y"  ?Ⲏ)
+ ("u"  ?ⲩ)
+ ("U"  ?Ⲩ)
+ ("i"  ?ⲓ)
+ ("I"  ?Ⲓ)
+ ("o"  ?ⲟ)
+ ("O"  ?Ⲟ)
+ ("p"  ?ⲡ)
+ ("P"  ?Ⲡ)
+ ("ps" ?ⲯ)
+ ("Ps" ?Ⲯ)
+ ("a"  ?ⲁ)
+ ("A"  ?Ⲁ)
+ ("s"  ?ⲥ)
+ ("S"  ?Ⲥ)
+ ("`s" ?ⲋ)
+ ("`S" ?Ⲋ)
+ ("sh" ?ϣ)
+ ("Sh" ?Ϣ)
+ ("d"  ?ⲇ)
+ ("D"  ?Ⲇ)
+ ("f"  ?ⲫ)
+ ("F"  ?Ⲫ)
+ ("g"  ?ⲅ)
+ ("G"  ?Ⲅ)
+ ("h"  ?ϩ)
+ ("H"  ?Ϩ)
+ ("j"  ?ϫ)
+ ("J"  ?Ϫ)
+ ("k"  ?ⲕ)
+ ("K"  ?Ⲕ)
+ ("kh" ?ⲭ)
+ ("Kh" ?Ⲭ)
+ ("l"  ?ⲗ)
+ ("L"  ?Ⲗ)
+ ("z"  ?ⲍ)
+ ("Z"  ?Ⲍ)
+ ("x"  ?ⲝ)
+ ("X"  ?Ⲝ)
+ ("`x" ?ϧ)
+ ("`X" ?Ϧ)
+ ("c"  ?ϭ)
+ ("C"  ?Ϭ)
+ ("v"  ?ϥ)
+ ("V"  ?Ϥ)
+ ("b"  ?ⲃ)
+ ("B"  ?Ⲃ)
+ ("n"  ?ⲛ)
+ ("N"  ?Ⲛ)
+ ("`n" ?⳯)
+ ("m"  ?ⲙ)
+ ("M"  ?Ⲙ)
+
+ ("`," ?⳰)
+ ("`<" ?⳱)
+ ("`."  ?⳾)
+ ("`/" ?⳿))
+
 (provide 'misc-lang)
 ;;; misc-lang.el ends here
-- 
2.37.3