Mercurial > emacs
view lisp/language/devanagari.el @ 17530:9fb83ef40566
(sgml-transformation): Fix previous change.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 22 Apr 1997 04:32:00 +0000 |
parents | f438ebf1c679 |
children | 0f72c04b726d |
line wrap: on
line source
;;; devanagari.el --- Support for Devanagari Languages ;; Copyright (C) 1996 Free Software Foundation, Inc. ;; Author: KAWABATA, Taichi <kawabata@is.s.u-tokyo.ac.jp> ;; 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 2, 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; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; History: ;; 1996.10.18 written by KAWABATA, Taichi <kawabata@is.s.u-tokyo.ac.jp> ;; 1997.1.20 fixed some bugs. ;;; Code: (make-coding-system 'in-is13194-devanagari 2 ?D "Coding-system used for ASCII(MSB=0) & IS13194-Devanagari(MSB=1)." '((ascii t) (indian-is13194 t) nil nil nil ascii-eol)) (put 'in-is13194-devanagari 'post-read-conversion 'devanagari-compose-from-is13194-region) (put 'in-is13194-devanagari 'pre-write-conversion 'devanagari-decompose-to-is13194-region) (register-input-method "Devanagari" '("quail-devanagari-transliteration" quail-use-package "quail/devanagari")) (register-input-method "Devanagari" '("quail-devanagari-keyboard-a" quail-use-package "quail/devanagari")) (register-input-method "Devanagari" '("quail-devanagari-itrans" quail-use-package "quail/devanagari")) (register-input-method "Devanagari" '("quail-devanagari-hindi-transliteration" quail-use-package "quail/devanagari")) (defun setup-devanagari-environment () (setq coding-category-iso-8-1 'in-is13194-devanagari) (set-coding-priority '(coding-category-iso-7 coding-category-iso-8-1)) (setq-default buffer-file-coding-system 'in-is13194-devanagari) (setq default-input-method '("Devanagari" . "quail-devanagari-itrans")) ) (set-language-info-alist "Devanagari" '((setup-function . setup-devanagari-environment) (charset . (indian-is13194 indian-2-column indian-1-column)) (coding-system . (in-is13194-devanagari)) (documentation . t))) (let ((deflist '(;; chars syntax category ("$(5!!!"!#(B" "w" ?7) ; vowel-modifying diacritical mark ; chandrabindu, anuswar, visarga ("$(5!$(B-$(5!2(B" "w" ?5) ; independent vowel ("$(5!3(B-$(5!X(B" "w" ?0) ; consonant ("$(5!Z(B-$(5!g(B" "w" ?8) ; matra ("$(5!q(B-$(5!z(B" "w" ?6) ; digit )) elm chars len syntax category to ch i) (while deflist (setq elm (car deflist)) (setq chars (car elm) len (length chars) syntax (nth 1 elm) category (nth 2 elm) i 0) (while (< i len) (if (= (aref chars i) ?-) (setq i (1+ i) to (sref chars i)) (setq ch (sref chars i) to ch)) (while (<= ch to) (modify-syntax-entry ch syntax) (modify-category-entry ch category) (setq ch (1+ ch))) (setq i (+ i (char-bytes to)))) (setq deflist (cdr deflist)))) ;; ;; Devanagari Glyph List ;; ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f ;;2120 $(5!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/(B ;;2130 $(5!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?(B ;;2140 $(5!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O(B ;;2150 $(5!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_(B ;;2160 $(5!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o(B ;;2170 $(5!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~(B ;; ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f ;;2220 $(5"!"""#"$"%"&"'"(")"*"+","-"."/(B ;;2230 $(5"0"1"2"3"4"5"6"7"8"9":";"<"=">"?(B ;;2240 $(5"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O(B ;;2250 $(5"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_(B ;;2260 $(5"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o(B ;;2270 $(5"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~(B ;; ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f ;;2320 $(5#!#"###$#%#&#'#(#)#*#+#,#-#.#/(B ;;2330 $(5#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?(B ;;2340 $(5#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O(B ;;2350 $(5#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_(B ;;2360 $(5#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o(B ;;2370 $(5#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~(B ;; ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f ;;2420 $(5$!$"$#$$$%$&$'$($)$*$+$,$-$.$/(B ;;2430 $(5$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?(B ;;2440 $(5$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B ;;2450 $(5$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_(B ;;2460 $(5$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o(B ;;2470 $(5$p$q$r$s$t$u$v$w$x$y$z${$|$}$~(B ;; ;; 0123456789abcdef ;;2120 $(6!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/(B ;;2130 $(6!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?(B ;;2140 $(6!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O(B ;;2150 $(6!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_(B ;;2160 $(6!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o(B ;;2170 $(6!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~(B ;; ;; 0123456789abcdef ;;2220 $(6"!"""#"$"%"&"'"(")"*"+","-"."/(B ;;2230 $(6"0"1"2"3"4"5"6"7"8"9":";"<"=">"?(B ;;2240 $(6"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O(B ;;2250 $(6"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_(B ;;2260 $(6"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o(B ;;2270 $(6"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~(B ;;2320 $(6#!#"###$#%#&#'#(#)#*#+#,#-#.#/(B ;;2330 $(6#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?(B ;;2340 $(6#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O(B ;;2350 $(6#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_(B ;;2360 $(6#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o(B ;;2370 $(6#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~(B ;; ;; 0123456789abcdef ;;2320 $(6$!$"$#$$$%$&$'$($)$*$+$,$-$.$/(B ;;2430 $(6$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?(B ;;2440 $(6$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B ;;2450 $(6$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_(B ;;2460 $(6$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o(B ;;2470 $(6$p$q$r$s$t$u$v$w$x$y$z${$|$}$~(B ;; ;; ;; Modify the following table if you change the set of 1-column font. ;; (defconst devanagari-1-column-char '((?$(5!!(B . ?$(6!!(B) (?$(5!"(B . ?$(6!"(B) (?$(5!#(B . ?$(6!#(B) (?$(5!$(B . nil) (?$(5!%(B . nil) (?$(5!&(B . ?$(6!&(B) (?$(5!'(B . ?$(6!'(B) (?$(5!((B . ?$(6!((B) (?$(5!)(B . nil) (?$(5!*(B . nil) (?$(5!+(B . nil) (?$(5!,(B . nil) (?$(5!-(B . nil) (?$(5!.(B . nil) (?$(5!/(B . nil) (?$(5!0(B . nil) (?$(5!1(B . nil) (?$(5!2(B . nil) (?$(5!3(B . nil) (?$(5!4(B . nil) (?$(5!5(B . ?$(6!5(B) (?$(5!6(B . nil) (?$(5!7(B . nil) (?$(5!8(B . nil) (?$(5!9(B . nil) (?$(5!:(B . nil) (?$(5!;(B . nil) (?$(5!<(B . nil) (?$(5!=(B . ?$(6!=(B) (?$(5!>(B . ?$(6!>(B) (?$(5!?(B . ?$(6!?(B) (?$(5!@(B . ?$(6!@(B) (?$(5!A(B . nil) (?$(5!B(B . ?$(6!B(B) (?$(5!C(B . ?$(6!C(B) (?$(5!D(B . ?$(6!D(B) (?$(5!E(B . ?$(6!E(B) (?$(5!F(B . ?$(6!F(B) (?$(5!G(B . ?$(6!G(B) (?$(5!H(B . ?$(6!H(B) (?$(5!I(B . nil) (?$(5!J(B . ?$(6!J(B) (?$(5!K(B . ?$(6!K(B) (?$(5!L(B . ?$(6!L(B) (?$(5!M(B . ?$(6!M(B) (?$(5!N(B . ?$(6!N(B) (?$(5!O(B . ?$(6!O(B) (?$(5!P(B . ?$(6!P(B) (?$(5!Q(B . nil) (?$(5!R(B . nil) (?$(5!S(B . nil) (?$(5!T(B . ?$(6!T(B) (?$(5!U(B . nil) (?$(5!V(B . ?$(6!V(B) (?$(5!W(B . ?$(6!W(B) (?$(5!X(B . ?$(6!X(B) (?$(5!Y(B . nil) (?$(5!Z(B . ?$(6!Z(B) (?$(5![(B . ?$(6![(B) (?$(5!\(B . ?$(6!\(B) (?$(5!](B . ?$(6!](B) (?$(5!^(B . ?$(6!^(B) (?$(5!_(B . ?$(6!_(B) (?$(5!`(B . ?$(6!`(B) (?$(5!a(B . ?$(6!a(B) (?$(5!b(B . ?$(6!b(B) (?$(5!c(B . ?$(6!c(B) (?$(5!d(B . ?$(6!d(B) (?$(5!e(B . ?$(6!e(B) (?$(5!f(B . ?$(6!f(B) (?$(5!g(B . ?$(6!g(B) (?$(5!h(B . ?$(6!h(B) (?$(5!i(B . ?$(6!i(B) (?$(5!j(B . ?$(6!j(B) (nil . nil) (nil . nil) (nil . nil) (nil . nil) (nil . nil) (nil . nil) (?$(5!q(B . ?$(6!q(B) (?$(5!r(B . ?$(6!r(B) (?$(5!s(B . ?$(6!s(B) (?$(5!t(B . ?$(6!t(B) (?$(5!u(B . ?$(6!u(B) (?$(5!v(B . ?$(6!v(B) (?$(5!w(B . ?$(6!w(B) (?$(5!x(B . ?$(6!x(B) (?$(5!y(B . ?$(6!y(B) (?$(5!z(B . ?$(6!z(B) (nil . nil) (nil . nil) (nil . nil) (nil . nil) (?$(5"!(B . nil) (?$(5""(B . nil) (?$(5"#(B . nil) (?$(5"$(B . ?$(6"$(B) (?$(5"%(B . ?$(6"%(B) (?$(5"&(B . ?$(6"&(B) (?$(5"'(B . nil) (?$(5"((B . nil) (?$(5")(B . nil) (?$(5"*(B . nil) (?$(5"+(B . nil) (?$(5",(B . ?$(6",(B) (?$(5"-(B . nil) (?$(5".(B . ?$(6".(B) (?$(5"/(B . nil) (?$(5"0(B . nil) (?$(5"1(B . nil) (?$(5"2(B . nil) (?$(5"3(B . ?$(6"3(B) (?$(5"4(B . ?$(6"4(B) (?$(5"5(B . ?$(6"5(B) (?$(5"6(B . ?$(6"6(B) (?$(5"7(B . nil) (?$(5"8(B . ?$(6"8(B) (?$(5"9(B . nil) (?$(5":(B . ?$(6":(B) (?$(5";(B . ?$(6";(B) (?$(5"<(B . ?$(6"<(B) (?$(5"=(B . nil) (?$(5">(B . nil) (?$(5"?(B . nil) (?$(5"@(B . nil) (?$(5"A(B . ?$(6"A(B) (?$(5"B(B . ?$(6"B(B) (?$(5"C(B . ?$(6"C(B) (?$(5"D(B . nil) (?$(5"E(B . ?$(6"E(B) (?$(5"F(B . ?$(6"F(B) (?$(5"G(B . ?$(6"G(B) (?$(5"H(B . ?$(6"H(B) (?$(5"I(B . ?$(6"I(B) (?$(5"J(B . ?$(6"J(B) (?$(5"K(B . ?$(6"K(B) (?$(5"L(B . ?$(6"L(B) (?$(5"M(B . ?$(6"M(B) (?$(5"N(B . ?$(6"N(B) (?$(5"O(B . nil) (?$(5"P(B . nil) (?$(5"Q(B . ?$(6"Q(B) (?$(5"R(B . nil) (?$(5"S(B . nil) (?$(5"T(B . ?$(6"T(B) (?$(5"U(B . ?$(6"U(B) (?$(5"V(B . ?$(6"V(B) (?$(5"W(B . ?$(6"W(B) (?$(5"X(B . nil) (?$(5"Y(B . nil) (?$(5"Z(B . nil) (?$(5"[(B . nil) (?$(5"\(B . nil) (?$(5"](B . ?$(6"](B) (?$(5"^(B . nil) (?$(5"_(B . nil) (?$(5"`(B . ?$(6"`(B) (?$(5"a(B . ?$(6"a(B) (?$(5"b(B . ?$(6"b(B) (?$(5"c(B . ?$(6"c(B) (?$(5"d(B . ?$(6"d(B) (?$(5"e(B . ?$(6"e(B) (?$(5"f(B . ?$(6"f(B) (?$(5"g(B . ?$(6"g(B) (?$(5"h(B . ?$(6"h(B) (?$(5"i(B . ?$(6"i(B) (?$(5"j(B . ?$(6"j(B) (?$(5"k(B . ?$(6"k(B) (?$(5"l(B . ?$(6"l(B) (?$(5"m(B . ?$(6"m(B) (?$(5"n(B . nil) (?$(5"o(B . nil) (?$(5"p(B . ?$(6"p(B) (?$(5"q(B . ?$(6"q(B) (?$(5"r(B . ?$(6"r(B) (?$(5"s(B . ?$(6"s(B) (?$(5"t(B . ?$(6"t(B) (?$(5"u(B . ?$(6"u(B) (?$(5"v(B . nil) (?$(5"w(B . nil) (?$(5"x(B . nil) (?$(5"y(B . ?$(6"y(B) (?$(5"z(B . ?$(6"z(B) (?$(5"{(B . nil) (?$(5"|(B . nil) (?$(5"}(B . nil) (?$(5"~(B . nil) (?$(5#!(B . nil) (?$(5#"(B . nil) (?$(5##(B . nil) (?$(5#$(B . nil) (?$(5#%(B . nil) (?$(5#&(B . nil) (?$(5#'(B . nil) (?$(5#((B . nil) (?$(5#)(B . nil) (?$(5#*(B . nil) (?$(5#+(B . nil) (?$(5#,(B . nil) (?$(5#-(B . nil) (?$(5#.(B . nil) (?$(5#/(B . nil) (?$(5#0(B . nil) (?$(5#1(B . nil) (?$(5#2(B . nil) (?$(5#3(B . nil) (?$(5#4(B . nil) (?$(5#5(B . ?$(6#5(B) (?$(5#6(B . nil) (?$(5#7(B . nil) (?$(5#8(B . nil) (?$(5#9(B . nil) (?$(5#:(B . nil) (?$(5#;(B . nil) (?$(5#<(B . nil) (?$(5#=(B . nil) (?$(5#>(B . nil) (?$(5#?(B . ?$(6#?(B) (?$(5#@(B . ?$(6#@(B) (?$(5#A(B . nil) (?$(5#B(B . nil) (?$(5#C(B . nil) (?$(5#D(B . nil) (?$(5#E(B . nil) (?$(5#F(B . nil) (?$(5#G(B . nil) (?$(5#H(B . nil) (?$(5#I(B . nil) (?$(5#J(B . ?$(6#J(B) (?$(5#K(B . ?$(6#K(B) (?$(5#L(B . ?$(6#L(B) (?$(5#M(B . ?$(6#M(B) (?$(5#N(B . nil) (?$(5#O(B . nil) (?$(5#P(B . nil) (?$(5#Q(B . nil) (?$(5#R(B . ?$(6#R(B) (?$(5#S(B . nil) (?$(5#T(B . nil) (?$(5#U(B . nil) (?$(5#V(B . nil) (?$(5#W(B . nil) (?$(5#X(B . nil) (?$(5#Y(B . nil) (?$(5#Z(B . nil) (?$(5#[(B . nil) (?$(5#\(B . nil) (?$(5#](B . nil) (?$(5#^(B . nil) (?$(5#_(B . nil) (?$(5#`(B . nil) (?$(5#a(B . ?$(6#a(B) (?$(5#b(B . ?$(6#b(B) (?$(5#c(B . nil) (?$(5#d(B . nil) (?$(5#e(B . nil) (?$(5#f(B . nil) (?$(5#g(B . nil) (?$(5#h(B . nil) (?$(5#i(B . nil) (?$(5#j(B . ?$(6#j(B) (?$(5#k(B . ?$(6#k(B) (?$(5#l(B . ?$(6#l(B) (?$(5#m(B . nil) (?$(5#n(B . nil) (?$(5#o(B . nil) (?$(5#p(B . nil) (?$(5#q(B . nil) (?$(5#r(B . nil) (?$(5#s(B . nil) (?$(5#t(B . nil) (?$(5#u(B . nil) (?$(5#v(B . nil) (?$(5#w(B . nil) (?$(5#x(B . nil) (?$(5#y(B . nil) (?$(5#z(B . nil) (?$(5#{(B . nil) (?$(5#|(B . nil) (?$(5#}(B . nil) (?$(5#~(B . nil) (?$(5$!(B . nil) (?$(5$"(B . nil) (?$(5$#(B . nil) (?$(5$$(B . nil) (?$(5$%(B . nil) (?$(5$&(B . nil) (?$(5$'(B . nil) (?$(5$((B . nil) (?$(5$)(B . nil) (?$(5$*(B . nil) (?$(5$+(B . nil) (?$(5$,(B . nil) (?$(5$-(B . nil) (?$(5$.(B . nil) (?$(5$/(B . nil) (?$(5$0(B . nil) (?$(5$1(B . nil) (?$(5$2(B . nil) (?$(5$3(B . nil) (?$(5$4(B . nil) (?$(5$5(B . nil) (?$(5$6(B . nil) (?$(5$7(B . nil) (?$(5$8(B . nil) (?$(5$9(B . nil) (?$(5$:(B . nil) (?$(5$;(B . nil) (?$(5$<(B . nil) (?$(5$=(B . nil) (?$(5$>(B . nil) (?$(5$?(B . nil) (?$(5$@(B . nil) (?$(5$A(B . ?$(6$A(B) (?$(5$B(B . nil) (?$(5$C(B . nil) (?$(5$D(B . nil) (?$(5$E(B . ?$(6$E(B) (?$(5$F(B . nil) (?$(5$G(B . nil) (?$(5$H(B . ?$(6$H(B) (?$(5$I(B . ?$(6$I(B) (?$(5$J(B . ?$(6$J(B) (?$(5$K(B . nil) (?$(5$L(B . nil) (?$(5$M(B . nil) (?$(5$N(B . ?$(6$N(B) (?$(5$O(B . nil) (?$(5$P(B . ?$(6$P(B) (?$(5$Q(B . ?$(6$Q(B) (?$(5$R(B . ?$(6$R(B) (?$(5$S(B . nil) (?$(5$T(B . nil) (?$(5$U(B . nil) (?$(5$V(B . nil) (?$(5$W(B . nil) (?$(5$X(B . nil) (?$(5$Y(B . nil) (?$(5$Z(B . nil) (?$(5$[(B . nil) (?$(5$\(B . nil) (?$(5$](B . nil) (?$(5$^(B . nil) (?$(5$_(B . nil) (?$(5$`(B . nil) (?$(5$a(B . nil) (?$(5$b(B . nil) (?$(5$c(B . nil) (?$(5$d(B . nil) (?$(5$e(B . nil) (?$(5$f(B . nil) (?$(5$g(B . nil) (?$(5$h(B . ?$(6$h(B) (?$(5$i(B . ?$(6$i(B) (?$(5$j(B . ?$(6$j(B) (?$(5$k(B . nil) (?$(5$l(B . ?$(6$l(B) (?$(5$m(B . ?$(6$m(B) (?$(5$n(B . ?$(6$n(B) (?$(5$o(B . nil) (?$(5$p(B . ?$(6$p(B) (?$(5$q(B . ?$(6$q(B) (?$(5$r(B . ?$(6$r(B) (?$(5$s(B . nil) (?$(5$t(B . nil) (?$(5$u(B . ?$(6$u(B) (?$(5$v(B . ?$(6$v(B) (?$(5$w(B . nil) (?$(5$x(B . ?$(6$x(B) (?$(5$y(B . ?$(6$y(B) (?$(5$z(B . nil) (?$(5${(B . nil) (?$(5$|(B . nil) (?$(5$}(B . nil) (?$(5$~(B . nil) )) ;;; devanagari.el ends here