Subject: bug#55648: closed (Re: bug#55648: [PATCH] Add support for the Balinese script)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 26 May 2022 16:22:01 +0000

Your bug report

#55648: [PATCH] Add support for the Balinese script

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
55648: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55648
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#55648: [PATCH] Add support for the Balinese script
From: Eli Zaretskii <[email-masked]>
To: समीर सिंह Sameer Singh<[email-masked]>
Cc: [email-masked]
Date: Thu, 26 May 2022 19:21:06 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: समीर सिंह Sameer Singh
>  <[email-masked]>
> Date: Thu, 26 May 2022 05:46:11 +0530
> 
> This time the beautiful, balinese script is added to Emacs.
> 
> Please review the patch.
> Thank You.

Thanks, installed.

Subject: [PATCH] Add support for the Balinese script
From: समीर सिंह Sameer Singh<[email-masked]>
To: [email-masked]
Date: Thu, 26 May 2022 05:46:11 +0530
List-Id: <debbugs-submit.debbugs.gnu.org>

This time the beautiful, balinese script is added to Emacs.

Please review the patch.
Thank You.
From a2bb02ac33b95fb476eeb18b59c6f318d3975f5b 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, 26 May 2022 05:34:30 +0530
Subject: [PATCH] Add support for the Balinese script

* lisp/language/indonesian.el ("Balinese"): New language environment.
Add composition rules for Balinese.  Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Balinese.
* lisp/leim/quail/indonesian.el ("balinese"): New input method.
* lisp/loadup.el: Preload lisp/language/indonesian.el.

* etc/HELLO: Add a Balinese greeting.
* etc/NEWS: Announce the new language environment and its
input method.
---
 etc/HELLO                     |   1 +
 etc/NEWS                      |   1 +
 lisp/international/fontset.el |   2 +
 lisp/language/indonesian.el   |  64 ++++++++++++
 lisp/leim/quail/indonesian.el | 177 ++++++++++++++++++++++++++++++++++
 lisp/loadup.el                |   1 +
 6 files changed, 246 insertions(+)
 create mode 100644 lisp/language/indonesian.el
 create mode 100644 lisp/leim/quail/indonesian.el

diff --git a/etc/HELLO b/etc/HELLO
index 31f753c73a..248c02b7ab 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -27,6 +27,7 @@ LANGUAGE (NATIVE NAME)	HELLO
 Amharic (አማርኛ)	ሠላም
 Arabic (العربيّة)	السّلام عليكم
 Armenian (հայերեն)	Բարև ձեզ
+Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ)	ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ
 Belarusian (беларуская)	Прывітанне
 Bengali (বাংলা)	নমস্কার
 Brahmi (𑀩𑁆𑀭𑀸𑀳𑁆𑀫𑀻)	𑀦𑀫𑀲𑁆𑀢𑁂
diff --git a/etc/NEWS b/etc/NEWS
index 0f59d545e3..d6221d5586 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -823,6 +823,7 @@ corresponding language environments are:
 **** Buhid script and language environment
 **** Tagbanwa script and language environment
 **** Limbu script and language environment
