]> git.eshelyaron.com Git - emacs.git/commitdiff
Follow contemporary practices in the Tamil input methods
authorVisuwesh <visuweshm@gmail.com>
Sun, 13 Mar 2022 05:46:38 +0000 (11:16 +0530)
committerEli Zaretskii <eliz@gnu.org>
Sun, 13 Mar 2022 08:17:09 +0000 (10:17 +0200)
* lisp/language/ind-util.el (indian-tml-base-digits-table): New table
to translate digits.
(indian-tml-base-table): Don't translate digits.
(indian-tml-itrans-digits-v5-hash): Hashtable that translates digits.

* lisp/leim/quail/indian.el (quail-tamil-itrans-compute-signs-table)
(quail-tamil-itrans-various-signs-table)
(quail-tamil-itrans-various-signs-and-digits-table): Separate out the
digits from the signs table using the function
'quail-tamil-itrans-compute-signs-table'.
(tamil-itrans-digits, tamil-inscript-digits): New input methods that
translates digits.
(tamil-itrans, tamil-inscript): Fix table inclusion.

* etc/NEWS: Announce the change.

Fixes bug#50143.

Copyright-paperwork-exempt: yes

etc/NEWS
lisp/language/ind-util.el
lisp/leim/quail/indian.el

index faac1fbc916ed50dd5fa000554228996d3953669..273fa776402a9ba3e1403793951c307391f2eba6 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -158,6 +158,13 @@ beginning.
 An autoload definition appears just as a '(defun . NAME)' and the
 '(t . NAME)' entries are not generated any more.
 
+---
+** The Tamil input methods do not insert Tamil digits anymore.
+The input methods 'tamil-itrans' and 'tamil-inscript' no longer insert
+the Tamil digit.  To get back the previous behaviour, use the
+'tamil-itrans-digits' and 'tamil-inscript-digits' input methods
+instead.
+
 \f
 * Changes in Emacs 29.1
 
@@ -1656,6 +1663,13 @@ when used as part of a property list specification for the
 ** 'defalias' records a more precise history of definitions.
 This is recorded in the `function-history` symbol property.
 
+---
+** 'indian-tml-base-table' no longer translates digits.
+Use 'indian-tml-base-digits-table' if you want digits translation.
+
+--
+** 'indian-tml-itrans-v5-hash' no longer translates digits.
+Use 'indian-tml-itrans-digits-v5-hash' if you digits translation.
 \f
 * Changes in Emacs 29.1 on Non-Free Operating Systems
 
index 8b1c3d69ae55c8a361ddf4fcafb85857189c1bab..60ada03fa255a81012ef259c2d9a4aba50a64f75 100644 (file)
      "ണ്" ?ൺ "ന്" ?ൻ "ര്" ?ർ "ല്" ?ൽ "ള്" ?ൾ)))
 
 (defvar indian-tml-base-table
+  '(
+    (;; VOWELS
+     (?அ nil) (?ஆ ?ா) (?இ ?ி) (?ஈ ?ீ) (?உ ?ு) (?ஊ ?ூ)
+     nil nil nil (?ஏ ?ே) (?எ ?ெ) (?ஐ ?ை)
+     nil (?ஓ ?ோ) (?ஒ ?ொ) (?ஔ ?ௌ) nil nil)
+    (;; CONSONANTS
+     ?க nil nil nil ?ங                  ;; GUTTRULS
+     ?ச nil ?ஜ nil ?ஞ                  ;; PALATALS
+     ?ட nil nil nil ?ண                  ;; CEREBRALS
+     ?த nil nil nil ?ந ?ன              ;; DENTALS
+     ?ப nil nil nil ?ம                  ;; LABIALS
+     ?ய ?ர ?ற ?ல ?ள ?ழ ?வ          ;; SEMIVOWELS
+     nil ?ஷ ?ஸ ?ஹ                    ;; SIBILANTS
+     nil nil nil nil nil nil nil nil      ;; NUKTAS
+     "ஜ்ஞ" "க்ஷ")
+    (;; Misc Symbols
+     nil ?ஂ ?ஃ nil ?் nil nil)
+    (;; Digits
+     nil nil nil nil nil nil nil nil nil nil)
+    (;; Inscript-extra (4)  (#, $, ^, *, ])
+     "்ர" "ர்" "த்ர" nil nil)))
+
+(defvar indian-tml-base-digits-table
   '(
     (;; VOWELS
      (?அ nil) (?ஆ ?ா) (?இ ?ி) (?ஈ ?ீ) (?உ ?ு) (?ஊ ?ூ)
 (defvar indian-tml-itrans-v5-hash
   (indian-make-hash indian-tml-base-table
                          indian-itrans-v5-table-for-tamil))
+
+(defvar indian-tml-itrans-digits-v5-hash
+  (indian-make-hash indian-tml-base-digits-table
+                         indian-itrans-v5-table-for-tamil))
 )
 
 (defmacro indian-translate-region (from to hashtable encode-p)
index 23204c0cd3e44b7a4701b37d463e693be7b3df41..6641aa6b2e71bff6a119f23322ef244318299ac8 100644 (file)
        clm)
     (with-temp-buffer
       (insert "\n")
-      (insert "    +")
+      (insert "----+")
       (insert-char ?- 74)
       (insert "\n    |")
       (setq clm 6)
       (insert "\n")
       (buffer-string))))
 
