aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/language/devanagari.el44
1 files changed, 12 insertions, 32 deletions
diff --git a/lisp/language/devanagari.el b/lisp/language/devanagari.el
index ce0d45de552..9fd47c57607 100644
--- a/lisp/language/devanagari.el
+++ b/lisp/language/devanagari.el
@@ -35,10 +35,11 @@
35 "Coding-system used for ASCII(MSB=0) & IS13194-Devanagari(MSB=1)." 35 "Coding-system used for ASCII(MSB=0) & IS13194-Devanagari(MSB=1)."
36 '((ascii t) (indian-is13194 t) nil nil 36 '((ascii t) (indian-is13194 t) nil nil
37 nil ascii-eol)) 37 nil ascii-eol))
38devanagari-compose-from-is13194-region
38(put 'in-is13194-devanagari 39(put 'in-is13194-devanagari
39 'post-read-conversion 'devanagari-compose-from-is13194-region) 40 'post-read-conversion 'in-is13194-devanagari-post-read-conversion)
40(put 'in-is13194-devanagari 41(put 'in-is13194-devanagari
41 'pre-write-conversion 'devanagari-decompose-to-is13194-region) 42 'pre-write-conversion 'in-is13194-devanagari-pre-write-conversion)
42 43
43(register-input-method 44(register-input-method
44 "Devanagari" '("quail-devanagari-transliteration" quail-use-package 45 "Devanagari" '("quail-devanagari-transliteration" quail-use-package
@@ -57,6 +58,8 @@
57 "quail/devanagari")) 58 "quail/devanagari"))
58 59
59(defun setup-devanagari-environment () 60(defun setup-devanagari-environment ()
61 "Setup multilingual environment (MULE) for languages using Devanagari."
62 (interactive)
60 (setq coding-category-iso-8-1 'in-is13194-devanagari) 63 (setq coding-category-iso-8-1 'in-is13194-devanagari)
61 64
62 (set-coding-priority 65 (set-coding-priority
@@ -68,40 +71,17 @@
68 (setq default-input-method '("Devanagari" . "quail-devanagari-itrans")) 71 (setq default-input-method '("Devanagari" . "quail-devanagari-itrans"))
69 ) 72 )
70 73
74(defun describe-devanagari-support ()
75 "Describe how Emacs support languages using Devanagari script."
76 (interactive)
77 (describe-language-support-internal "Devanagari"))
78
71(set-language-info-alist 79(set-language-info-alist
72 "Devanagari" '((setup-function . setup-devanagari-environment) 80 "Devanagari" '((setup-function . setup-devanagari-environment)
81 (describe-function . describe-devanagari-support)
73 (charset . (indian-is13194 indian-2-column indian-1-column)) 82 (charset . (indian-is13194 indian-2-column indian-1-column))
74 (coding-system . (in-is13194-devanagari)) 83 (coding-system . (in-is13194-devanagari))
75 (documentation . t))) 84 (documentation . nil)))
76
77(let ((deflist '(;; chars syntax category
78 ("$(5!!!"!#(B" "w" ?7) ; vowel-modifying diacritical mark
79 ; chandrabindu, anuswar, visarga
80 ("$(5!$(B-$(5!2(B" "w" ?5) ; independent vowel
81 ("$(5!3(B-$(5!X(B" "w" ?0) ; consonant
82 ("$(5!Z(B-$(5!g(B" "w" ?8) ; matra
83 ("$(5!q(B-$(5!z(B" "w" ?6) ; digit
84 ))
85 elm chars len syntax category to ch i)
86 (while deflist
87 (setq elm (car deflist))
88 (setq chars (car elm)
89 len (length chars)
90 syntax (nth 1 elm)
91 category (nth 2 elm)
92 i 0)
93 (while (< i len)
94 (if (= (aref chars i) ?-)
95 (setq i (1+ i)
96 to (sref chars i))
97 (setq ch (sref chars i)
98 to ch))
99 (while (<= ch to)
100 (modify-syntax-entry ch syntax)
101 (modify-category-entry ch category)
102 (setq ch (1+ ch)))
103 (setq i (+ i (char-bytes to))))
104 (setq deflist (cdr deflist))))
105 85
106;; 86;;
107;; Devanagari Glyph List 87;; Devanagari Glyph List