("ea" "\e(1`WM\e(B" (?\e(1`\e(B 0 ?\e(1W\e(B ?\e(1M\e(B))
("ai" "\e(1d\e(B" (?\e(1d\e(B 0))
("ei" "\e(1c\e(B" (?\e(1c\e(B 0))
- ("ow" "\e(1`[R\e(B" (?\e(1`\e(B 0 ?\e(1[\e(B ?\e(1R\e(B))
- ("am" "\e(1S\e(B" (?\e(1S\e(B 0))))
+ ("ao" "\e(1`[R\e(B" (?\e(1`\e(B 0 ?\e(1[\e(B ?\e(1R\e(B))
+ ("arm" "\e(1S\e(B" (?\e(1S\e(B 0))))
;; Maa-sakod is put at the tail.
(defconst lrt-maa-sakod-table
(defun lrt-handle-maa-sakod ()
(interactive)
- (if (= (length quail-current-key) 0)
+ (if (or (= (length quail-current-key) 0)
+ (not quail-current-data))
(quail-self-insert-command)
- (if (not (and quail-current-data (car quail-current-data)))
+ (if (not (car quail-current-data))
(progn
(setq quail-current-data nil)
(setq unread-command-events
;; have already done it.
(nth 1 quail-current-data)))
(tail tone-mark-pattern)
+ (double-consonant-tail '(?\e(1'\e(B ?\e(1]\e(B ?\e(1G\e(B ?\e(1E\e(B ?\e(1-\e(B ?\e(19\e(B ?\e(1A\e(B))
place)
;; Find a place to embed TONE-MARK. It should be after a
- ;; single or double consonant.
+ ;; single or double consonant and following vowels.
(while (and tail (not place))
(if (and
- ;; Skip `\e(1K\e(B', the first letter of double consonant.
- (/= (car tail) ?\e(1K\e(B)
(eq (get-char-code-property (car tail) 'phonetic-type)
- 'consonant))
+ 'consonant)
+ ;; Skip `\e(1K\e(B' if it is the first letter of double consonant.
+ (or (/= (car tail) ?\e(1K\e(B)
+ (not (cdr tail))
+ (not
+ (if (= (car (cdr tail)) ?\e(1\\e(B)
+ (and (cdr (cdr tail))
+ (memq (car (cdr (cdr tail))) double-consonant-tail))
+ (memq (car (cdr tail)) double-consonant-tail)))))
(progn
(setq place tail)
(setq tail (cdr tail))