mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-11 09:20:51 +00:00
5c7dd8a783
Run admin/update-copyright.
1235 lines
39 KiB
EmacsLisp
1235 lines
39 KiB
EmacsLisp
;;; ind-util.el --- Transliteration and Misc. Tools for Indian Languages -*- coding: utf-8-emacs; -*-
|
||
|
||
;; Copyright (C) 2001-2018 Free Software Foundation, Inc.
|
||
|
||
;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org>
|
||
;; Keywords: multilingual, Indian, Devanagari
|
||
|
||
;; 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 provides conversion between UCS and various
|
||
;; transliteration schemes, such as ITRANS, kyoto-harvard and aiba
|
||
;; methods. It also provides conversion between IS 13194 and UCS.
|
||
;; Finally, this program provides the compatibility support with
|
||
;; old implementation of Devanagari script.
|
||
|
||
;;; Code:
|
||
|
||
;;; Transliteration
|
||
|
||
;; The followings provide the various transliteration schemes (such as
|
||
;; ITRANS, kyoto-harvard, and Aiba) of Indian scripts. They are also
|
||
;; used in quail/indian.el for typing Indian script in Emacs.
|
||
|
||
(eval-and-compile
|
||
|
||
(defun indian-regexp-of-hashtbl-keys (hashtbl)
|
||
"Return the regular expression of hash table keys."
|
||
(let (keys)
|
||
(maphash (lambda (key val) (push key keys)) hashtbl)
|
||
(regexp-opt keys)))
|
||
|
||
(defvar indian-dev-base-table
|
||
'(
|
||
(;; VOWELS (18)
|
||
(?अ nil) (?आ ?ा) (?इ ?ि) (?ई ?ी) (?उ ?ु) (?ऊ ?ू)
|
||
(?ऋ ?ृ) (?ऌ ?ॢ) (?ऍ ?ॅ) (?ऎ ?ॆ) (?ए ?े) (?ऐ ?ै)
|
||
(?ऑ ?ॉ) (?ऒ ?ॊ) (?ओ ?ो) (?औ ?ौ) (?ॠ ?ॄ) (?ॡ ?ॣ))
|
||
(;; CONSONANTS (currently 42, including special cases)
|
||
?क ?ख ?ग ?घ ?ङ ;; GUTTRULS
|
||
?च ?छ ?ज ?झ ?ञ ;; PALATALS
|
||
?ट ?ठ ?ड ?ढ ?ण ;; CEREBRALS
|
||
?त ?थ ?द ?ध ?न ?ऩ ;; DENTALS
|
||
?प ?फ ?ब ?भ ?म ;; LABIALS
|
||
?य ?र ?ऱ ?ल ?ळ ?ऴ ?व ;; SEMIVOWELS
|
||
?श ?ष ?स ?ह ;; SIBILANTS
|
||
?क़ ?ख़ ?ग़ ?ज़ ?ड़ ?ढ़ ?फ़ ?य़ ;; NUKTAS
|
||
"ज्ञ" "क्ष")
|
||
(;; Misc Symbols (7)
|
||
?ँ ?ं ?ः ?ऽ ?् ?ॐ ?।)
|
||
(;; Digits (10)
|
||
?० ?१ ?२ ?३ ?४ ?५ ?६ ?७ ?८ ?९)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"्र" "र्" "त्र" "श्र" "़")))
|
||
|
||
;; Punjabi is also known as Gurmukhi.
|
||
(defvar indian-pnj-base-table
|
||
'(
|
||
(;; VOWELS
|
||
(?ਅ nil) (?ਆ ?ਾ) (?ਇ ?ਿ) (?ਈ ?ੀ) (?ਉ ?ੁ) (?ਊ ?ੂ)
|
||
nil nil nil nil (?ਏ ?ੇ) (?ਐ ?ੈ)
|
||
nil nil (?ਓ ?ੋ) (?ਔ ?ੌ) nil nil)
|
||
(;; CONSONANTS
|
||
?ਕ ?ਖ ?ਗ ?ਘ ?ਙ ;; GUTTRULS
|
||
?ਚ ?ਛ ?ਜ ?ਝ ?ਞ ;; PALATALS
|
||
?ਟ ?ਠ ?ਡ ?ਢ ?ਣ ;; CEREBRALS
|
||
?ਤ ?ਥ ?ਦ ?ਧ ?ਨ nil ;; DENTALS
|
||
?ਪ ?ਫ ?ਬ ?ਭ ?ਮ ;; LABIALS
|
||
?ਯ ?ਰ nil ?ਲ ?ਲ਼ nil ?ਵ ;; SEMIVOWELS
|
||
?ਸ਼ nil ?ਸ ?ਹ ;; SIBILANTS
|
||
nil ?ਖ਼ ?ਗ਼ ?ਜ਼ ?ੜ nil ?ਫ਼ nil ;; NUKTAS
|
||
"ਜ੍ਞ" nil)
|
||
(;; Misc Symbols (7)
|
||
nil ?ਂ nil nil ?੍ nil nil) ;; ek onkar, etc.
|
||
(;; Digits
|
||
?੦ ?੧ ?੨ ?੩ ?੪ ?੫ ?੬ ?੭ ?੮ ?੯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"੍ਰ" "ਰ੍" "ਤ੍ਰ" "ਸ਼੍ਰ" "਼")))
|
||
|
||
(defvar indian-gjr-base-table
|
||
'(
|
||
(;; VOWELS
|
||
(?અ nil) (?આ ?ા) (?ઇ ?િ) (?ઈ ?ી) (?ઉ ?ુ) (?ઊ ?ૂ)
|
||
(?ઋ ?ૃ) nil (?ઍ ?ૅ) nil (?એ ?ે) (?ઐ ?ૈ)
|
||
(?ઑ ?ૉ) nil (?ઓ ?ો) (?ઔ ?ૌ) (?ૠ ?ૄ) nil)
|
||
(;; CONSONANTS
|
||
?ક ?ખ ?ગ ?ઘ ?ઙ ;; GUTTRULS
|
||
?ચ ?છ ?જ ?ઝ ?ઞ ;; PALATALS
|
||
?ટ ?ઠ ?ડ ?ઢ ?ણ ;; CEREBRALS
|
||
?ત ?થ ?દ ?ધ ?ન nil ;; DENTALS
|
||
?પ ?ફ ?બ ?ભ ?મ ;; LABIALS
|
||
?ય ?ર nil ?લ ?ળ nil ?વ ;; SEMIVOWELS
|
||
?શ ?ષ ?સ ?હ ;; SIBILANTS
|
||
nil nil nil nil nil nil nil nil ;; NUKTAS
|
||
"જ્ઞ" "ક્ષ")
|
||
(;; Misc Symbols (7)
|
||
?ઁ ?ં ?ઃ ?ઽ ?્ ?ૐ nil)
|
||
(;; Digits
|
||
?૦ ?૧ ?૨ ?૩ ?૪ ?૫ ?૬ ?૭ ?૮ ?૯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"્ર" "ર્" "ત્ર" "શ્ર" "઼")))
|
||
|
||
(defvar indian-ori-base-table
|
||
'(
|
||
(;; VOWELS
|
||
(?ଅ nil) (?ଆ ?ା) (?ଇ ?ି) (?ଈ ?ୀ) (?ଉ ?ୁ) (?ଊ ?ୂ)
|
||
(?ଋ ?ୃ) (?ଌ nil) nil nil (?ଏ ?େ) (?ଐ ?ୈ)
|
||
nil nil (?ଓ ?ୋ) (?ଔ ?ୌ) (?ୠ nil) (?ୡ nil))
|
||
(;; CONSONANTS
|
||
?କ ?ଖ ?ଗ ?ଘ ?ଙ ;; GUTTRULS
|
||
?ଚ ?ଛ ?ଜ ?ଝ ?ଞ ;; PALATALS
|
||
?ଟ ?ଠ ?ଡ ?ଢ ?ଣ ;; CEREBRALS
|
||
?ତ ?ଥ ?ଦ ?ଧ ?ନ nil ;; DENTALS
|
||
?ପ ?ଫ ?ବ ?ଭ ?ମ ;; LABIALS
|
||
?ଯ ?ର nil ?ଲ ?ଳ nil nil ;; SEMIVOWELS
|
||
?ଶ ?ଷ ?ସ ?ହ ;; SIBILANTS
|
||
nil nil nil nil ?ଡ଼ ?ଢ଼ nil ?ୟ ;; NUKTAS
|
||
"ଜ୍ଞ" "କ୍ଷ")
|
||
(;; Misc Symbols
|
||
?ଁ ?ଂ ?ଃ ?ଽ ?୍ nil nil)
|
||
(;; Digits
|
||
?୦ ?୧ ?୨ ?୩ ?୪ ?୫ ?୬ ?୭ ?୮ ?୯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"୍ର" "ର୍" "ତ୍ର" "ଶ୍ର" "଼")))
|
||
|
||
(defvar indian-bng-base-table
|
||
'(
|
||
(;; VOWELS
|
||
(?অ nil) (?আ ?া) (?ই ?ি) (?ঈ ?ী) (?উ ?ু) (?ঊ ?ূ)
|
||
(?ঋ ?ৃ) (?ঌ ?ৢ) nil nil (?এ ?ে) (?ঐ ?ৈ)
|
||
nil nil (?ও ?ো) (?ঔ ?ৌ) (?ৠ ?ৄ) (?ৡ ?ৣ))
|
||
(;; CONSONANTS
|
||
?ক ?খ ?গ ?ঘ ?ঙ ;; GUTTRULS
|
||
?চ ?ছ ?জ ?ঝ ?ঞ ;; PALATALS
|
||
?ট ?ঠ ?ড ?ঢ ?ণ ;; CEREBRALS
|
||
?ত ?থ ?দ ?ধ ?ন nil ;; DENTALS
|
||
?প ?ফ ?ব ?ভ ?ম ;; LABIALS
|
||
?য ?র nil ?ল nil nil nil ;; SEMIVOWELS
|
||
?শ ?ষ ?স ?হ ;; SIBILANTS
|
||
nil nil nil nil ?ড় ?ঢ় nil ?য় ;; NUKTAS
|
||
"জ্ঞ" "ক্ষ")
|
||
(;; Misc Symbols
|
||
?ঁ ?ং ?ঃ nil ?্ nil nil)
|
||
(;; Digits
|
||
?০ ?১ ?২ ?৩ ?৪ ?৫ ?৬ ?৭ ?৮ ?৯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"্র" "র্" "ত্র" "শ্র" "়")))
|
||
|
||
(defvar indian-asm-base-table
|
||
'(
|
||
(;; VOWELS
|
||
(?অ nil) (?আ ?া) (?ই ?ি) (?ঈ ?ী) (?উ ?ু) (?ঊ ?ূ)
|
||
(?ঋ ?ৃ) (?ঌ ?ৢ) nil nil (?এ ?ে) (?ঐ ?ৈ)
|
||
nil nil (?ও ?ো) (?ঔ ?ৌ) (?ৠ ?ৄ) (?ৡ ?ৣ))
|
||
(;; CONSONANTS
|
||
?ক ?খ ?গ ?ঘ ?ঙ ;; GUTTRULS
|
||
?চ ?ছ ?জ ?ঝ ?ঞ ;; PALATALS
|
||
?ট ?ঠ ?ড ?ঢ ?ণ ;; CEREBRALS
|
||
?ত ?থ ?দ ?ধ ?ন nil ;; DENTALS
|
||
?প ?ফ ?ব ?ভ ?ম ;; LABIALS
|
||
?য ?ৰ nil ?ল nil nil ?ৱ ;; SEMIVOWELS
|
||
?শ ?ষ ?স ?হ ;; SIBILANTS
|
||
nil nil nil nil ?ড় ?ঢ় nil ?য় ;; NUKTAS
|
||
"জ্ঞ" "ক্ষ")
|
||
(;; Misc Symbols
|
||
?ঁ ?ং ?ঃ nil ?্ nil nil)
|
||
(;; Digits
|
||
?০ ?১ ?২ ?৩ ?৪ ?৫ ?৬ ?৭ ?৮ ?৯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"্ৰ" "ৰ্" "ত্ৰ" "শ্ৰ" "়")))
|
||
|
||
(defvar indian-tlg-base-table
|
||
'(
|
||
(;; VOWELS
|
||
(?అ nil) (?ఆ ?ా) (?ఇ ?ి) (?ఈ ?ీ) (?ఉ ?ు) (?ఊ ?ూ)
|
||
(?ఋ ?ృ) (?ఌ nil) nil (?ఏ ?ే) (?ఎ ?ె) (?ఐ ?ై)
|
||
nil (?ఓ ?ో) (?ఒ ?ొ) (?ఔ ?ౌ) (?ౠ ?ౄ) (?ౡ nil))
|
||
(;; CONSONANTS
|
||
?క ?ఖ ?గ ?ఘ ?ఙ ;; GUTTRULS
|
||
?చ ?ఛ ?జ ?ఝ ?ఞ ;; PALATALS
|
||
?ట ?ఠ ?డ ?ఢ ?ణ ;; CEREBRALS
|
||
?త ?థ ?ద ?ధ ?న nil ;; DENTALS
|
||
?ప ?ఫ ?బ ?భ ?మ ;; LABIALS
|
||
?య ?ర ?ఱ ?ల ?ళ nil ?వ ;; SEMIVOWELS
|
||
?శ ?ష ?స ?హ ;; SIBILANTS
|
||
nil nil nil nil nil nil nil nil ;; NUKTAS
|
||
"జ్ఞ" "క్ష")
|
||
(;; Misc Symbols
|
||
?ఁ ?ం ?ః nil ?్ nil nil)
|
||
(;; Digits
|
||
?౦ ?౧ ?౨ ?౩ ?౪ ?౫ ?౬ ?౭ ?౮ ?౯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"్ర" "ర్" "త్ర" "శ్ర" nil)))
|
||
|
||
(defvar indian-knd-base-table
|
||
'(
|
||
(;; VOWELS
|
||
(?ಅ nil) (?ಆ ?ಾ) (?ಇ ?ಿ) (?ಈ ?ೀ) (?ಉ ?ು) (?ಊ ?ೂ)
|
||
(?ಋ ?ೃ) (?ಌ nil) nil (?ಏ ?ೇ) (?ಎ ?ೆ) (?ಐ ?ೈ)
|
||
nil (?ಓ ?ೋ) (?ಒ ?ೊ) (?ಔ ?ೌ) (?ೠ ?ೄ) (?ೡ nil))
|
||
(;; CONSONANTS
|
||
?ಕ ?ಖ ?ಗ ?ಘ ?ಙ ;; GUTTRULS
|
||
?ಚ ?ಛ ?ಜ ?ಝ ?ಞ ;; PALATALS
|
||
?ಟ ?ಠ ?ಡ ?ಢ ?ಣ ;; CEREBRALS
|
||
?ತ ?ಥ ?ದ ?ಧ ?ನ nil ;; DENTALS
|
||
?ಪ ?ಫ ?ಬ ?ಭ ?ಮ ;; LABIALS
|
||
?ಯ ?ರ ?ಱ ?ಲ ?ಳ nil ?ವ ;; SEMIVOWELS
|
||
?ಶ ?ಷ ?ಸ ?ಹ ;; SIBILANTS
|
||
nil nil nil nil nil nil ?ೞ nil ;; NUKTAS
|
||
"ಜ್ಞ" "ಕ್ಷ")
|
||
(;; Misc Symbols
|
||
nil ?ಂ ?ಃ nil ?್ nil nil)
|
||
(;; Digits
|
||
?೦ ?೧ ?೨ ?೩ ?೪ ?೫ ?೬ ?೭ ?೮ ?೯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"್ರ" "ರ್" "ತ್ರ" "ಶ್ರ" nil)))
|
||
|
||
(defvar indian-mlm-base-table
|
||
'(
|
||
(;; VOWELS
|
||
(?അ nil) (?ആ ?ാ) (?ഇ ?ി) (?ഈ ?ീ) (?ഉ ?ു) (?ഊ ?ൂ)
|
||
(?ഋ ?ൃ) (?ഌ nil) nil (?ഏ ?േ) (?എ ?െ) (?ഐ ?ൈ)
|
||
nil (?ഓ ?ോ) (?ഒ ?ൊ) (?ഔ ?ൌ) nil nil)
|
||
(;; CONSONANTS
|
||
?ക ?ഖ ?ഗ ?ഘ ?ങ ;; GUTTRULS
|
||
?ച ?ഛ ?ജ ?ഝ ?ഞ ;; PALATALS
|
||
?ട ?ഠ ?ഡ ?ഢ ?ണ ;; CEREBRALS
|
||
?ത ?ഥ ?ദ ?ധ ?ന nil ;; DENTALS
|
||
?പ ?ഫ ?ബ ?ഭ ?മ ;; LABIALS
|
||
?യ ?ര ?റ ?ല ?ള ?ഴ ?വ ;; SEMIVOWELS
|
||
?ശ ?ഷ ?സ ?ഹ ;; SIBILANTS
|
||
nil nil nil nil nil nil nil nil ;; NUKTAS
|
||
"ജ്ഞ" "ക്ഷ")
|
||
(;; Misc Symbols
|
||
nil ?ം ?ഃ nil ?് nil nil)
|
||
(;; Digits
|
||
?൦ ?൧ ?൨ ?൩ ?൪ ?൫ ?൬ ?൭ ?൮ ?൯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"്ര" "ര്" "ത്ര" "ശ്ര" nil)))
|
||
|
||
(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
|
||
?௦ ?௧ ?௨ ?௩ ?௪ ?௫ ?௬ ?௭ ?௮ ?௯)
|
||
(;; Inscript-extra (4) (#, $, ^, *, ])
|
||
"்ர" "ர்" "த்ர" nil nil)))
|
||
|
||
(defvar indian-base-table-to-language-alist
|
||
'((indian-dev-base-table . "Devanagari")
|
||
(indian-pnj-base-table . "Punjabi")
|
||
(indian-ori-base-table . "Oriya")
|
||
(indian-bng-base-table . "Bengali")
|
||
(indian-asm-base-table . "Assamese")
|
||
(indian-tlg-base-table . "Telugu")
|
||
(indian-knd-base-table . "Kannada")
|
||
(indian-mlm-base-table . "Malayalam")
|
||
(indian-tml-base-table . "Tamil")))
|
||
|
||
(defvar indian-itrans-v5-table
|
||
'(;; for encode/decode
|
||
(;; vowels -- 18
|
||
"a" ("aa" "A") "i" ("ii" "I") "u" ("uu" "U")
|
||
("RRi" "R^i") ("LLi" "L^i") (".c" "e.c") "E" "e" "ai"
|
||
"o.c" "O" "o" "au" ("RRI" "R^I") ("LLI" "L^I"))
|
||
(;; consonants -- 40
|
||
"k" "kh" "g" "gh" ("~N" "N^")
|
||
"ch" ("Ch" "chh") "j" "jh" ("~n" "JN")
|
||
"T" "Th" "D" "Dh" "N"
|
||
"t" "th" "d" "dh" "n" "nh"
|
||
"p" "ph" "b" "bh" "m"
|
||
"y" "r" "rh" "l" ("L" "ld") nil ("v" "w")
|
||
"sh" ("Sh" "shh") "s" "h"
|
||
"q" "K" "G" ("J" "z") ".D" ".Dh" "f" ("Y" "yh")
|
||
("GY" "dny") "x")
|
||
(;; misc -- 7
|
||
".N" (".n" "M") "H" ".a" ".h" ("AUM" "OM") "..")))
|
||
|
||
(defvar indian-itrans-v5-table-for-tamil
|
||
'(;; for encode/decode
|
||
(;; vowels -- 18
|
||
"a" ("aa" "A") "i" ("ii" "I") "u" ("uu" "U")
|
||
("RRi" "R^i") ("LLi" "L^i") (".c" "e.c") "E" "e" "ai"
|
||
"o.c" "O" "o" "au" ("RRI" "R^I") ("LLI" "L^I"))
|
||
(;; consonants -- 40
|
||
"k" "kh" "g" "gh" ("~N" "N^")
|
||
"ch" ("Ch" "chh") "j" "jh" ("~n" "JN")
|
||
"T" "Th" "D" "Dh" "N"
|
||
"t" "th" "d" "dh" "n" "nh"
|
||
"p" "ph" "b" "bh" "m"
|
||
"y" "r" "rh" "l" ("L" "ld") ("J" "z") ("v" "w")
|
||
"sh" ("Sh" "shh") "s" "h"
|
||
"q" "K" "G" nil ".D" ".Dh" "f" ("Y" "yh")
|
||
("GY" "dny") "x")
|
||
(;; misc -- 7
|
||
".N" (".n" "M") "H" ".a" ".h" ("AUM" "OM") "..")))
|
||
|
||
(defvar indian-kyoto-harvard-table
|
||
'(;; for encode/decode
|
||
(;; vowel
|
||
"a" ("A" "aa") "i" ("I" "ii") "u" ("U" "uu")
|
||
"R" ("L" "lR") nil nil "e" "ai"
|
||
nil nil "o" "au" ("q" "RR" "Q") ("E" "LL" "lRR"))
|
||
(;; consonant
|
||
"k" "kh" "g" "gh" "G"
|
||
"c" "ch" "j" "jh" "J"
|
||
"T" "Th" "D" "Dh" "N"
|
||
"t" "th" "d" "dh" "n" nil
|
||
"p" "ph" "b" "bh" "m"
|
||
"y" "r" nil "l" "L" nil "v"
|
||
("z" "Z") "S" "s" "h"
|
||
nil nil nil nil nil nil nil nil
|
||
nil nil)
|
||
(;; misc
|
||
nil "M" "H" "'" nil "." nil)))
|
||
|
||
(defvar indian-harvard-table
|
||
'(;; for encode/decode
|
||
(;; vowel
|
||
"a" ("A" "aa") "i" ("I" "ii") "u" ("U" "uu")
|
||
"R" ("L" "lR") nil nil "e" "ai"
|
||
nil nil "o" "au" ("RR" "q" "Q") ("LL" "E" "lRR"))
|
||
(;; consonant
|
||
"k" "kh" "g" "gh" "G"
|
||
"c" "ch" "j" "jh" "J"
|
||
"T" "Th" "D" "Dh" "N"
|
||
"t" "th" "d" "dh" "n" nil
|
||
"p" "ph" "b" "bh" "m"
|
||
"y" "r" nil "l" "L" nil "v"
|
||
("z" "Z") "S" "s" "h"
|
||
nil nil nil nil nil nil nil nil
|
||
nil nil)
|
||
(;; misc
|
||
nil "M" "H" "'" nil "." nil)))
|
||
|
||
(defvar indian-tokyo-table
|
||
'(;; for encode/decode
|
||
(;; vowel
|
||
"a" ("A" "aa") "i" ("I" "ii") "u" ("U" "uu")
|
||
"R" ("L" "lR") nil nil "e" "ai"
|
||
nil nil "o" "au" ("Q" "RR" "q") ("E" "LL" "lRR"))
|
||
(;; consonant
|
||
"k" "kh" "g" "gh" "G"
|
||
"c" "ch" "j" "jh" "J"
|
||
"T" "Th" "D" "Dh" "N"
|
||
"t" "th" "d" "dh" "n" nil
|
||
"p" "ph" "b" "bh" "m"
|
||
"y" "r" nil "l" "L" nil "v"
|
||
("Z" "z") "S" "s" "h"
|
||
nil nil nil nil nil nil nil nil
|
||
nil nil)
|
||
(;; misc
|
||
nil "M" "H" "'" nil "." nil)))
|
||
|
||
(defvar indian-aiba-table
|
||
'(;; for encode/decode
|
||
(;; vowel
|
||
"a" "aa" "i" "ii" "u" "uu"
|
||
".r" ".l" nil nil "e" "ai"
|
||
nil nil "o" "au" "~r" "~l")
|
||
(;; consonant
|
||
"k" "kh" "g" "gh" "^n"
|
||
"c" "ch" "j" "jh" "~n"
|
||
".t" ".th" ".d" ".dh" ".n"
|
||
"t" "th" "d" "dh" "n" nil
|
||
"p" "ph" "b" "bh" "m"
|
||
"y" "r" nil "l" nil nil "v"
|
||
"^s" ".s" "s" "h"
|
||
nil nil nil nil nil nil nil nil
|
||
nil nil)
|
||
(;; misc
|
||
nil ".m" ".h" "'" nil "." nil)))
|
||
|
||
(defun combinatorial (head &rest tail)
|
||
(if tail
|
||
(apply 'append
|
||
(mapcar (lambda (y) (mapcar (lambda (x) (cons x y)) head))
|
||
(apply 'combinatorial tail)))
|
||
(mapcar 'list head)))
|
||
|
||
(defun indian--puthash-char (char trans-char hashtbls)
|
||
(let ((encode-hash (car hashtbls)) ;; char -> trans
|
||
(decode-hash (cdr hashtbls)) ;; trans -> char
|
||
)
|
||
;; char -- nil / char / string (/ list of vowel & matra)
|
||
;; trans-char -- nil / string / list of strings
|
||
(when (and char trans-char)
|
||
(if (stringp trans-char) (setq trans-char (list trans-char)))
|
||
(if (characterp char) (setq char (char-to-string char)))
|
||
(puthash char (car trans-char) encode-hash)
|
||
(dolist (trans trans-char)
|
||
(puthash trans char decode-hash)))))
|
||
|
||
(defun indian--map (f l1 l2)
|
||
(while l1
|
||
(funcall f (pop l1) (pop l2))))
|
||
|
||
(defun indian--puthash-v (v trans-v hashtbls)
|
||
(indian--map
|
||
(lambda (v trans-v)
|
||
(indian--puthash-char (car v) trans-v hashtbls))
|
||
v trans-v))
|
||
|
||
(defun indian--puthash-c (c trans-c halant hashtbls)
|
||
(indian--map
|
||
(lambda (c trans-c)
|
||
(if (characterp c) (setq c (char-to-string c)))
|
||
(indian--puthash-char (concat c halant) trans-c hashtbls))
|
||
c trans-c))
|
||
|
||
(defun indian--puthash-m (m trans-m hashtbls)
|
||
(indian--map
|
||
(lambda (m trans-m)
|
||
(indian--puthash-char m trans-m hashtbls))
|
||
m trans-m))
|
||
|
||
(defun indian--puthash-cv (c trans-c v trans-v hashtbls)
|
||
(indian--map
|
||
(lambda (c trans-c)
|
||
(indian--map
|
||
(lambda (v trans-v)
|
||
(when (and c trans-c v trans-v)
|
||
(if (characterp c) (setq c (char-to-string c)))
|
||
(setq v (if (characterp (cadr v)) (char-to-string (cadr v)) ""))
|
||
(if (stringp trans-c) (setq trans-c (list trans-c)))
|
||
(if (stringp trans-v) (setq trans-v (list trans-v)))
|
||
(indian--puthash-char
|
||
(concat c v)
|
||
(mapcar (lambda (x) (apply 'concat x))
|
||
(combinatorial trans-c trans-v))
|
||
hashtbls)))
|
||
v trans-v))
|
||
c trans-c))
|
||
|
||
(defun indian-make-hash (table trans-table)
|
||
"Indian Transliteration Hash for decode/encode"
|
||
(let* ((encode-hash (make-hash-table :test 'equal))
|
||
(decode-hash (make-hash-table :test 'equal))
|
||
(hashtbls (cons encode-hash decode-hash))
|
||
(vowels (elt table 0))
|
||
(consonants (elt table 1))
|
||
(misc (elt table 2))
|
||
(digits (elt table 3))
|
||
(halant (char-to-string (elt misc 4)))
|
||
(trans-vowels (elt trans-table 0))
|
||
(trans-consonants (elt trans-table 1))
|
||
(trans-misc (elt trans-table 2))
|
||
(trans-digits '("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")))
|
||
(indian--puthash-v vowels trans-vowels hashtbls)
|
||
(indian--puthash-c consonants trans-consonants halant hashtbls)
|
||
(indian--puthash-cv consonants trans-consonants
|
||
vowels trans-vowels hashtbls)
|
||
(indian--puthash-m misc trans-misc hashtbls)
|
||
(indian--puthash-m digits trans-digits hashtbls)
|
||
hashtbls))
|
||
|
||
(defvar indian-dev-itrans-v5-hash
|
||
(indian-make-hash indian-dev-base-table
|
||
indian-itrans-v5-table))
|
||
(defvar indian-dev-kyoto-harvard-hash
|
||
(indian-make-hash indian-dev-base-table
|
||
indian-kyoto-harvard-table))
|
||
(defvar indian-dev-aiba-hash
|
||
(indian-make-hash indian-dev-base-table
|
||
indian-aiba-table))
|
||
|
||
(defvar indian-pnj-itrans-v5-hash
|
||
(indian-make-hash indian-pnj-base-table
|
||
indian-itrans-v5-table))
|
||
|
||
(defvar indian-gjr-itrans-v5-hash
|
||
(indian-make-hash indian-gjr-base-table
|
||
indian-itrans-v5-table))
|
||
|
||
(defvar indian-ori-itrans-v5-hash
|
||
(indian-make-hash indian-ori-base-table
|
||
indian-itrans-v5-table))
|
||
|
||
(defvar indian-bng-itrans-v5-hash
|
||
(indian-make-hash indian-bng-base-table
|
||
indian-itrans-v5-table))
|
||
|
||
(defvar indian-asm-itrans-v5-hash
|
||
(indian-make-hash indian-asm-base-table
|
||
indian-itrans-v5-table))
|
||
|
||
(defvar indian-tlg-itrans-v5-hash
|
||
(indian-make-hash indian-tlg-base-table
|
||
indian-itrans-v5-table))
|
||
|
||
(defvar indian-knd-itrans-v5-hash
|
||
(indian-make-hash indian-knd-base-table
|
||
indian-itrans-v5-table))
|
||
|
||
(defvar indian-mlm-itrans-v5-hash
|
||
(indian-make-hash indian-mlm-base-table
|
||
indian-itrans-v5-table))
|
||
|
||
(defvar indian-tml-itrans-v5-hash
|
||
(indian-make-hash indian-tml-base-table
|
||
indian-itrans-v5-table-for-tamil))
|
||
)
|
||
|
||
(defmacro indian-translate-region (from to hashtable encode-p)
|
||
`(save-excursion
|
||
(save-restriction
|
||
(let ((regexp ,(indian-regexp-of-hashtbl-keys
|
||
(if encode-p (car (eval hashtable))
|
||
(cdr (eval hashtable))))))
|
||
(narrow-to-region from to)
|
||
(goto-char (point-min))
|
||
(while (re-search-forward regexp nil t)
|
||
(let ((matchstr (gethash (match-string 0)
|
||
(if ,encode-p
|
||
(car ,hashtable)
|
||
(cdr ,hashtable)))))
|
||
(if matchstr (replace-match matchstr))))))))
|
||
|
||
;;;
|
||
|
||
(defun indian-dev-itrans-v5-encode-region (from to)
|
||
(interactive "r")
|
||
(indian-translate-region
|
||
from to indian-dev-itrans-v5-hash t))
|
||
|
||
(defun indian-dev-itrans-v5-decode-region (from to)
|
||
(interactive "r")
|
||
(indian-translate-region
|
||
from to indian-dev-itrans-v5-hash nil))
|
||
|
||
(defun indian-dev-kyoto-harvard-encode-region (from to)
|
||
(interactive "r")
|
||
(indian-translate-region
|
||
from to indian-dev-kyoto-harvard-hash t))
|
||
|
||
(defun indian-dev-kyoto-harvard-decode-region (from to)
|
||
(interactive "r")
|
||
(indian-translate-region
|
||
from to indian-dev-kyoto-harvard-hash nil))
|
||
|
||
(defun indian-dev-aiba-encode-region (from to)
|
||
(interactive "r")
|
||
(indian-translate-region
|
||
from to indian-dev-aiba-hash t))
|
||
|
||
(defun indian-dev-aiba-decode-region (from to)
|
||
(interactive "r")
|
||
(indian-translate-region
|
||
from to indian-dev-aiba-hash nil))
|
||
|
||
|
||
|
||
|
||
;;; IS 13194 utilities
|
||
|
||
;; The followings provide conversion between IS 13194 (ISCII) and UCS.
|
||
|
||
(let
|
||
;;Unicode vs IS13194 ;; only Devanagari is supported now.
|
||
((ucs-devanagari-to-is13194-alist
|
||
'((?\x0900 . "[U+0900]")
|
||
(?\x0901 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0902 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0903 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0904 . "[U+0904]")
|
||
(?\x0905 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0906 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0907 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0908 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0909 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x090a . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x090b . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x090c . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x090d . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x090e . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x090f . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0910 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0911 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0912 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0913 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0914 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0915 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0916 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0917 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0918 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0919 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x091a . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x091b . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x091c . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x091d . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x091e . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x091f . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0920 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0921 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0922 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0923 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0924 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0925 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0926 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0927 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0928 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0929 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x092a . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x092b . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x092c . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x092d . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x092e . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x092f . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0930 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0931 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0932 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0933 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0934 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0935 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0936 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0937 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0938 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0939 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x093a . "[U+093a]")
|
||
(?\x093b . "[U+093b]")
|
||
(?\x093c . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x093d . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x093e . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x093f . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0940 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0941 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0942 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0943 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0944 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0945 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0946 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0947 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0948 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0949 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x094a . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x094b . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x094c . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x094d . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x094e . "[U+094e]")
|
||
(?\x094f . "[U+094f]")
|
||
(?\x0950 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0951 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0952 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0953 . "[DEVANAGARI GRAVE ACCENT]")
|
||
(?\x0954 . "[DEVANAGARI ACUTE ACCENT]")
|
||
(?\x0955 . "[U+0955]")
|
||
(?\x0956 . "[U+0956]")
|
||
(?\x0957 . "[U+0957]")
|
||
(?\x0958 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0959 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x095a . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x095b . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x095c . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x095d . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x095e . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x095f . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0960 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0961 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0962 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0963 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0964 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0965 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0966 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0967 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0968 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0969 . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x096a . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x096b . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x096c . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x096d . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x096e . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x096f . "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||
(?\x0970 . "[U+0970]")
|
||
(?\x0971 . "[U+0971]")
|
||
(?\x0972 . "[U+0972]")
|
||
(?\x0973 . "[U+0973]")
|
||
(?\x0974 . "[U+0974]")
|
||
(?\x0975 . "[U+0975]")
|
||
(?\x0976 . "[U+0976]")
|
||
(?\x0977 . "[U+0977]")
|
||
(?\x0978 . "[U+0978]")
|
||
(?\x0979 . "[U+0979]")
|
||
(?\x097a . "[U+097a]")
|
||
(?\x097b . "[U+097b]")
|
||
(?\x097c . "[U+097c]")
|
||
(?\x097d . "[U+097d]")
|
||
(?\x097e . "[U+097e]")
|
||
(?\x097f . "[U+097f]")))
|
||
(ucs-bengali-to-is13194-alist nil)
|
||
(ucs-assamese-to-is13194-alist nil)
|
||
(ucs-gurmukhi-to-is13194-alist nil)
|
||
(ucs-gujarati-to-is13194-alist nil)
|
||
(ucs-oriya-to-is13194-alist nil)
|
||
(ucs-tamil-to-is13194-alist nil)
|
||
(ucs-telugu-to-is13194-alist nil)
|
||
(ucs-malayalam-to-is13194-alist nil)
|
||
(ucs-kannada-to-is13194-alist nil))
|
||
(dolist (script '(devanagari bengali assamese gurmukhi gujarati
|
||
oriya tamil telugu malayalam kannada))
|
||
(let ((hashtable (intern (concat "is13194-to-ucs-"
|
||
(symbol-name script) "-hashtbl" )))
|
||
(regexp (intern (concat "is13194-to-ucs-"
|
||
(symbol-name script) "-regexp"))))
|
||
(set hashtable (make-hash-table :test 'equal :size 128))
|
||
(dolist (x (eval (intern (concat "ucs-" (symbol-name script)
|
||
"-to-is13194-alist"))))
|
||
(put-char-code-property (car x) 'script script)
|
||
(put-char-code-property (car x) 'iscii (cdr x))
|
||
(puthash (cdr x) (char-to-string (car x)) (eval hashtable)))
|
||
(set regexp (indian-regexp-of-hashtbl-keys (eval hashtable))))))
|
||
|
||
(defvar is13194-default-repertory 'devanagari)
|
||
|
||
(defvar is13194-repertory-to-ucs-script
|
||
`((DEF ?\x40 ,is13194-default-repertory)
|
||
(RMN ?\x41 ,is13194-default-repertory)
|
||
(DEV ?\x42 devanagari)
|
||
(BNG ?\x43 bengali)
|
||
(TML ?\x44 tamil)
|
||
(TLG ?\x45 telugu)
|
||
(ASM ?\x46 bengali)
|
||
(ORI ?\x47 oriya)
|
||
(KND ?\x48 kannada)
|
||
(MLM ?\x49 malayalam)
|
||
(GJR ?\x4a gujarati)
|
||
(PNJ ?\x4b gurmukhi)))
|
||
|
||
;; for guiding find-variable function.
|
||
(defvar is13194-to-ucs-devanagari-hashtbl nil)
|
||
(defvar is13194-to-ucs-devanagari-regexp nil)
|
||
(defvar is13194-to-ucs-bengali-hashtbl nil)
|
||
(defvar is13194-to-ucs-bengali-regexp nil)
|
||
(defvar is13194-to-ucs-assamese-hashtbl nil)
|
||
(defvar is13194-to-ucs-assamese-regexp nil)
|
||
(defvar is13194-to-ucs-gurmukhi-hashtbl nil)
|
||
(defvar is13194-to-ucs-gurmukhi-regexp nil)
|
||
(defvar is13194-to-ucs-gujarati-hashtbl nil)
|
||
(defvar is13194-to-ucs-gujarati-regexp nil)
|
||
(defvar is13194-to-ucs-oriya-hashtbl nil)
|
||
(defvar is13194-to-ucs-oriya-regexp nil)
|
||
(defvar is13194-to-ucs-tamil-hashtbl nil)
|
||
(defvar is13194-to-ucs-tamil-regexp nil)
|
||
(defvar is13194-to-ucs-telugu-hashtbl nil)
|
||
(defvar is13194-to-ucs-telugu-regexp nil)
|
||
(defvar is13194-to-ucs-malayalam-hashtbl nil)
|
||
(defvar is13194-to-ucs-malayalam-regexp nil)
|
||
(defvar is13194-to-ucs-kannada-hashtbl nil)
|
||
(defvar is13194-to-ucs-kannada-regexp nil)
|
||
|
||
(defvar ucs-to-is13194-regexp
|
||
;; only Devanagari is supported now.
|
||
(concat "[" (char-to-string #x0900)
|
||
"-" (char-to-string #x097f) "]")
|
||
"Regexp that matches to conversion")
|
||
|
||
(defun ucs-to-iscii-region (from to)
|
||
"Converts the indian UCS characters in the region to ISCII.
|
||
Returns new end position."
|
||
(interactive "r")
|
||
;; only Devanagari is supported now.
|
||
(save-excursion
|
||
(save-restriction
|
||
(narrow-to-region from to)
|
||
(goto-char (point-min))
|
||
(let* ((current-repertory is13194-default-repertory))
|
||
(while (re-search-forward ucs-to-is13194-regexp nil t)
|
||
(replace-match
|
||
(get-char-code-property (string-to-char (match-string 0))
|
||
'iscii))))
|
||
(point-max))))
|
||
|
||
(defun iscii-to-ucs-region (from to)
|
||
"Converts the ISCII characters in the region to UCS.
|
||
Returns new end position."
|
||
(interactive "r")
|
||
;; only Devanagari is supported now.
|
||
(save-excursion
|
||
(save-restriction
|
||
(narrow-to-region from to)
|
||
(goto-char (point-min))
|
||
(let* ((current-repertory is13194-default-repertory)
|
||
(current-hashtable
|
||
(intern (concat "is13194-to-ucs-"
|
||
(symbol-name current-repertory) "-hashtbl")))
|
||
(current-regexp
|
||
(intern (concat "is13194-to-ucs-"
|
||
(symbol-name current-repertory) "-regexp")))
|
||
(re (eval current-regexp))
|
||
(hash (eval current-hashtable)))
|
||
(while (re-search-forward re nil t)
|
||
(replace-match (gethash (match-string 0) hash ""))))
|
||
(point-max))))
|
||
|
||
;;;###autoload
|
||
(defun indian-compose-region (from to)
|
||
"Compose the region according to `composition-function-table'."
|
||
(interactive "r")
|
||
(save-excursion
|
||
(save-restriction
|
||
(let ((pos from) newpos func (max to))
|
||
(narrow-to-region from to)
|
||
(while (< pos max)
|
||
(setq func (aref composition-function-table (char-after pos)))
|
||
(if (fboundp func)
|
||
(setq newpos (funcall func pos nil)
|
||
pos (if (and (integerp newpos) (> newpos pos))
|
||
newpos (1+ pos)))
|
||
(setq pos (1+ pos))))))))
|
||
|
||
;;;###autoload
|
||
(defun indian-compose-string (string)
|
||
(with-temp-buffer
|
||
(insert string)
|
||
(indian-compose-region (point-min) (point-max))
|
||
(buffer-string)))
|
||
|
||
;;;###autoload
|
||
(defun in-is13194-post-read-conversion (len)
|
||
(let ((pos (point)) endpos)
|
||
(setq endpos (iscii-to-ucs-region pos (+ pos len)))
|
||
(- endpos pos)))
|
||
|
||
;;;###autoload
|
||
(defun in-is13194-pre-write-conversion (from to)
|
||
(let ((buf (current-buffer)))
|
||
(set-buffer (generate-new-buffer " *temp*"))
|
||
(if (stringp from)
|
||
(insert from)
|
||
(insert-buffer-substring buf from to))
|
||
(ucs-to-iscii-region (point-min) (point-max))
|
||
nil))
|
||
|
||
|
||
|
||
|
||
;;; Backward Compatibility support programs
|
||
|
||
;; The following provides the conversion from old-implementation of
|
||
;; Emacs Devanagari script to UCS.
|
||
|
||
(defconst indian-2-colum-to-ucs
|
||
'(
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2120 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ँ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ं")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ः")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "अ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "आ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "इ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ई")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "उ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऊ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऋ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "रृ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऎ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ए")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऐ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऍ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऒ")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2130 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ओ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "औ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऑ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ख")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ग")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "घ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "च")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "छ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ज")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "झ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ञ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ट")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ठ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2140 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ढ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ण")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "त")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "थ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ध")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऩ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "प")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "फ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ब")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "भ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "म")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "य़")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "र")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2150 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऱ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ल")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ळ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऴ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ष")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "स")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ह")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ा")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ि")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ी")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ु")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ू")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ृ")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2160 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॆ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "े")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ै")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॅ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॊ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ो")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ौ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॉ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "़")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "।")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "॥")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2170 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "०")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "१")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "२")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "३")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "४")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "५")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "६")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "७")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "८")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "९")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2220 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ज़्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "फ़्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ग्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "त्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "प्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "फ्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "रु")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "रू")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऱु")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऱू")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2230 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ख्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ग्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "घ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "च्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "च्र्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ज्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "झ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ञ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ञ्")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2240 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ण्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "त्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "थ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ध्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "न्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऩ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "प्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "फ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ब्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ब्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "भ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "म्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "य्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "य़्")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2250 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ल्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ळ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऴ्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "व्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ष्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "स्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "्य")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2260 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ग्र्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "घ्न्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "त्त्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "त्र्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ध्न्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ध्र्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "प्त्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्च्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्र्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्व्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "न्न्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्ष्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ज्ञ्")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2270 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "र्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क़्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ख़्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ग़्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "फ़्")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ज़्")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2320 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॐ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऌ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "रॄ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॡ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "रॣ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॠ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "रॢ")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2330 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क़")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ख़")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ग़")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ज़")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड़")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2340 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ढ़")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "फ़")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ऽ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॄ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॢ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ॣ")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2350 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "म्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "म्ल")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "हृ")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2360 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ल्ल")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "व्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "व्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्च")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्ब")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्ल")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "श्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ष्ट्र्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ष्ट्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ष्ट्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ष्ट")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ष्ठ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "स्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "स्र")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2370 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ह्ण")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ह्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ह्म")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ह्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ह्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ह्ल")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ह्व")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2420 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्त्र्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्त्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्त्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्न्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्र्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्व्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्क")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्त")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्म")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्ल")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "क्ष")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "घ्न")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2430 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्क्त्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्क्ष्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्क्त")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्क्ष")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्घ्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्क्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्ख्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्ग्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्घ्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्क")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्ख")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्ग")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्घ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्ङ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्म")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2440 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ङ्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "च्च")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "च्ञ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "छ्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ज्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ज्ञ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ञ्च")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ञ्ज")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ट्क")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ट्ट")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ट्ठ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ट्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ठ्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड्ग्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड्घ्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड्र्य")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2450 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड्ग")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड्घ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड्ड")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड्म")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ड्य")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2460 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ढ्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "त्त")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "त्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्द्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्ध्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्भ्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्र्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्व्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्ग्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्घ्र")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्द्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्ध्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्ग")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्घ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्द")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्ध")
|
||
;; 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||
;;2470 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्ब")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्भ")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्म")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्य")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "द्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ध्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "न्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "प्त")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "प्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "प्ल")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ब्न")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ब्ब")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "ब्व")
|
||
("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" . "भ्न")))
|
||
|
||
(defconst indian-2-column-to-ucs-regexp
|
||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\\|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\\|[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]<5D><><EFBFBD><EFBFBD>\\|[<5B><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>]")
|
||
|
||
(put 'indian-2-column-to-ucs-chartable 'char-table-extra-slots 1)
|
||
(defconst indian-2-column-to-ucs-chartable
|
||
(let ((table (make-char-table 'indian-2-column-to-ucs-chartable))
|
||
(alist nil))
|
||
(dolist (elt indian-2-colum-to-ucs)
|
||
(if (= (length (car elt)) 1)
|
||
(aset table (aref (car elt) 0) (cdr elt))
|
||
(setq alist (cons elt alist))))
|
||
(set-char-table-extra-slot table 0 alist)
|
||
table))
|
||
|
||
;;;###autoload
|
||
(defun indian-2-column-to-ucs-region (from to)
|
||
"Convert old Emacs Devanagari characters to UCS."
|
||
(interactive "r")
|
||
(save-excursion
|
||
(save-restriction
|
||
(let ((pos from)
|
||
(alist (char-table-extra-slot indian-2-column-to-ucs-chartable 0)))
|
||
(narrow-to-region from to)
|
||
(decompose-region from to)
|
||
(goto-char (point-min))
|
||
(while (re-search-forward indian-2-column-to-ucs-regexp nil t)
|
||
(let ((len (- (match-end 0) (match-beginning 0)))
|
||
subst)
|
||
(if (= len 1)
|
||
(setq subst (aref indian-2-column-to-ucs-chartable
|
||
(char-after (match-beginning 0))))
|
||
(setq subst (cdr (assoc (match-string 0) alist))))
|
||
(replace-match (if subst subst "?"))))
|
||
(indian-compose-region (point-min) (point-max))))))
|
||
|
||
(provide 'ind-util)
|
||
|
||
;;; ind-util.el ends here
|