changeset 18833:48e05cca9d7b

(lrt-vowel-table): Change "ow" -> "ao", "am" -> "arm". (lrt-handle-maa-sakod): Correctly handle the case that quail-current-data is nil. (lrt-handle-tone-mark): Fix bug of handling key sequence "hhai" + tone.
author Kenichi Handa <handa@m17n.org>
date Thu, 17 Jul 1997 07:20:32 +0000
parents f08b8f993e3a
children a4b74a7b692a
files leim/quail/lrt.el
diffstat 1 files changed, 16 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/leim/quail/lrt.el	Thu Jul 17 07:18:50 1997 +0000
+++ b/leim/quail/lrt.el	Thu Jul 17 07:20:32 1997 +0000
@@ -112,8 +112,8 @@
     ("ea" "(1`WM(B" (?(1`(B 0 ?(1W(B ?(1M(B))
     ("ai" "(1d(B" (?(1d(B 0))
     ("ei" "(1c(B" (?(1c(B 0))
-    ("ow" "(1`[R(B" (?(1`(B 0 ?(1[(B ?(1R(B))
-    ("am" "(1S(B" (?(1S(B 0))))
+    ("ao" "(1`[R(B" (?(1`(B 0 ?(1[(B ?(1R(B))
+    ("arm" "(1S(B" (?(1S(B 0))))
 
 ;; Maa-sakod is put at the tail.
 (defconst lrt-maa-sakod-table
@@ -214,9 +214,10 @@
 
 (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
@@ -258,15 +259,22 @@
 		;; 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))
 	     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 `(1K(B', the first letter of double consonant.
-	       (/= (car tail) ?(1K(B)
 	       (eq (get-char-code-property (car tail) 'phonetic-type)
-		   'consonant))
+		   '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)))))
 	      (progn
 		(setq place tail)
 		(setq tail (cdr tail))