Mercurial > emacs
comparison src/coding.c @ 83127:5182815e0ee1
Make terminal_coding and keyboard_coding display-local.
src/coding.c: Include frame.h and termhooks.h.
(terminal_coding, keyboard_coding): Remove.
(Fset_terminal_coding_system_internal, Fterminal_coding_system):
Use the selected frame's terminal coding system.
(Fset_safe_terminal_coding_system_internal): Fix typo.
(Fset_keyboard_coding_system_internal, Fkeyboard_coding_system):
Use the selected frame's keyboard coding system.
(init_coding_once): Don't initialize keyboard_coding and terminal_coding.
src/coding.h (terminal_coding, keyboard_coding): Remove.
src/termhooks.h (terminal_coding, keyboard_coding): New members of
struct display.
(FRAME_TERMINAL_CODING, FRAME_KEYBOARD_CODING): New macros.
src/termchar.h (kboard): Cosmetic change.
src/term.c (encode_terminal_code): Add coding parameter.
(tty_write_glyphs): Use the display-local terminal coding system.
(create_display): Allocate and initialize coding systems.
(delete_display): Free coding systems.
src/xdisp.c (decode_mode_spec): Use display-local coding systems.
src/Makefile.in: Fix dependencies for termchar.h and termhooks.h.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-167
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sun, 23 May 2004 01:53:23 +0000 |
parents | a7e59b39de35 |
children | cf8f0a3b5cb4 |
comparison
equal
deleted
inserted
replaced
83126:14e5707213a6 | 83127:5182815e0ee1 |
---|---|
344 #include "composite.h" | 344 #include "composite.h" |
345 #include "ccl.h" | 345 #include "ccl.h" |
346 #include "coding.h" | 346 #include "coding.h" |
347 #include "window.h" | 347 #include "window.h" |
348 #include "intervals.h" | 348 #include "intervals.h" |
349 #include "frame.h" | |
350 #include "termhooks.h" | |
349 | 351 |
350 #else /* not emacs */ | 352 #else /* not emacs */ |
351 | 353 |
352 #include "mulelib.h" | 354 #include "mulelib.h" |
353 | 355 |
426 int inhibit_iso_escape_detection; | 428 int inhibit_iso_escape_detection; |
427 | 429 |
428 /* Flag to make buffer-file-coding-system inherit from process-coding. */ | 430 /* Flag to make buffer-file-coding-system inherit from process-coding. */ |
429 int inherit_process_coding_system; | 431 int inherit_process_coding_system; |
430 | 432 |
431 /* Coding system to be used to encode text for terminal display. */ | |
432 struct coding_system terminal_coding; | |
433 | |
434 /* Coding system to be used to encode text for terminal display when | 433 /* Coding system to be used to encode text for terminal display when |
435 terminal coding system is nil. */ | 434 terminal coding system is nil. */ |
436 struct coding_system safe_terminal_coding; | 435 struct coding_system safe_terminal_coding; |
437 | |
438 /* Coding system of what is sent from terminal keyboard. */ | |
439 struct coding_system keyboard_coding; | |
440 | 436 |
441 /* Default coding system to be used to write a file. */ | 437 /* Default coding system to be used to write a file. */ |
442 struct coding_system default_buffer_file_coding; | 438 struct coding_system default_buffer_file_coding; |
443 | 439 |
444 Lisp_Object Vfile_coding_system_alist; | 440 Lisp_Object Vfile_coding_system_alist; |
7182 Sset_terminal_coding_system_internal, 1, 1, 0, | 7178 Sset_terminal_coding_system_internal, 1, 1, 0, |
7183 doc: /* Internal use only. */) | 7179 doc: /* Internal use only. */) |
7184 (coding_system) | 7180 (coding_system) |
7185 Lisp_Object coding_system; | 7181 Lisp_Object coding_system; |
7186 { | 7182 { |
7183 struct coding_system *terminal_coding = FRAME_TERMINAL_CODING (SELECTED_FRAME ()); | |
7187 CHECK_SYMBOL (coding_system); | 7184 CHECK_SYMBOL (coding_system); |
7188 setup_coding_system (Fcheck_coding_system (coding_system), &terminal_coding); | 7185 setup_coding_system (Fcheck_coding_system (coding_system), terminal_coding); |
7189 /* We had better not send unsafe characters to terminal. */ | 7186 /* We had better not send unsafe characters to terminal. */ |
7190 terminal_coding.mode |= CODING_MODE_INHIBIT_UNENCODABLE_CHAR; | 7187 terminal_coding->mode |= CODING_MODE_INHIBIT_UNENCODABLE_CHAR; |
7191 /* Character composition should be disabled. */ | 7188 /* Character composition should be disabled. */ |
7192 terminal_coding.composing = COMPOSITION_DISABLED; | 7189 terminal_coding->composing = COMPOSITION_DISABLED; |
7193 /* Error notification should be suppressed. */ | 7190 /* Error notification should be suppressed. */ |
7194 terminal_coding.suppress_error = 1; | 7191 terminal_coding->suppress_error = 1; |
7195 terminal_coding.src_multibyte = 1; | 7192 terminal_coding->src_multibyte = 1; |
7196 terminal_coding.dst_multibyte = 0; | 7193 terminal_coding->dst_multibyte = 0; |
7197 return Qnil; | 7194 return Qnil; |
7198 } | 7195 } |
7199 | 7196 |
7200 DEFUN ("set-safe-terminal-coding-system-internal", Fset_safe_terminal_coding_system_internal, | 7197 DEFUN ("set-safe-terminal-coding-system-internal", Fset_safe_terminal_coding_system_internal, |
7201 Sset_safe_terminal_coding_system_internal, 1, 1, 0, | 7198 Sset_safe_terminal_coding_system_internal, 1, 1, 0, |
7207 setup_coding_system (Fcheck_coding_system (coding_system), | 7204 setup_coding_system (Fcheck_coding_system (coding_system), |
7208 &safe_terminal_coding); | 7205 &safe_terminal_coding); |
7209 /* Character composition should be disabled. */ | 7206 /* Character composition should be disabled. */ |
7210 safe_terminal_coding.composing = COMPOSITION_DISABLED; | 7207 safe_terminal_coding.composing = COMPOSITION_DISABLED; |
7211 /* Error notification should be suppressed. */ | 7208 /* Error notification should be suppressed. */ |
7212 terminal_coding.suppress_error = 1; | 7209 safe_terminal_coding.suppress_error = 1; |
7213 safe_terminal_coding.src_multibyte = 1; | 7210 safe_terminal_coding.src_multibyte = 1; |
7214 safe_terminal_coding.dst_multibyte = 0; | 7211 safe_terminal_coding.dst_multibyte = 0; |
7215 return Qnil; | 7212 return Qnil; |
7216 } | 7213 } |
7217 | 7214 |
7218 DEFUN ("terminal-coding-system", Fterminal_coding_system, | 7215 DEFUN ("terminal-coding-system", Fterminal_coding_system, |
7219 Sterminal_coding_system, 0, 0, 0, | 7216 Sterminal_coding_system, 0, 0, 0, |
7220 doc: /* Return coding system specified for terminal output. */) | 7217 doc: /* Return coding system specified for terminal output. */) |
7221 () | 7218 () |
7222 { | 7219 { |
7223 return terminal_coding.symbol; | 7220 return FRAME_TERMINAL_CODING (SELECTED_FRAME ())->symbol; |
7224 } | 7221 } |
7225 | 7222 |
7226 DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_internal, | 7223 DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_internal, |
7227 Sset_keyboard_coding_system_internal, 1, 1, 0, | 7224 Sset_keyboard_coding_system_internal, 1, 1, 0, |
7228 doc: /* Internal use only. */) | 7225 doc: /* Internal use only. */) |
7229 (coding_system) | 7226 (coding_system) |
7230 Lisp_Object coding_system; | 7227 Lisp_Object coding_system; |
7231 { | 7228 { |
7232 CHECK_SYMBOL (coding_system); | 7229 CHECK_SYMBOL (coding_system); |
7233 setup_coding_system (Fcheck_coding_system (coding_system), &keyboard_coding); | 7230 setup_coding_system (Fcheck_coding_system (coding_system), |
7231 FRAME_KEYBOARD_CODING (SELECTED_FRAME ())); | |
7234 /* Character composition should be disabled. */ | 7232 /* Character composition should be disabled. */ |
7235 keyboard_coding.composing = COMPOSITION_DISABLED; | 7233 FRAME_KEYBOARD_CODING (SELECTED_FRAME ())->composing = COMPOSITION_DISABLED; |
7236 return Qnil; | 7234 return Qnil; |
7237 } | 7235 } |
7238 | 7236 |
7239 DEFUN ("keyboard-coding-system", Fkeyboard_coding_system, | 7237 DEFUN ("keyboard-coding-system", Fkeyboard_coding_system, |
7240 Skeyboard_coding_system, 0, 0, 0, | 7238 Skeyboard_coding_system, 0, 0, 0, |
7241 doc: /* Return coding system specified for decoding keyboard input. */) | 7239 doc: /* Return coding system specified for decoding keyboard input. */) |
7242 () | 7240 () |
7243 { | 7241 { |
7244 return keyboard_coding.symbol; | 7242 return FRAME_KEYBOARD_CODING (SELECTED_FRAME ())->symbol; |
7245 } | 7243 } |
7246 | 7244 |
7247 | 7245 |
7248 DEFUN ("find-operation-coding-system", Ffind_operation_coding_system, | 7246 DEFUN ("find-operation-coding-system", Ffind_operation_coding_system, |
7249 Sfind_operation_coding_system, 1, MANY, 0, | 7247 Sfind_operation_coding_system, 1, MANY, 0, |
7486 iso_code_class[ISO_CODE_ESC] = ISO_escape; | 7484 iso_code_class[ISO_CODE_ESC] = ISO_escape; |
7487 iso_code_class[ISO_CODE_SS2] = ISO_single_shift_2; | 7485 iso_code_class[ISO_CODE_SS2] = ISO_single_shift_2; |
7488 iso_code_class[ISO_CODE_SS3] = ISO_single_shift_3; | 7486 iso_code_class[ISO_CODE_SS3] = ISO_single_shift_3; |
7489 iso_code_class[ISO_CODE_CSI] = ISO_control_sequence_introducer; | 7487 iso_code_class[ISO_CODE_CSI] = ISO_control_sequence_introducer; |
7490 | 7488 |
7491 setup_coding_system (Qnil, &keyboard_coding); | |
7492 setup_coding_system (Qnil, &terminal_coding); | |
7493 setup_coding_system (Qnil, &safe_terminal_coding); | 7489 setup_coding_system (Qnil, &safe_terminal_coding); |
7494 setup_coding_system (Qnil, &default_buffer_file_coding); | 7490 setup_coding_system (Qnil, &default_buffer_file_coding); |
7495 | 7491 |
7496 bzero (coding_system_table, sizeof coding_system_table); | 7492 bzero (coding_system_table, sizeof coding_system_table); |
7497 | 7493 |