mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-27 15:52:00 -08:00
Change title string of input method "lao-lrt".
(lrt-single-consonant-table): Several key sequence changed. (lrt-composing-pattern-double-c): Handle a consonant with semi-vowel-lower correctly. (lrt-handle-maa-sakod): Do not reset quail-current-key. (lrt-handle-tone-mark): Check the existence of double consonant correctly.
This commit is contained in:
parent
a8bb18505a
commit
f89752e93e
1 changed files with 46 additions and 21 deletions
|
|
@ -36,7 +36,7 @@
|
|||
;; Upper vowels and tone-marks are put on the letter.
|
||||
;; Semi-vowel-sign-lo and lower vowels are put under the letter.
|
||||
(defconst lrt-single-consonant-table
|
||||
'(("k" . ?(1!(B)
|
||||
`(("k" . ?(1!(B)
|
||||
("kh" . ?(1"(B)
|
||||
("qh" . ?(1$(B)
|
||||
("ng" . ?(1'(B)
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
("h" . ?(1N(B)
|
||||
("nh" . ?(1|(B)
|
||||
("mh" . ?(1}(B)
|
||||
("lh" . ?0(1K\1(B)
|
||||
("lh" . "0(1K\1(B")
|
||||
))
|
||||
|
||||
;; Semi-vowel-sign-lo is put under the first letter.
|
||||
|
|
@ -104,16 +104,16 @@
|
|||
("or" "(1m(B" (0 ?(1m(B) (0 ?(1M(B))
|
||||
("er" "(1`(B (1T(B" (?(1`(B 0 ?(1T(B))
|
||||
("ir" "(1`(B (1U(B" (?(1`(B 0 ?(1U(B))
|
||||
("oua" "(1[GP(B" (0 ?(1[(B ?(1G(B ?(1P(B) (0 ?(1Q(B ?(1G(B))
|
||||
("ua" "(1[G(B" (0 ?(1[(B ?(1G(B) (0 ?(1G(B))
|
||||
("ua" "(1[GP(B" (0 ?(1[(B ?(1G(B ?(1P(B) (0 ?(1Q(B ?(1G(B))
|
||||
("uaa" "(1[G(B" (0 ?(1[(B ?(1G(B) (0 ?(1G(B))
|
||||
("ie" "(1`Q]P(B" (?(1`(B 0 ?(1Q(B ?(1](B ?(1P(B) (0 ?(1Q(B ?(1](B))
|
||||
("ia" "(1`Q](B" (?(1`(B 0 ?(1Q(B ?(1](B) (0 ?(1](B))
|
||||
("eua" "(1`VM(B" (?(1`(B 0 ?(1V(B ?(1M(B))
|
||||
("ea" "(1`WM(B" (?(1`(B 0 ?(1W(B ?(1M(B))
|
||||
("ea" "(1`VM(B" (?(1`(B 0 ?(1V(B ?(1M(B))
|
||||
("eaa" "(1`WM(B" (?(1`(B 0 ?(1W(B ?(1M(B))
|
||||
("ai" "(1d(B" (?(1d(B 0))
|
||||
("ei" "(1c(B" (?(1c(B 0))
|
||||
("ao" "(1`[R(B" (?(1`(B 0 ?(1[(B ?(1R(B))
|
||||
("arm" "(1S(B" (?(1S(B 0))))
|
||||
("aM" "(1S(B" (?(1S(B 0))))
|
||||
|
||||
;; Maa-sakod is put at the tail.
|
||||
(defconst lrt-maa-sakod-table
|
||||
|
|
@ -160,7 +160,10 @@
|
|||
(defun lrt-composing-pattern-double-c (str semi-vowel vowel-pattern)
|
||||
(let* ((patterns (copy-sequence vowel-pattern))
|
||||
(tail patterns)
|
||||
(chars (string-to-list str))
|
||||
(chars (string-to-list
|
||||
(if (= (chars-in-string str) 1)
|
||||
(decompose-string str)
|
||||
str)))
|
||||
place)
|
||||
;; Embed C and SEMI-VOWEL (if any) at the place of 0.
|
||||
(while tail
|
||||
|
|
@ -235,7 +238,6 @@
|
|||
(quail-delete-region)
|
||||
(setq quail-current-str (lrt-compose-string maa-sakod-pattern))
|
||||
(insert quail-current-str)
|
||||
(setq quail-current-key " ")
|
||||
(quail-show-translations)
|
||||
(setq quail-current-data (list nil maa-sakod-pattern))))))
|
||||
|
||||
|
|
@ -259,22 +261,28 @@
|
|||
;; have already done it.
|
||||
(nth 1 quail-current-data)))
|
||||
(tail tone-mark-pattern)
|
||||
(double-consonant-tail '(?(1'(B ?(1](B ?(1G(B ?(1E(B ?(1-(B ?(19(B ?(1A(B))
|
||||
(double-consonant-keys lrt-double-consonant-table)
|
||||
(double-consonant-flag nil)
|
||||
place)
|
||||
|
||||
;; Set DOUBLE-CONSONANT-FLAG to t if a user entered a double
|
||||
;; consonant.
|
||||
(while (and double-consonant-keys (not double-consonant-flag))
|
||||
(setq double-consonant-flag
|
||||
(eq (string-match (car (car double-consonant-keys))
|
||||
quail-current-key)
|
||||
0)
|
||||
double-consonant-keys (cdr double-consonant-keys)))
|
||||
|
||||
;; Find a place to embed TONE-MARK. It should be after a
|
||||
;; single or double consonant and following vowels.
|
||||
;; single or double consonant and following upper or lower vowels.
|
||||
(while (and tail (not place))
|
||||
(if (and
|
||||
(eq (get-char-code-property (car tail) 'phonetic-type)
|
||||
'consonant)
|
||||
;; Skip `(1K(B' if it is the first letter of double consonant.
|
||||
(or (/= (car tail) ?(1K(B)
|
||||
(not (cdr tail))
|
||||
(not
|
||||
(if (= (car (cdr tail)) ?(1\(B)
|
||||
(and (cdr (cdr tail))
|
||||
(memq (car (cdr (cdr tail))) double-consonant-tail))
|
||||
(memq (car (cdr tail)) double-consonant-tail)))))
|
||||
(or (not double-consonant-flag)
|
||||
(/= (car tail) ?(1K(B)))
|
||||
(progn
|
||||
(setq place tail)
|
||||
(setq tail (cdr tail))
|
||||
|
|
@ -301,10 +309,12 @@
|
|||
(setq l1 lrt-single-consonant-table)
|
||||
(while l1
|
||||
(setq e1 (car l1))
|
||||
(quail-defrule-internal (car e1) (cdr e1) map)
|
||||
(quail-defrule-internal (car e1) (vector (cdr e1)) map)
|
||||
(quail-defrule-internal
|
||||
(concat (car e1) semi-vowel-key)
|
||||
(compose-string (format "%c%c" (cdr e1) semi-vowel-char))
|
||||
(if (stringp (cdr e1))
|
||||
(compose-string (format "%s%c" (cdr e1) semi-vowel-char))
|
||||
(compose-string (format "%c%c" (cdr e1) semi-vowel-char)))
|
||||
map)
|
||||
(setq l2 lrt-vowel-table)
|
||||
(while l2
|
||||
|
|
@ -370,7 +380,7 @@
|
|||
map)))
|
||||
|
||||
(quail-define-package
|
||||
"lao-lrt" "Lao" "(1"(BR" t
|
||||
"lao-lrt" "Lao" "(1E(BR" t
|
||||
"Lao input method using LRT (Lao Roman Transcription)"
|
||||
'(("k" . lrt-handle-maa-sakod)
|
||||
("g" . lrt-handle-maa-sakod)
|
||||
|
|
@ -389,3 +399,18 @@
|
|||
'forget-last-selection 'deterministic 'kbd-translate 'show-layout)
|
||||
|
||||
(lrt-generate-quail-map)
|
||||
|
||||
;; Additional key definitions for Lao digits.
|
||||
|
||||
(quail-defrule "\\0" ?(1p(B)
|
||||
(quail-defrule "\\1" ?(1q(B)
|
||||
(quail-defrule "\\2" ?(1r(B)
|
||||
(quail-defrule "\\3" ?(1s(B)
|
||||
(quail-defrule "\\4" ?(1t(B)
|
||||
(quail-defrule "\\5" ?(1u(B)
|
||||
(quail-defrule "\\6" ?(1v(B)
|
||||
(quail-defrule "\\7" ?(1w(B)
|
||||
(quail-defrule "\\8" ?(1x(B)
|
||||
(quail-defrule "\\9" ?(1y(B)
|
||||
|
||||
;;; quail/lrt.el ends here
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue