Mercurial > hg > xemacs-beta
diff src/console-tty.c @ 255:084402c475ba r20-5b26
Import from CVS: tag r20-5b26
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:21:18 +0200 |
parents | e45d5e7c476e |
children | 11cf20601dec |
line wrap: on
line diff
--- a/src/console-tty.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/console-tty.c Mon Aug 13 10:21:18 2007 +0200 @@ -226,6 +226,86 @@ return CONSOLE_TTY_DATA (decode_tty_console (console))->controlling_process; } +#ifdef MULE +DEFUN ("set-console-tty-coding-system", Fset_console_tty_coding_system, 0, 2, 0, /* +Set the coding system of tty console CONSOLE to CODESYS. +CONSOLE defaults to the selected console. +CODESYS defaults to the value of `terminal-coding-system'. +*/ + (console, codesys)) +{ + struct console *con = decode_tty_console (console); + codesys = NILP (codesys) ? + Vterminal_coding_system : + Fget_coding_system (codesys); + set_encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->outstream), + codesys); + return Qnil; +} +#endif /* MULE */ + + +/* redefine coding system for console tty */ +#ifdef MULE +DEFUN ("console-tty-input-coding-system", Fconsole_tty_input_coding_system, 1, 1, 0, /* +Return TTY CONSOLE's input coding system. +*/ + (console)) +{ + struct console *con = decode_tty_console (console); + return decoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->instream)); +} + +DEFUN ("set-console-tty-input-coding-system", Fset_console_tty_input_coding_system, 0, 2, 0, /* +Set the coding system of tty input of console CONSOLE to CODESYS. +CONSOLE defaults to the selected console. +CODESYS defaults to the value of `keyboard-coding-system'. +*/ + (console, codesys)) +{ + struct console *con; + if (!NILP(console)) { + con = decode_tty_console (console); + codesys = NILP (codesys) ? + Vkeyboard_coding_system : + Fget_coding_system (codesys); + set_encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->instream), + codesys); + } + return Qnil; +} + +DEFUN ("console-tty-output-coding-system", Fconsole_tty_output_coding_system, 1, 1, 0, /* +Return TTY CONSOLE's output coding system. +*/ + (console)) +{ + struct console *con = decode_tty_console (console); + return encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->outstream) ); +} + +DEFUN ("set-console-tty-output-coding-system", Fset_console_tty_output_coding_system, 0, 2, 0, /* +Set the coding system of tty output of console CONSOLE to CODESYS. +CONSOLE defaults to the selected console. +CODESYS defaults to the value of `terminal-coding-system'. +*/ + (console, codesys)) +{ + struct console *con; + if (!NILP(console)) { + con = decode_tty_console (console); + codesys = NILP (codesys) ? + Vterminal_coding_system : + Fget_coding_system (codesys); + set_encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->outstream), + codesys); + } + return Qnil; +} + +#endif /* MULE */ + + Lisp_Object tty_semi_canonicalize_console_connection (Lisp_Object connection, Error_behavior errb) @@ -266,6 +346,13 @@ DEFSUBR (Fconsole_tty_controlling_process); defsymbol (&Qterminal_type, "terminal-type"); defsymbol (&Qcontrolling_process, "controlling-process"); +#ifdef MULE + DEFSUBR (Fconsole_tty_output_coding_system); + DEFSUBR (Fset_console_tty_output_coding_system); + DEFSUBR (Fconsole_tty_input_coding_system); + DEFSUBR (Fset_console_tty_input_coding_system); + DEFSUBR (Fset_console_tty_coding_system); +#endif } void