| From jejb@kernel.org Tue May 13 09:23:33 2008 |
| From: Samuel Thibault <samuel.thibault@ens-lyon.org> |
| Date: Thu, 8 May 2008 21:06:15 GMT |
| Subject: vt: fix canonical input in UTF-8 mode |
| To: jejb@kernel.org, stable@kernel.org |
| Message-ID: <200805082106.m48L6Fa2022639@hera.kernel.org> |
| |
| From: Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| commit c1236d31a1b9fc018b85e15a3e58e3601ddc90ae upstream |
| |
| For e.g. proper TTY canonical support, IUTF8 termios flag has to be set as |
| appropriate. Linux used to not care about setting that flag for VT TTYs. |
| |
| This patch fixes that by activating it according to the current mode of the |
| VT, and sets the default value according to the vt.default_utf8 parameter. |
| |
| Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> |
| Cc: Willy Tarreau <w@1wt.eu> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/char/vt.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| --- a/drivers/char/vt.c |
| +++ b/drivers/char/vt.c |
| @@ -2723,6 +2723,10 @@ static int con_open(struct tty_struct *t |
| tty->winsize.ws_row = vc_cons[currcons].d->vc_rows; |
| tty->winsize.ws_col = vc_cons[currcons].d->vc_cols; |
| } |
| + if (vc->vc_utf) |
| + tty->termios->c_iflag |= IUTF8; |
| + else |
| + tty->termios->c_iflag &= ~IUTF8; |
| release_console_sem(); |
| vcs_make_sysfs(tty); |
| return ret; |
| @@ -2899,6 +2903,8 @@ int __init vty_init(void) |
| console_driver->minor_start = 1; |
| console_driver->type = TTY_DRIVER_TYPE_CONSOLE; |
| console_driver->init_termios = tty_std_termios; |
| + if (default_utf8) |
| + console_driver->init_termios.c_iflag |= IUTF8; |
| console_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_RESET_TERMIOS; |
| tty_set_operations(console_driver, &con_ops); |
| if (tty_register_driver(console_driver)) |