From 68bba4e4b3ced56b5608ee0495f94d24e7e3f40c Mon Sep 17 00:00:00 2001 From: Karoly Lorentey Date: Tue, 3 May 2005 01:49:33 +0000 Subject: Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support. * lisp/international/mule-cmds.el (set-locale-environment): Ignore window-system; always set the keyboard coding system. * src/termhooks.h (DISPLAY_TERMINAL_CODING, DISPLAY_KEYBOARD_CODING): New macros. * src/coding.c (Fset_terminal_coding_system_internal, Fterminal_coding_system) (Fset_keyboard_coding_system_internal, Fkeyboard_coding_system): Add DISPLAY parameter. * src/term.c (get_display): Add THROW parameter. (get_tty_display, Fdisplay_name, Fdisplay_tty_type, Fdisplay_controlling_tty_p) (Fdelete_display, Fdisplay_live_p): Update callers. * src/xfns.c (check_x_display_info): Ditto. * src/frame.c (Fmake_terminal_frame, Fframe_display): Ditto. * src/dispextern.h (get_display): Update prototype. * lisp/international/mule.el (set-terminal-coding-system) (set-keyboard-coding-system): Add DISPLAY parameter. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-338 --- src/coding.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) (limited to 'src/coding.c') diff --git a/src/coding.c b/src/coding.c index b914574bbca..f7da394def1 100644 --- a/src/coding.c +++ b/src/coding.c @@ -7305,12 +7305,13 @@ Return the corresponding character code in Big5. */) } DEFUN ("set-terminal-coding-system-internal", Fset_terminal_coding_system_internal, - Sset_terminal_coding_system_internal, 1, 1, 0, + Sset_terminal_coding_system_internal, 1, 2, 0, doc: /* Internal use only. */) - (coding_system) + (coding_system, display) Lisp_Object coding_system; + Lisp_Object display; { - struct coding_system *terminal_coding = FRAME_TERMINAL_CODING (SELECTED_FRAME ()); + struct coding_system *terminal_coding = DISPLAY_TERMINAL_CODING (get_display (display, 1)); CHECK_SYMBOL (coding_system); setup_coding_system (Fcheck_coding_system (coding_system), terminal_coding); /* We had better not send unsafe characters to terminal. */ @@ -7343,33 +7344,39 @@ DEFUN ("set-safe-terminal-coding-system-internal", Fset_safe_terminal_coding_sys } DEFUN ("terminal-coding-system", Fterminal_coding_system, - Sterminal_coding_system, 0, 0, 0, - doc: /* Return coding system specified for terminal output. */) - () + Sterminal_coding_system, 0, 1, 0, + doc: /* Return coding system specified for terminal output on the given display. +DISPLAY may be a display id, a frame, or nil for the selected frame's display. */) + (display) + Lisp_Object display; { - return FRAME_TERMINAL_CODING (SELECTED_FRAME ())->symbol; + return DISPLAY_TERMINAL_CODING (get_display (display, 1))->symbol; } DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_internal, - Sset_keyboard_coding_system_internal, 1, 1, 0, + Sset_keyboard_coding_system_internal, 1, 2, 0, doc: /* Internal use only. */) - (coding_system) + (coding_system, display) Lisp_Object coding_system; + Lisp_Object display; { + struct display *d = get_display (display, 1); CHECK_SYMBOL (coding_system); + setup_coding_system (Fcheck_coding_system (coding_system), - FRAME_KEYBOARD_CODING (SELECTED_FRAME ())); + DISPLAY_KEYBOARD_CODING (d)); /* Character composition should be disabled. */ - FRAME_KEYBOARD_CODING (SELECTED_FRAME ())->composing = COMPOSITION_DISABLED; + DISPLAY_KEYBOARD_CODING (d)->composing = COMPOSITION_DISABLED; return Qnil; } DEFUN ("keyboard-coding-system", Fkeyboard_coding_system, - Skeyboard_coding_system, 0, 0, 0, + Skeyboard_coding_system, 0, 1, 0, doc: /* Return coding system specified for decoding keyboard input. */) - () + (display) + Lisp_Object display; { - return FRAME_KEYBOARD_CODING (SELECTED_FRAME ())->symbol; + return DISPLAY_KEYBOARD_CODING (get_display (display, 1))->symbol; } -- cgit v1.2.1