From 5f6030b13cb24ad209b96f27f0f95152ceab439d Mon Sep 17 00:00:00 2001 From: Daniel Bertalan Date: Mon, 25 Oct 2021 14:36:05 +0200 Subject: Kernel+LibC: Default to 8-bit characters in TTY Some ports (like `bc` with history enabled) sensibly set the termios character size to 8 bits. Previously, we left the character size value (given by the bitmask CSIZE) as zero by default (meaning 5 bits per character), and returned ENOTIMPL whenever someone modified it. This was dumb. --- Kernel/TTY/TTY.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'Kernel') diff --git a/Kernel/TTY/TTY.cpp b/Kernel/TTY/TTY.cpp index 86ea95cd94..0d3e6aec38 100644 --- a/Kernel/TTY/TTY.cpp +++ b/Kernel/TTY/TTY.cpp @@ -438,12 +438,12 @@ KResult TTY::set_termios(const termios& t) } } + if ((m_termios.c_cflag & CSIZE) != CS8) { + dbgln("FIXME: Character sizes other than 8 bits are not supported"); + rc = ENOTIMPL; + } + static constexpr FlagDescription unimplemented_cflags[] = { - { CSIZE, "CSIZE" }, - { CS5, "CS5" }, - { CS6, "CS6" }, - { CS7, "CS7" }, - { CS8, "CS8" }, { CSTOPB, "CSTOPB" }, { CREAD, "CREAD" }, { PARENB, "PARENB" }, -- cgit v1.2.3