]> code.delx.au - gnu-emacs/blobdiff - lisp/international/encoded-kb.el
Merged from emacs@sv.gnu.org.
[gnu-emacs] / lisp / international / encoded-kb.el
index 25e8f478203ed82f43bfb52985c28b7eb78799f7..a39daff888a42b67b22ccc27bd51ae56faf99b17 100644 (file)
@@ -1,7 +1,9 @@
 ;;; encoded-kb.el --- handler to input multibyte characters encoded somehow
 
-;; Copyright (C) 1997  Free Software Foundation, Inc.
-;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2004, 2005
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;;   2005, 2006
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
@@ -276,25 +278,22 @@ DISPLAY may be a display id, a frame, or nil for the selected frame's display."
                  result)
              (set-keymap-parent keymap local-key-translation-map)
              (setq local-key-translation-map keymap)
-             (unless (terminal-parameter nil 'encoded-kbd-saved-input-mode)
-               (set-terminal-parameter nil 'encoded-kbd-saved-input-mode cim))
+             (unless (terminal-parameter nil 'encoded-kbd-saved-input-meta-mode)
+               (set-terminal-parameter nil 'encoded-kbd-saved-input-mode (nth 2 cim)))
              (setq result (and coding (encoded-kbd-setup-keymap keymap coding)))
              (if result
                  (when (and (eq result 8)
                             (memq (nth 2 cim) '(t nil)))
-                   (set-input-mode
-                    (nth 0 cim)
-                    (nth 1 cim)
-                    'use-8th-bit
-                    (nth 3 cim)))
-               (set-terminal-parameter nil 'encoded-kbd-saved-input-mode nil)
+                   (set-input-meta-mode 'use-8th-bit))
+               (set-terminal-parameter nil 'encoded-kbd-saved-input-meta-mode nil)
                (error "Unsupported coding system in Encoded-kbd mode: %S"
                       coding)))
          ;; We are turning off Encoded-kbd mode.
-         (unless (equal (current-input-mode)
-                        (terminal-parameter nil 'encoded-kbd-saved-input-mode))
-              (apply 'set-input-mode (terminal-parameter nil 'encoded-kbd-saved-input-mode)))
-         (set-terminal-parameter nil 'saved-input-mode nil))))))
+         (when (and (terminal-parameter nil 'encoded-kbd-saved-input-meta-mode)
+                    (not (equal (nth 2 (current-input-mode))
+                                (terminal-parameter nil 'encoded-kbd-saved-input-meta-mode))))
+           (set-input-meta-mode (terminal-parameter nil 'encoded-kbd-saved-input-meta-mode)))
+         (set-terminal-parameter nil 'saved-input-meta-mode nil))))))
 
 (provide 'encoded-kb)