Mercurial > emacs
comparison src/coding.c @ 91041:bdb3fe0ba9fa
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 866-879)
- Merge multi-tty branch
- Update from CVS
- Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-257
| author | Miles Bader <miles@gnu.org> |
|---|---|
| date | Thu, 11 Oct 2007 16:22:07 +0000 |
| parents | f55f9811f5d7 922a7e3b7383 |
| children | 35069180a991 |
comparison
equal
deleted
inserted
replaced
| 91040:14c4a6aac623 | 91041:bdb3fe0ba9fa |
|---|---|
| 298 #include "charset.h" | 298 #include "charset.h" |
| 299 #include "ccl.h" | 299 #include "ccl.h" |
| 300 #include "composite.h" | 300 #include "composite.h" |
| 301 #include "coding.h" | 301 #include "coding.h" |
| 302 #include "window.h" | 302 #include "window.h" |
| 303 #include "frame.h" | |
| 304 #include "termhooks.h" | |
| 303 | 305 |
| 304 Lisp_Object Vcoding_system_hash_table; | 306 Lisp_Object Vcoding_system_hash_table; |
| 305 | 307 |
| 306 Lisp_Object Qcoding_system, Qcoding_aliases, Qeol_type; | 308 Lisp_Object Qcoding_system, Qcoding_aliases, Qeol_type; |
| 307 Lisp_Object Qunix, Qdos; | 309 Lisp_Object Qunix, Qdos; |
| 379 int inhibit_iso_escape_detection; | 381 int inhibit_iso_escape_detection; |
| 380 | 382 |
| 381 /* Flag to make buffer-file-coding-system inherit from process-coding. */ | 383 /* Flag to make buffer-file-coding-system inherit from process-coding. */ |
| 382 int inherit_process_coding_system; | 384 int inherit_process_coding_system; |
| 383 | 385 |
| 384 /* Coding system to be used to encode text for terminal display. */ | |
| 385 struct coding_system terminal_coding; | |
| 386 | |
| 387 /* Coding system to be used to encode text for terminal display when | 386 /* Coding system to be used to encode text for terminal display when |
| 388 terminal coding system is nil. */ | 387 terminal coding system is nil. */ |
| 389 struct coding_system safe_terminal_coding; | 388 struct coding_system safe_terminal_coding; |
| 390 | 389 |
| 391 /* Coding system of what is sent from terminal keyboard. */ | 390 /* Default coding system to be used to write a file. */ |
| 392 struct coding_system keyboard_coding; | 391 struct coding_system default_buffer_file_coding; |
| 393 | 392 |
| 394 Lisp_Object Vfile_coding_system_alist; | 393 Lisp_Object Vfile_coding_system_alist; |
| 395 Lisp_Object Vprocess_coding_system_alist; | 394 Lisp_Object Vprocess_coding_system_alist; |
| 396 Lisp_Object Vnetwork_coding_system_alist; | 395 Lisp_Object Vnetwork_coding_system_alist; |
| 397 | 396 |
| 8284 | 8283 |
| 8285 return make_number (code); | 8284 return make_number (code); |
| 8286 } | 8285 } |
| 8287 | 8286 |
| 8288 | 8287 |
| 8289 DEFUN ("set-terminal-coding-system-internal", | 8288 DEFUN ("set-terminal-coding-system-internal", Fset_terminal_coding_system_internal, |
| 8290 Fset_terminal_coding_system_internal, | 8289 Sset_terminal_coding_system_internal, 1, 2, 0, |
| 8291 Sset_terminal_coding_system_internal, 1, 1, 0, | |
| 8292 doc: /* Internal use only. */) | 8290 doc: /* Internal use only. */) |
| 8293 (coding_system) | 8291 (coding_system, terminal) |
| 8294 Lisp_Object coding_system; | 8292 Lisp_Object coding_system; |
| 8295 { | 8293 Lisp_Object terminal; |
| 8294 { | |
| 8295 struct coding_system *terminal_coding = TERMINAL_TERMINAL_CODING (get_terminal (terminal, 1)); | |
| 8296 CHECK_SYMBOL (coding_system); | 8296 CHECK_SYMBOL (coding_system); |
| 8297 setup_coding_system (Fcheck_coding_system (coding_system), | 8297 setup_coding_system (Fcheck_coding_system (coding_system), terminal_coding); |
| 8298 &terminal_coding); | |
| 8299 | |
| 8300 /* We had better not send unsafe characters to terminal. */ | 8298 /* We had better not send unsafe characters to terminal. */ |
| 8301 terminal_coding.mode |= CODING_MODE_SAFE_ENCODING; | 8299 terminal_coding->mode |= CODING_MODE_SAFE_ENCODING; |
| 8302 /* Characer composition should be disabled. */ | 8300 /* Characer composition should be disabled. */ |
| 8303 terminal_coding.common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK; | 8301 terminal_coding->common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK; |
| 8304 terminal_coding.src_multibyte = 1; | 8302 terminal_coding->src_multibyte = 1; |
| 8305 terminal_coding.dst_multibyte = 0; | 8303 terminal_coding->dst_multibyte = 0; |
| 8306 return Qnil; | 8304 return Qnil; |
| 8307 } | 8305 } |
| 8308 | 8306 |
| 8309 DEFUN ("set-safe-terminal-coding-system-internal", | 8307 DEFUN ("set-safe-terminal-coding-system-internal", |
| 8310 Fset_safe_terminal_coding_system_internal, | 8308 Fset_safe_terminal_coding_system_internal, |
| 8321 safe_terminal_coding.src_multibyte = 1; | 8319 safe_terminal_coding.src_multibyte = 1; |
| 8322 safe_terminal_coding.dst_multibyte = 0; | 8320 safe_terminal_coding.dst_multibyte = 0; |
| 8323 return Qnil; | 8321 return Qnil; |
| 8324 } | 8322 } |
| 8325 | 8323 |
| 8326 DEFUN ("terminal-coding-system", | 8324 DEFUN ("terminal-coding-system", Fterminal_coding_system, |
| 8327 Fterminal_coding_system, Sterminal_coding_system, 0, 0, 0, | 8325 Sterminal_coding_system, 0, 1, 0, |
| 8328 doc: /* Return coding system specified for terminal output. */) | 8326 doc: /* Return coding system specified for terminal output on the given terminal. |
| 8329 () | 8327 TERMINAL may be a terminal id, a frame, or nil for the selected |
| 8328 frame's terminal device. */) | |
| 8329 (terminal) | |
| 8330 Lisp_Object terminal; | |
| 8330 { | 8331 { |
| 8331 Lisp_Object coding_system; | 8332 Lisp_Object coding_system; |
| 8332 | 8333 |
| 8333 coding_system = CODING_ID_NAME (terminal_coding.id); | 8334 coding_system = TERMINAL_TERMINAL_CODING (get_terminal (terminal, 1))->symbol; |
| 8334 /* For backward compatibility, return nil if it is `undecided'. */ | 8335 /* For backward compatibility, return nil if it is `undecided'. */ |
| 8335 return (! EQ (coding_system, Qundecided) ? coding_system : Qnil); | 8336 return (! EQ (coding_system, Qundecided) ? coding_system : Qnil); |
| 8336 } | 8337 } |
| 8337 | 8338 |
| 8338 DEFUN ("set-keyboard-coding-system-internal", | 8339 DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_internal, |
| 8339 Fset_keyboard_coding_system_internal, | 8340 Sset_keyboard_coding_system_internal, 1, 2, 0, |
| 8340 Sset_keyboard_coding_system_internal, 1, 1, 0, | |
| 8341 doc: /* Internal use only. */) | 8341 doc: /* Internal use only. */) |
| 8342 (coding_system) | 8342 (coding_system, terminal) |
| 8343 Lisp_Object coding_system; | 8343 Lisp_Object coding_system; |
| 8344 { | 8344 Lisp_Object terminal; |
| 8345 { | |
| 8346 struct terminal *t = get_terminal (terminal, 1); | |
| 8345 CHECK_SYMBOL (coding_system); | 8347 CHECK_SYMBOL (coding_system); |
| 8346 setup_coding_system (Fcheck_coding_system (coding_system), | 8348 setup_coding_system (Fcheck_coding_system (coding_system), |
| 8347 &keyboard_coding); | 8349 TERMINAL_KEYBOARD_CODING (t)); |
| 8348 /* Characer composition should be disabled. */ | 8350 /* Characer composition should be disabled. */ |
| 8349 keyboard_coding.common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK; | 8351 TERMINAL_KEYBOARD_CODING (t)->common_flags |
| 8352 &= ~CODING_ANNOTATE_COMPOSITION_MASK; | |
| 8350 return Qnil; | 8353 return Qnil; |
| 8351 } | 8354 } |
| 8352 | 8355 |
| 8353 DEFUN ("keyboard-coding-system", | 8356 DEFUN ("keyboard-coding-system", |
| 8354 Fkeyboard_coding_system, Skeyboard_coding_system, 0, 0, 0, | 8357 Fkeyboard_coding_system, Skeyboard_coding_system, 0, 0, 0, |
