emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master c74e24e: Commit indian.el forgotten in previous change.


From: Eli Zaretskii
Subject: master c74e24e: Commit indian.el forgotten in previous change.
Date: Fri, 29 May 2020 09:31:22 -0400 (EDT)

branch: master
commit c74e24eacd2cfb182e2159a23db21cfbec73cced
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Commit indian.el forgotten in previous change.
---
 lisp/leim/quail/indian.el | 89 ++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 80 insertions(+), 9 deletions(-)

diff --git a/lisp/leim/quail/indian.el b/lisp/leim/quail/indian.el
index 2681eab..100ae63 100644
--- a/lisp/leim/quail/indian.el
+++ b/lisp/leim/quail/indian.el
@@ -117,6 +117,7 @@
  indian-knd-itrans-v5-hash "kannada-itrans" "Kannada" "KndIT"
  "Kannada transliteration by ITRANS method.")
 
+;; ITRANS not applicable to Malayalam & could be removed eventually
 (if nil
     (quail-define-package "malayalam-itrans" "Malayalam" "MlmIT" t "Malayalam 
ITRANS"))
 (quail-define-indian-trans-package
@@ -358,24 +359,23 @@ Full key sequences are listed below:")
   '(
     (;; VOWELS  (18)
      (?D nil) (?E ?e) (?F ?f) (?R ?r) (?G ?g) (?T ?t)
-     (?+ ?=) ("F]" "f]") (?! ?@) (?S ?s) (?Z ?z) (?W ?w)
-     (?| ?\\) (?~ ?`) (?A ?a) (?Q ?q) ("+]" "=]") ("R]" "r]"))
+     (?= ?+) nil nil (?S ?s) (?Z ?z) (?W ?w)
+     nil (?~ ?`) (?A ?a) (?Q ?q))
     (;; CONSONANTS (42)
      ?k ?K ?i ?I ?U                ;; GRUTTALS
      ?\; ?: ?p ?P ?}               ;; PALATALS
      ?' ?\" ?\[ ?{ ?C              ;; CEREBRALS
-     ?l ?L ?o ?O ?v ?V             ;; DENTALS
+     ?l ?L ?o ?O ?v nil            ;; DENTALS
      ?h ?H ?y ?Y ?c                ;; LABIALS
-     ?/ ?j ?J ?n ?N "N]" ?b        ;; SEMIVOWELS
+     ?/ ?j ?J ?n ?N ?B ?b          ;; SEMIVOWELS
      ?M ?< ?m ?u                   ;; SIBILANTS
-     "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS
-     ?% ?&)
+     nil nil nil nil nil nil nil nil nil) ;; NUKTAS
     (;; Misc Symbols (7)
-     ?X ?x ?_ ">]" ?d "X]" ?>)
+     nil ?x ?_ nil ?d)
     (;; Digits
      ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9)
-    (;; Inscripts
-     ?# ?$ ?^ ?* ?\])))
+    (;; Chillus
+     "Cd" "Cd]" "vd" "vd]" "jd" "jd]" "nd" "nd]" "Nd" "Nd]")))
 
 (defvar inscript-tml-keytable
   '(
@@ -463,6 +463,9 @@ Full key sequences are listed below:")
  "malayalam-inscript" "Malayalam" "MlmIS"
  "Malayalam keyboard Inscript.")
 
+(quail-defrule "\\" ?‌)
+(quail-defrule "X" ?​)
+
 (if nil
     (quail-define-package "tamil-inscript" "Tamil" "TmlIS" t "Tamil keyboard 
Inscript"))
 (quail-define-inscript-package
@@ -571,4 +574,72 @@ Full key sequences are listed below:")
   ("?" ?\?)
   ("/" ?্))
 
+(defun indian-mlm-mozhi-update-translation (control-flag)
+  (let ((len (length quail-current-key)) chillu
+       (vowels '(?a ?e ?i ?o ?u ?A ?E ?I ?O ?U ?R)))
+    (cond ((numberp control-flag)
+          (progn (if (= control-flag 0)
+                     (setq quail-current-str quail-current-key)
+                   (cond (input-method-exit-on-first-char)
+                         ((and (memq (aref quail-current-key
+                                           (1- control-flag))
+                                     vowels)
+                               (setq chillu (cl-position
+                                             (aref quail-current-key
+                                                   control-flag)
+                                             '(?m ?N ?n ?r ?l ?L))))
+                          ;; conditions for putting chillu
+                          (and (or (and (= control-flag (1- len))
+                                        (not (setq control-flag nil)))
+                                   (and (= control-flag (- len 2))
+                                        (let ((temp (aref quail-current-key
+                                                          (1- len))))
+                                           ;; is it last char of word?
+                                          (not
+                                           (or (and (>= temp ?a) (<= temp ?z))
+                                               (and (>= temp ?A) (<= temp ?Z))
+                                               (eq temp ?~))))
+                                        (setq control-flag (1+ control-flag))))
+                               (setq quail-current-str     ;; put chillu
+                                     (concat (if (not (stringp
+                                                       quail-current-str))
+                                                 (string quail-current-str)
+                                               quail-current-str)
+                                             (string
+                                              (nth chillu '(?ം ?ൺ ?ൻ ?ർ ?ൽ 
?ൾ)))))))))
+                 (and (not input-method-exit-on-first-char) control-flag
+                      (while (> len control-flag)
+                        (setq len (1- len))
+                        (setq unread-command-events
+                              (cons (aref quail-current-key len)
+                                    unread-command-events))))
+                 ))
+         ((null control-flag)
+          (unless quail-current-str
+            (setq quail-current-str quail-current-key)
+            ))
+         ((equal control-flag t)
+          (if (memq (aref quail-current-key (1- len))  ;; If vowel ending,
+                    vowels)                            ;; may have to put
+              (setq control-flag nil)))))              ;; chillu. So don't
+  control-flag)                                         ;; end translation
+
+(quail-define-package "malayalam-mozhi" "Malayalam" "MlmMI" t
+                      "Malayalam transliteration by Mozhi method."
+                      nil nil t nil nil nil t nil
+                      'indian-mlm-mozhi-update-translation)
+
+(maphash
+ (lambda (key val)
+   (quail-defrule key (if (= (length val) 1)
+                         (string-to-char val)
+                       (vector val))))
+ (cdr indian-mlm-mozhi-hash))
+
+(defun indian-mlm-mozhi-underscore (key len) (throw 'quail-tag nil))
+
+(quail-defrule "_" 'indian-mlm-mozhi-underscore)
+(quail-defrule "|" ?‌)
+(quail-defrule "||" ?​)
+
 ;;; indian.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]