+**** Balinese 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 42fbedae1d..a7d7109c8d 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -189,6 +189,7 @@ font-encoding-charset-alist
 	(khmer #x1780)
 	(mongolian #x1826)
         (limbu #x1901 #x1920 #x1936)
+        (balinese #x1B13 #x1B35 #x1B5E)
         (tai-le #x1950)
         (tai-lue #x1980)
         (tai-tham #x1A20 #x1A55 #x1A61 #x1A80)
@@ -758,6 +759,7 @@ setup-default-fontset
                     buhid
                     tagbanwa
                     limbu
+                    balinese
 		    symbol
 		    braille
 		    yi
diff --git a/lisp/language/indonesian.el b/lisp/language/indonesian.el
new file mode 100644
index 0000000000..9a86135d89
--- /dev/null
+++ b/lisp/language/indonesian.el
@@ -0,0 +1,64 @@
+;;; indonesian.el --- Indonesian languages support  -*- coding: utf-8; lexical-binding: t; -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Author: समीर सिंह Sameer Singh <[email-masked]>
+;; Keywords: multilingual, input method, i18n, Indonesia
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file contains definitions of Indonesia language environments, and
+;; setups for displaying the scripts used there.
+
+;;; Code:
+
+(set-language-info-alist
+ "Balinese" '((charset unicode)
+              (coding-system utf-8)
+              (coding-priority utf-8)
+              (input-method . "balinese")
+              (sample-text . "Balinese (ᬅᬓ᭄ᬱᬭᬩᬮᬶ)	ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ")
+              (documentation . "\
+Balinese language and its script are supported in this language environment.")))
+
+
+;; Balinese composition rules
+(let ((consonant            "[\x1B13-\x1B33\x1B45-\x1B4B]")
+      (independent-vowel    "[\x1B05-\x1B12]")
+      (rerekan              "\x1B34")
+      (vowel                "[\x1B35-\x1B43]")
+      (modifier-above       "[\x1B00-\x1B04]")
+      (adeg-adeg            "\x1B44")
+      (musical-symbol       "[\x1B6B-\x1B73]"))
+  (set-char-table-range composition-function-table
+                        '(#x1B34 . #x1B44)
+                        (list (vector
+                               ;; Consonant based syllables
+                               (concat consonant rerekan "?" "\\(?:" adeg-adeg consonant
+                                       rerekan "?\\)*\\(?:" adeg-adeg "\\|" vowel "*" rerekan
+                                       "?" modifier-above "?" musical-symbol "?\\)")
+                               1 'font-shape-gstring)
+                              (vector
+                               ;; Vowels based syllables
+                               (concat independent-vowel rerekan "?" adeg-adeg "?"
+                                       vowel "?" modifier-above "?" musical-symbol "?")
+                               1 'font-shape-gstring))))
+
+
+(provide 'indonesian)
+;;; indonesian.el ends here
diff --git a/lisp/leim/quail/indonesian.el b/lisp/leim/quail/indonesian.el
new file mode 100644
index 0000000000..46dafc89f5
--- /dev/null
+++ b/lisp/leim/quail/indonesian.el
@@ -0,0 +1,177 @@
+;;; indonesian.el --- Quail package for inputting Indonesian characters  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Author: समीर सिंह Sameer Singh <[email-masked]>
+;; Keywords: multilingual, input method, i18n, Indonesia
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Input methods for Indonesian languages.
+
+;;; Code:
+
+(require 'quail)
+
+;; This input method supports languages like Buginese, Balinese, Sundanese and
+;; Javanese.
+
+(quail-define-package
+ "balinese" "Balinese" "ᬅ" t "Balinese phonetic 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)
+ ("`\(" ?᭳)
+ ("0"  ?᭐)
+ ("`0" ?0)
+ ("`\)" ?᭼)
+ ("`\\" ?᭞)
+ ("`|" ?᭟)
+ ("`"  ?ᬝ)
+ ("q"  ?ᬝ)
+ ("Q"  ?ᬞ)
+ ("`q" ?᭚)
+ ("`Q" ?᭽)
+ ("w"  ?ᬟ)
+ ("W"  ?ᬠ)
+ ("`w" ?᭛)
+ ("`W" ?᭾)
+ ("e"  ?ᬾ)
+ ("E"  ?ᬿ)
+ ("`e" ?ᬏ)
+ ("`E" ?ᬐ)
+ ("r"  ?ᬭ)
+ ("R"  ?ᬃ)
+ ("`r" ?ᬺ)
+ ("`R" ?ᬋ)
+ ("t"  ?ᬢ)
+ ("T"  ?ᬣ)
+ ("`t" ?᭜)
+ ("`T" ?᭝)
+ ("y"  ?ᬬ)
+ ("Y"  ?ᭂ)
+ ("`y" ?ᭃ)
+ ("`Y" ?᭴)
+ ("u"  ?ᬸ)
+ ("U"  ?ᬹ)
+ ("`u" ?ᬉ)
+ ("`U" ?ᬊ)
+ ("i"  ?ᬶ)
+ ("I"  ?ᬷ)
+ ("`i" ?ᬇ)
+ ("`I" ?ᬈ)
+ ("o"  ?ᭀ)
+ ("O"  ?ᭁ)
+ ("`o" ?ᬑ)
+ ("`O" ?ᬒ)
+ ("p"  ?ᬧ)
+ ("P"  ?ᬨ)
+ ("`p" ?ᭈ)
+ ("`P" ?᭠)
+ ("a"  ?ᬵ)
+ ("A"  ?ᬆ)
+ ("`a" ?ᬅ)
+ ("`A" ?᭵)
+ ("s"  ?ᬲ)
+ ("S"  ?ᬰ)
+ ("`s" ?᭡)
+ ("`S" ?᭢)
+ ("d"  ?ᬤ)
+ ("D"  ?ᬥ)
+ ("`d" ?᭣)
+ ("`D" ?᭤)
+ ("f"  ?᭄)
+ ("F"  ?ᬻ)
+ ("`f" ?ᬌ)
+ ("`F" ?᭶)
+ ("g"  ?ᬕ)
+ ("G"  ?ᬖ)
+ ("`g" ?᭥)
+ ("`G" ?᭦)
+ ("h"  ?ᬳ)
+ ("H"  ?ᬄ)
+ ("`h" ?᭧)
+ ("`H" ?᭨)
+ ("j"  ?ᬚ)
+ ("J"  ?ᬛ)
+ ("`j" ?ᭌ)
+ ("`J" ?᭩)
+ ("k"  ?ᬓ)
+ ("K"  ?ᬔ)
+ ("`k" ?ᭅ)
+ ("`K" ?ᭆ)
+ ("l"  ?ᬮ)
+ ("L"  ?ᬼ)
+ ("`l" ?ᬍ)
+ ("`L" ?᭪)
+ ("z"  ?ᭊ)
+ ("Z"  ?ᬽ)
+ ("`z" ?ᬎ)
+ ("`Z" ?᭷)
+ ("x"  ?ᬱ)
+ ("X"  ?᬴)
+ ("`x" ?᭸)
+ ("c"  ?ᬘ)
+ ("C"  ?ᬙ)
+ ("`c" #x200C)  ; ZWNJ
+ ("v"  ?ᬯ)
+ ("V"  ?ᭉ)
+ ("`v" ?᭹)
+ ("`V" ?᭺)
+ ("b"  ?ᬩ)
+ ("B"  ?ᬪ)
+ ("`b" ?᭻)
+ ("n"  ?ᬦ)
+ ("N"  ?ᬡ)
+ ("`n" ?ᬗ)
+ ("`N" ?ᬜ)
+ ("m"  ?ᬫ)
+ ("M"  ?ᬂ)
+ ("`m" ?ᬁ)
+ ("`M" ?ᬀ))
+
+(provide 'indonesian)
+;;; indonesian.el ends here
diff --git a/lisp/loadup.el b/lisp/loadup.el
index 9f1da4c0f9..aa15a3bbe8 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -246,6 +246,7 @@
 (load "language/burmese")
 (load "language/cham")
 (load "language/philippine")
+(load "language/indonesian")
 
 (load "indent")
 (let ((max-specpdl-size (max max-specpdl-size 1800)))
-- 
2.36.1