# HG changeset patch # User YAMAMOTO Mitsuharu # Date 1167034697 0 # Node ID b064bb685ef70d1d4b63e16b2626bb5bcf791c3f # Parent 181210a9cef59861b9334b80c933425a98b7934f (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. diff -r 181210a9cef5 -r b064bb685ef7 lisp/term/mac-win.el --- 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]