changeset 23304:3a7a029df593

(quail-update-guidance): Check for the return value of (quail-guidance) fixed. (quail-update-translation): Bind quail-current-str locally when it calls quail-update-guidance. (quail-update-translation): If input-method-exit-on-first-char is non-nil, terminate translation only when the current input method is simple.
author Kenichi Handa <handa@m17n.org>
date Tue, 22 Sep 1998 10:33:09 +0000
parents fb38954a02d3
children 61483b4c169c
files lisp/international/quail.el
diffstat 1 files changed, 17 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/international/quail.el	Tue Sep 22 10:33:09 1998 +0000
+++ b/lisp/international/quail.el	Tue Sep 22 10:33:09 1998 +0000
@@ -1066,25 +1066,29 @@
 	    (if (= len 1)
 		(setq control-flag t
 		      quail-current-str quail-current-key)
-	      (while (> len control-flag)
-		(setq len (1- len))
-		(setq unread-command-events
-		      (cons (aref quail-current-key len)
-			    unread-command-events)))
+	      (if input-method-exit-on-first-char
+		  (setq len control-flag)
+		(while (> len control-flag)
+		  (setq len (1- len))
+		  (setq unread-command-events
+			(cons (aref quail-current-key len)
+			      unread-command-events))))
 	      (if quail-current-str
 		  (if input-method-exit-on-first-char
 		      (setq control-flag t))
 		(setq quail-current-str
 		      (substring quail-current-key 0 len)))))
 	(if quail-current-str
-	    (if input-method-exit-on-first-char
+	    (if (and input-method-exit-on-first-char
+		     (quail-simple))
 		(setq control-flag t))
-	  (setq quail-current-str quail-current-key))))
-    (if (not input-method-use-echo-area)
-	(progn
-	  (quail-delete-region)
-	  (insert quail-current-str))))
-  (quail-update-guidance)
+	  (setq quail-current-str quail-current-key)))))
+  (or input-method-use-echo-area
+      (progn
+	(quail-delete-region)
+	(insert quail-current-str)))
+  (let (quail-current-str)
+    (quail-update-guidance))
   (or (stringp quail-current-str)
       (setq quail-current-str (char-to-string quail-current-str)))
   (if control-flag
@@ -1516,7 +1520,7 @@
   (if (quail-require-guidance-buf)
       (let ((guidance (quail-guidance)))
 	(cond ((or (eq guidance t)
-		   (listp guidance))
+		   (consp guidance))
 	       ;; Show the current possible translations.
 	       (quail-show-translations))
 	      ((null guidance)