-(defvar quail-tamil-itrans-various-signs-and-digits-table
+(defun quail-tamil-itrans-compute-signs-table (digitp)
+  "Compute the signs table for the tamil-itrans input method.
+If DIGITP is non-nil, include the digits translation as well."
   (let ((various '((?ஃ . "H") ("ஸ்ரீ" . "srii") (?ௐ)))
        (digits "௦௧௨௩௪௫௬௭௮௯")
        (width 6) clm)
     (with-temp-buffer
-      (insert "\n" (make-string 18 ?-) "+" (make-string 60 ?-) "\n")
+      (insert "\n" (make-string 18 ?-) "+")
+      (when digitp (insert (make-string 60 ?-)))
+      (insert "\n")
       (insert
        (propertize "\t" 'display '(space :align-to 5)) "various"
-       (propertize "\t" 'display '(space :align-to 18)) "|"
-       (propertize "\t" 'display '(space :align-to 45)) "digits")
-
-      (insert "\n" (make-string 18 ?-) "+" (make-string 60 ?-) "\n")
-      (setq clm 0 )
+       (propertize "\t" 'display '(space :align-to 18)) "|")
+      (when digitp
+        (insert
+         (propertize "\t" 'display '(space :align-to 45)) "digits"))
+      (insert "\n" (make-string 18 ?-) "+")
+      (when digitp
+        (insert (make-string 60 ?-)))
+      (insert "\n")
+      (setq clm 0)
 
       (dotimes (i (length various))
        (insert (propertize "\t" 'display (list 'space :align-to clm))
        (setq clm (+ clm width)))
       (insert (propertize "\t" 'display '(space :align-to 18)) "|")
       (setq clm 20)
-      (dotimes (i 10)
-       (insert (propertize "\t" 'display (list 'space :align-to clm))
-               (aref digits i))
-       (setq clm (+ clm width)))
+      (when digitp
+        (dotimes (i 10)
+         (insert (propertize "\t" 'display (list 'space :align-to clm))
+                 (aref digits i))
+         (setq clm (+ clm width))))
       (insert "\n")
       (setq clm 0)
       (dotimes (i (length various))
        (setq clm (+ clm width)))
       (insert (propertize "\t" 'display '(space :align-to 18)) "|")
       (setq clm 20)
-      (dotimes (i 10)
-       (insert (propertize "\t" 'display (list 'space :align-to clm))
-               (format "%d" i))
-       (setq clm (+ clm width)))
-      (insert "\n" (make-string 18 ?-) "+" (make-string 60 ?-) "\n")
+      (when digitp
+        (dotimes (i 10)
+         (insert (propertize "\t" 'display (list 'space :align-to clm))
+                 (format "%d" i))
+         (setq clm (+ clm width))))
+      (insert "\n" (make-string 18 ?-) "+")
+      (when digitp
+        (insert (make-string 60 ?-) "\n"))
       (buffer-string))))
 
+(defvar quail-tamil-itrans-various-signs-and-digits-table
+  (quail-tamil-itrans-compute-signs-table t))
+
+(defvar quail-tamil-itrans-various-signs-table
+  (quail-tamil-itrans-compute-signs-table nil))
+
 (if nil
     (quail-define-package "tamil-itrans" "Tamil" "TmlIT" t "Tamil ITRANS"))
 (quail-define-indian-trans-package
@@ -293,16 +311,39 @@ You can input characters using the following mapping tables.
     Example: To enter வணக்கம், type vaNakkam.
 
 ### Basic syllables (consonants + vowels) ###
-\\<quail-tamil-itrans-syllable-table>
+\\=\\<quail-tamil-itrans-syllable-table>
+
+### Miscellaneous (various signs) ###
+\\=\\<quail-tamil-itrans-various-signs-table>
+
+### Others (numerics + symbols) ###
+
+Characters below have no ITRANS method associated with them.
+Their descriptions are included for easy reference.
+\\=\\<quail-tamil-itrans-numerics-and-symbols-table>
+
+Full key sequences are listed below:")
+
+(if nil
+    (quail-define-package "tamil-itrans-digits" "Tamil" "TmlITD" t "Tamil ITRANS with digits"))
+(quail-define-indian-trans-package
+ indian-tml-itrans-digits-v5-hash "tamil-itrans-digits" "Tamil" "TmlITD"
+ "Tamil transliteration by ITRANS method with Tamil digits support.
+
+You can input characters using the following mapping tables.
+    Example: To enter வணக்கம், type vaNakkam.
+
+### Basic syllables (consonants + vowels) ###
+\\=\\<quail-tamil-itrans-syllable-table>
 
 ### Miscellaneous (various signs + digits) ###
-\\<quail-tamil-itrans-various-signs-and-digits-table>
+\\=\\<quail-tamil-itrans-various-signs-and-digits-table>
 
 ### Others (numerics + symbols) ###
 
 Characters below have no ITRANS method associated with them.
 Their descriptions are included for easy reference.
-\\<quail-tamil-itrans-numerics-and-symbols-table>
+\\=\\<quail-tamil-itrans-numerics-and-symbols-table>
 
 Full key sequences are listed below:")
 
@@ -479,6 +520,13 @@ Full key sequences are listed below:")
  "tamil-inscript" "Tamil" "TmlIS"
  "Tamil keyboard Inscript.")
 
+(if nil
+    (quail-define-package "tamil-inscript-digits" "Tamil" "TmlISD" t "Tamil keyboard Inscript with digits."))
+(quail-define-inscript-package
+ indian-tml-base-digits-table inscript-tml-keytable
+ "tamil-inscript-digits" "Tamil" "TmlISD"
+ "Tamil keyboard Inscript with Tamil digits support.")
+
 ;; Probhat Input Method
 (quail-define-package
  "bengali-probhat" "Bengali" "BngPB" t