(make-coding-system
'tibetan-iso-8bit 2 ?Q
"8-bit encoding for ASCII (MSB=0) and TIBETAN (MSB=1)"
'(ascii tibetan nil nil
nil nil)
'((safe-charsets ascii tibetan)
(post-read-conversion . tibetan-post-read-conversion)
(pre-write-conversion . tibetan-pre-write-conversion)))
(define-coding-system-alias 'tibetan 'tibetan-iso-8bit)
(set-language-info-alist
"Tibetan" '((charset tibetan tibetan-1-column)
(coding-system tibetan-iso-8bit)
(coding-priority iso-2022-7bit tibetan-iso-8bit)
(input-method . "tibetan-wylie")
(features tibet-util)
(documentation . t)
(sample-text .
"Tibetan (2$(7"70"](B1$(7"2$(8!
(defconst tibetan-consonant-transcription-alist
'(("tsh" . "$(7" ("dzh" . "$(7"=(B")
("kSH" . "$(7"J(B")
("kh" . "$(7""(B")
("gh" . "$(7"$(B")
("ng" . "$(7"%(B")
("ch" . "$(7"'(B")
("ny" . "$(7"*(B")
("TH" . "$(7",(B")
("DH" . "$(7".(B")
("th" . "$(7"1(B")
("dh" . "$(7"3(B")
("ph" . "$(7"6(B")
("bh" . "$(7"8(B")
("ts" . "$(7":(B")
("dz" . "$(7"<(B")
("zh" . "$(7"?(B")
("sh" . "$(7"E(B")
("SH" . "$(7"F(B")
("k" . "$(7"!(B")
("g" . "$(7"#(B")
("c" . "$(7"&(B")
("j" . "$(7"((B")
("T" . "$(7"+(B")
("D" . "$(7"-(B")
("N" . "$(7"/(B")
("t" . "$(7"0(B")
("d" . "$(7"2(B")
("n" . "$(7"4(B")
("p" . "$(7"5(B")
("b" . "$(7"7(B")
("m" . "$(7"9(B")
("w" . "$(7">(B")
("z" . "$(7"@(B")
("'" . "$(7"A(B")
("y" . "$(7"B(B")
("r" . "$(7"C(B")
("l" . "$(7"D(B")
("s" . "$(7"G(B")
("h" . "$(7"H(B")
("H" . "$(7"H(B")
("A" . "$(7"I(B")))
(defconst tibetan-vowel-transcription-alist
'(("ai" . "$(7"\(B")
("au" . "$(7"^(B")
("ee" . "$(7"\(B")
("oo" . "$(7"^(B")
("a" . "$(7"Q(B") ; invisible vowel sign (\x2251)
("i" . "$(7"S(B")
("u" . "$(7"U(B")
("e" . "$(7"[(B")
("o" . "$(7"](B")
("E" . "$(7"\(B")
("O" . "$(7"^(B")
("I" . "$(7"a(B")
("M" . "$(7"_(B")
("~" . "$(7"c(B") ("`" . "$(7"d(B") ; idem.
("," . "$(7"e(B") ("v" . "$(7"g(B") ; idem.
("V" . "$(7"h(B") ("x" . "$(7"i(B") ; idem.
("X" . "$(7"j(B") ("q" . "$(7"k(B") ; idem.
("Q" . "$(7"l(B") ("_o" . "$(7!g(B") ("_O" . "$(7!e(B") ("_/" . "$(7!I(B") ))
(defconst tibetan-precomposed-transcription-alist
'(("phyw" . "$(7$G(B")
("tshw" . "$(7$)(B")
("rtsw" . "$(7%.(B")
("khw" . "$(7$"(B")
("nyw" . "$(7$%(B")
("tsw" . "$(7$((B")
("zhw" . "$(7$*(B")
("shw" . "$(7$.(B")
("khy" . "$(7$A(B")
("phy" . "$(7$D(B")
("khr" . "$(7$Q(B")
("thr" . "$(7$T(B")
("phr" . "$(7$W(B")
("shr" . "$(7$Z(B")
("dzr" . "$(7$^(B")
("grw" . "$(7$_(B")
("rng" . "$(7%#(B")
("rny" . "$(7%%(B")
("rts" . "$(7%+(B")
("rdz" . "$(7%,(B")
("rgw" . "$(7%-(B")
("rky" . "$(7%0(B")
("rgy" . "$(7%1(B")
("rmy" . "$(7%2(B")
("lng" . "$(7%B(B")
("sng" . "$(7%R(B")
("sny" . "$(7%S(B")
("sts" . "$(7%Z(B")
("sky" . "$(7%`(B")
("sgy" . "$(7%a(B")
("spy" . "$(7%b(B")
("sby" . "$(7%c(B")
("smy" . "$(7%d(B")
("skr" . "$(7%p(B")
("sgr" . "$(7%q(B")
("snr" . "$(7%r(B")
("spr" . "$(7%s(B")
("sbr" . "$(7%t(B")
("smr" . "$(7%u(B")
("kw" . "$(7$!(B")
("gw" . "$(7$#(B")
("cw" . "$(7$$(B")
("tw" . "$(7$&(B")
("dw" . "$(7$'(B")
("zw" . "$(7$+(B")
("rw" . "$(7$,(B")
("lw" . "$(7$-(B")
("sw" . "$(7$/(B")
("hw" . "$(7$0(B")
("ky" . "$(7$@(B")
("gy" . "$(7$B(B")
("py" . "$(7$C(B")
("by" . "$(7$E(B")
("my" . "$(7$F(B")
("kr" . "$(7$P(B")
("gr" . "$(7$R(B")
("tr" . "$(7$S(B")
("dr" . "$(7$U(B")
("pr" . "$(7$V(B")
("brk" . "$(7"7%!(B")
("brg" . "$(7"7%"(B")
("brng" . "$(7"7%#(B")
("brj" . "$(7"7%$(B")
("brny" . "$(7"7%%(B")
("brt" . "$(7"7%&(B")
("brd" . "$(7"7%'(B")
("brn" . "$(7"7%((B")
("brts" . "$(7"7%+(B")
("brdz" . "$(7"7%,(B")
("brl" . "$(7"7$d(B")
("br" . "$(7$X(B")
("mr" . "$(7$Y(B")
("sr" . "$(7$[(B")
("hr" . "$(7$\(B")
("jr" . "$(7$](B")
("kl" . "$(7$`(B")
("gl" . "$(7$a(B")
("blt" . "$(7"7%E(B")
("bld" . "$(7"7%F(B")
("bl" . "$(7$b(B")
("zl" . "$(7$c(B")
("rl" . "$(7$d(B")
("sl" . "$(7$e(B")
("rk" . "$(7%!(B")
("rg" . "$(7%"(B")
("rj" . "$(7%$(B")
("rt" . "$(7%&(B")
("rd" . "$(7%'(B")
("rn" . "$(7%((B")
("rb" . "$(7%)(B")
("rm" . "$(7%*(B")
("lk" . "$(7%@(B")
("lg" . "$(7%A(B")
("lc" . "$(7%C(B")
("lj" . "$(7%D(B")
("lt" . "$(7%E(B")
("ld" . "$(7%F(B")
("ln" . "$(7!!(B") ("lp" . "$(7%G(B")
("lb" . "$(7%H(B")
("lh" . "$(7%I(B")
("sk" . "$(7%P(B")
("sg" . "$(7%Q(B")
("st" . "$(7%T(B")
("sd" . "$(7%U(B")
("sn" . "$(7%V(B")
("sp" . "$(7%W(B")
("sb" . "$(7%X(B")
("sm" . "$(7%Y(B")))
(defconst tibetan-subjoined-transcription-alist
'(("+k" . "$(7#!(B")
("+kh" . "$(7#"(B")
("+g" . "$(7##(B")
("+gh" . "$(7#$(B")
("+ng" . "$(7#%(B")
("+c" . "$(7#&(B")
("+ch" . "$(7#'(B")
("+j" . "$(7#((B")
("+ny" . "$(7#*(B")
("+T" . "$(7#+(B")
("+TH" . "$(7#,(B")
("+D" . "$(7#-(B")
("+DH" . "$(7#.(B")
("+N" . "$(7#/(B")
("+t" . "$(7#0(B")
("+th" . "$(7#1(B")
("+d" . "$(7#2(B")
("+dh" . "$(7#3(B")
("+n" . "$(7#4(B")
("+p" . "$(7#5(B")
("+ph" . "$(7#6(B")
("+b" . "$(7#7(B")
("+bh" . "$(7#8(B")
("+m" . "$(7#9(B")
("+ts" . "$(7#:(B")
("+tsh" . "$(7# ("+dz" . "$(7#<(B")
("+dzh" . "$(7#=(B")
("+w" . "$(7#>(B")
("+zh" . "$(7#?(B")
("+z" . "$(7#@(B")
("+'" . "$(7#A(B")
("+y" . "$(7#B(B")
("+r" . "$(7#C(B")
("+l" . "$(7#D(B")
("+sh" . "$(7#E(B")
("+SH" . "$(7#F(B")
("+s" . "$(7#G(B")
("+h" . "$(7#H(B")
("+A" . "$(7#I(B")
("+kSH" . "$(7#J(B")
("R" . "$(7#P(B")))
(defconst tibetan-base-to-subjoined-alist
'(("$(7"!(B" . "$(7#!(B")
("$(7""(B" . "$(7#"(B")
("$(7"#(B" . "$(7##(B")
("$(7"$(B" . "$(7#$(B")
("$(7"%(B" . "$(7#%(B")
("$(7"&(B" . "$(7#&(B")
("$(7"'(B" . "$(7#'(B")
("$(7"((B" . "$(7#((B")
("$(7"*(B" . "$(7#*(B")
("$(7"+(B" . "$(7#+(B")
("$(7",(B" . "$(7#,(B")
("$(7"-(B" . "$(7#-(B")
("$(7".(B" . "$(7#.(B")
("$(7"/(B" . "$(7#/(B")
("$(7"0(B" . "$(7#0(B")
("$(7"1(B" . "$(7#1(B")
("$(7"2(B" . "$(7#2(B")
("$(7"3(B" . "$(7#3(B")
("$(7"4(B" . "$(7#4(B")
("$(7"5(B" . "$(7#5(B")
("$(7"6(B" . "$(7#6(B")
("$(7"7(B" . "$(7#7(B")
("$(7"8(B" . "$(7#8(B")
("$(7"9(B" . "$(7#9(B")
("$(7":(B" . "$(7#:(B")
("$(7";(B" . "$(7#;(B")
("$(7"<(B" . "$(7#<(B")
("$(7"=(B" . "$(7#=(B")
("$(7">(B" . "$(7#>(B")
("$(7"?(B" . "$(7#?(B")
("$(7"@(B" . "$(7#@(B")
("$(7"A(B" . "$(7#A(B")
("$(7"B(B" . "$(7#B(B")
("$(7"C(B" . "$(7#C(B")
("$(7"D(B" . "$(7#D(B")
("$(7"E(B" . "$(7#E(B")
("$(7"F(B" . "$(7#F(B")
("$(7"G(B" . "$(7#G(B")
("$(7"H(B" . "$(7#H(B")
("$(7"I(B" . "$(7#I(B")
("$(7"J(B" . "$(7#J(B")))
;;;
;;; alist for Tibetan consonantic components <-> precomposed glyph conversion.
;;; (includes some punctuation conversion rules)
;;;
(defconst tibetan-precomposition-rule-alist
'(("$(7"6#B#>(B" . "$(7$G(B")
("$(7"##C#>(B" . "$(7$_(B")
("$(7";#>(B" . "$(7$)(B")
("$(7"C#:#>(B" . "$(7%.(B")
("$(7"C###>(B" . "$(7%-(B")
("$(7"C#!#B(B" . "$(7%0(B")
("$(7"C###B(B" . "$(7%1(B")
("$(7"C#9#B(B" . "$(7%2(B")
("$(7"G#!#B(B" . "$(7%`(B")
("$(7"G###B(B" . "$(7%a(B")
("$(7"G#5#B(B" . "$(7%b(B")
("$(7"G#7#B(B" . "$(7%c(B")
("$(7"G#9#B(B" . "$(7%d(B")
("$(7"G#!#C(B" . "$(7%p(B")
("$(7"G###C(B" . "$(7%q(B")
("$(7"G#4#C(B" . "$(7%r(B")
("$(7"G#5#C(B" . "$(7%s(B")
("$(7"G#7#C(B" . "$(7%t(B")
("$(7"G#9#C(B" . "$(7%u(B")
("$(7""#>(B" . "$(7$"(B")
("$(7"*#>(B" . "$(7$%(B")
("$(7":#>(B" . "$(7$((B")
("$(7"?#>(B" . "$(7$*(B")
("$(7"E#>(B" . "$(7$.(B")
("$(7""#B(B" . "$(7$A(B")
("$(7"6#B(B" . "$(7$D(B")
("$(7""#C(B" . "$(7$Q(B")
("$(7"1#C(B" . "$(7$T(B")
("$(7"6#C(B" . "$(7$W(B")
("$(7"E#C(B" . "$(7$Z(B")
("$(7"<#C(B" . "$(7$^(B")
("$(7"C#%(B" . "$(7%#(B")
("$(7"C#*(B" . "$(7%%(B")
("$(7"C#:(B" . "$(7%+(B")
("$(7"C#<(B" . "$(7%,(B")
("$(7"D#%(B" . "$(7%B(B")
("$(7"G#%(B" . "$(7%R(B")
("$(7"G#*(B" . "$(7%S(B")
("$(7"G#:(B" . "$(7%Z(B")
("$(7"!#>(B" . "$(7$!(B")
("$(7"##>(B" . "$(7$#(B")
("$(7"&#>(B" . "$(7$$(B")
("$(7"0#>(B" . "$(7$&(B")
("$(7"2#>(B" . "$(7$'(B")
("$(7"@#>(B" . "$(7$+(B")
("$(7"C#>(B" . "$(7$,(B")
("$(7"D#>(B" . "$(7$-(B")
("$(7"G#>(B" . "$(7$/(B")
("$(7"H#>(B" . "$(7$0(B")
("$(7"!#B(B" . "$(7$@(B")
("$(7"##B(B" . "$(7$B(B")
("$(7"5#B(B" . "$(7$C(B")
("$(7"7#B(B" . "$(7$E(B")
("$(7"9#B(B" . "$(7$F(B")
("$(7"!#C(B" . "$(7$P(B")
("$(7"##C(B" . "$(7$R(B")
("$(7"0#C(B" . "$(7$S(B")
("$(7"2#C(B" . "$(7$U(B")
("$(7"5#C(B" . "$(7$V(B")
("$(7"7#C(B" . "$(7$X(B")
("$(7"9#C(B" . "$(7$Y(B")
("$(7"G#C(B" . "$(7$[(B")
("$(7"H#C(B" . "$(7$\(B")
("$(7"(#C(B" . "$(7$](B")
("$(7"!#D(B" . "$(7$`(B")
("$(7"##D(B" . "$(7$a(B")
("$(7"7#D(B" . "$(7$b(B")
("$(7"@#D(B" . "$(7$c(B")
("$(7"C#D(B" . "$(7$d(B")
("$(7"G#D(B" . "$(7$e(B")
("$(7"C#!(B" . "$(7%!(B")
("$(7"C##(B" . "$(7%"(B")
("$(7"C#((B" . "$(7%$(B")
("$(7"C#0(B" . "$(7%&(B")
("$(7"C#2(B" . "$(7%'(B")
("$(7"C#4(B" . "$(7%((B")
("$(7"C#7(B" . "$(7%)(B")
("$(7"C#9(B" . "$(7%*(B")
("$(7"D#!(B" . "$(7%@(B")
("$(7"D##(B" . "$(7%A(B")
("$(7"D#&(B" . "$(7%C(B")
("$(7"D#((B" . "$(7%D(B")
("$(7"D#0(B" . "$(7%E(B")
("$(7"D#2(B" . "$(7%F(B")
("$(7"D#5(B" . "$(7%G(B")
("$(7"D#7(B" . "$(7%H(B")
("$(7"D#H(B" . "$(7%I(B")
("$(7"G#!(B" . "$(7%P(B")
("$(7"G##(B" . "$(7%Q(B")
("$(7"G#0(B" . "$(7%T(B")
("$(7"G#2(B" . "$(7%U(B")
("$(7"G#4(B" . "$(7%V(B")
("$(7"G#5(B" . "$(7%W(B")
("$(7"G#7(B" . "$(7%X(B")
("$(7"G#9(B" . "$(7%Y(B")
("$(7!=(B" . "$(8!=(B") ; 2 col <-> 1 col
("$(7!?(B" . "$(8!?(B")
("$(7!@(B" . "$(8!@(B")
("$(7!A(B" . "$(8!A(B")
("$(7"`(B" . "$(8"`(B")
("$(7! ("$(7!D(B" . "$(8!D(B")
("$(7!>(B $(7!>(B" . "2$(7!>P(B P$(7!>(B1") ("$(7!4!5!5(B" . "2$(7#RP#SP#SP#S(B1")
("$(7!4!5(B" . "2$(7#RP#SP#S(B1")
("$(7!6(B" . "2$(7#RP#S_!I(B1")
("$(7!4(B" . "2$(7#RP#S(B1")))
(defvar tibetan-regexp
(let ((l (append tibetan-consonant-transcription-alist
tibetan-vowel-transcription-alist
tibetan-subjoined-transcription-alist))
temp)
(setq temp "\\(")
(setq temp (concat temp (car (car l))))
(setq l (cdr l))
(while l
(setq temp (concat temp "\\|" (car (car l))))
(setq l (cdr l)))
(concat temp "\\)$"))
"Regexp string to match a romanized Tibetan character component, i.e.,
base and subjoined consonant, vowel and vowel modifier. The result of matching
is to be used for indexing alists at conversion from a roman transcription to
the corresponding Tibetan character.")
(defvar tibetan-precomposed-regexp
(let ((l tibetan-precomposed-transcription-alist)
temp)
(setq temp "^\\(")
(setq temp
(concat temp (car (car l))))
(setq l (cdr l))
(while l
(setq temp
(concat temp "\\|" (car (car l))))
(setq l (cdr l)))
(concat temp "\\)"))
"Regexp string to match a romanized Tibetan complex consonant.
The result of matching is to be used for indexing alists when the input key
from an input method is converted to the corresponding precomposed glyph.")
(defvar tibetan-precomposition-rule-regexp
(let ((l tibetan-precomposition-rule-alist)
temp)
(setq temp "\\(")
(setq temp (concat temp (car (car l))))
(setq l (cdr l))
(while l
(setq temp (concat temp "\\|" (car (car l))))
(setq l (cdr l)))
(concat temp "\\)"))
"Regexp string to match a sequence of Tibetan consonantic components, i.e.,
one base consonant and one or more subjoined consonants.
The result of matching is to be used for indexing alist when the component
sequence is converted to the corresponding precomposed glyph.
This also matches some punctuation characters which need conversion.")
(defvar tibetan-decomposed nil)
(defvar tibetan-decomposed-temp nil)