changeset 74892:b064bb685ef7

(mac-keyboard-translate-char, mac-unread-string): New functions. (mac-ts-update-active-input-area, mac-ts-unicode-for-key-event): Use mac-unread-string.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Mon, 25 Dec 2006 08:18:17 +0000
parents 181210a9cef5
children 0140b806eb69
files lisp/term/mac-win.el
diffstat 1 files changed, 18 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/term/mac-win.el	Mon Dec 25 08:18:09 2006 +0000
+++ b/lisp/term/mac-win.el	Mon Dec 25 08:18:17 2006 +0000
@@ -1964,6 +1964,22 @@
    (mac-split-string-by-property-change string)
    ""))
 
+(defun mac-keyboard-translate-char (ch)
+  (if (and (char-valid-p ch)
+	   (or (char-table-p keyboard-translate-table)
+	       (and (or (stringp keyboard-translate-table)
+			(vectorp keyboard-translate-table))
+		    (> (length keyboard-translate-table) ch))))
+      (or (aref keyboard-translate-table ch) ch)
+    ch))
+
+(defun mac-unread-string (string)
+  ;; Unread characters and insert them in a keyboard macro being
+  ;; defined.
+  (apply 'isearch-unread
+	 (mapcar 'mac-keyboard-translate-char
+		 (mac-replace-untranslated-utf-8-chars string))))
+
 (defun mac-ts-update-active-input-area (event)
   "Update Mac TSM active input area according to EVENT.
 The confirmed text is converted to Emacs input events and pushed
@@ -2042,11 +2058,7 @@
 		      (point) (point) (current-buffer))
 	(overlay-put mac-ts-active-input-overlay 'before-string
 		     active-input-string))
-      ;; Unread confirmed characters and insert them in a keyboard
-      ;; macro being defined.
-      (apply 'isearch-unread
-	     (append (mac-replace-untranslated-utf-8-chars
-		      (funcall decode-fun confirmed coding)) '())))
+      (mac-unread-string (funcall decode-fun confirmed coding)))
     ;; The event is successfully processed.  Sync the sequence number.
     (setq mac-ts-update-active-input-area-seqno (1+ seqno))))
 
@@ -2059,11 +2071,7 @@
 	 (coding (or (cdr (assq (car script-language)
 				mac-script-code-coding-systems))
 		     'mac-roman)))
-    ;; Unread characters and insert them in a keyboard macro being
-    ;; defined.
-    (apply 'isearch-unread
-	   (append (mac-replace-untranslated-utf-8-chars
-		    (mac-utxt-to-string text coding)) '()))))
+    (mac-unread-string (mac-utxt-to-string text coding))))
 
 ;; kEventClassTextInput/kEventTextInputUpdateActiveInputArea
 (define-key mac-apple-event-map [text-input update-active-input-area]