diff lisp/international/encoded-kb.el @ 83417:fe870a866ce7

Don't let x_initialize break 8-bit input on ttys. (Reported by Joakim Verona.) Split `set-input-mode'. * lisp/international/encoded-kb.el (encoded-kbd-setup-display): Use `set-input-meta-mode'. * lisp/linux.el (terminal-init-linux): Ditto. * src/keyboard.c (Fset_input_interrupt_mode, Fset_output_flow_control) (syms_of_keyboard): Defsubr them. (Fset_input_meta_mode, Fset_quit_char): New functions. (Fset_input_mode): Split to above functions. * lisp.h: EXFUN the new functions. * xterm.c (x_initialize): Use Fset_input_interrupt_mode. * macterm.c (mac_initialize): Ditto. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-457
author Karoly Lorentey <lorentey@elte.hu>
date Fri, 23 Dec 2005 03:00:55 +0000
parents 7d093d9d4479
children 17e0dd217877
line wrap: on
line diff
--- a/lisp/international/encoded-kb.el	Thu Dec 22 21:02:45 2005 +0000
+++ b/lisp/international/encoded-kb.el	Fri Dec 23 03:00:55 2005 +0000
@@ -276,25 +276,22 @@
 		  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)