mirror of
https://github.com/systemd/systemd
synced 2024-09-06 16:56:43 +00:00
Merge pull request #32369 from DaanDeMeyer/serial
terminal-util: Enable line wrapping in reset_terminal_fd()
This commit is contained in:
commit
f92868db4e
|
@ -2,10 +2,6 @@
|
|||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -e
|
||||
|
||||
# Make sure serial console line wrapping is re-enabled as qemu's seabios firmware disables serial console
|
||||
# line-wrapping on boot.
|
||||
echo "tput smam || :" >>/etc/profile
|
||||
|
||||
if [ -n "$SANITIZERS" ]; then
|
||||
LD_PRELOAD=$(ldd /usr/lib/systemd/systemd | grep libasan.so | awk '{print $3}')
|
||||
|
||||
|
|
|
@ -167,7 +167,10 @@ int fd_nonblock(int fd, bool nonblock) {
|
|||
if (nflags == flags)
|
||||
return 0;
|
||||
|
||||
return RET_NERRNO(fcntl(fd, F_SETFL, nflags));
|
||||
if (fcntl(fd, F_SETFL, nflags) < 0)
|
||||
return -errno;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int stdio_disable_nonblock(void) {
|
||||
|
|
|
@ -306,7 +306,29 @@ int reset_terminal_fd(int fd, bool switch_to_text) {
|
|||
termios.c_cc[VMIN] = 1;
|
||||
|
||||
r = RET_NERRNO(tcsetattr(fd, TCSANOW, &termios));
|
||||
if (r < 0) {
|
||||
log_debug_errno(r, "Failed to set terminal parameters: %m");
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (!terminal_is_dumb()) {
|
||||
r = fd_nonblock(fd, true);
|
||||
if (r < 0) {
|
||||
log_debug_errno(r, "Failed to set terminal to non-blocking mode: %m");
|
||||
goto finish;
|
||||
}
|
||||
|
||||
/* Enable line wrapping. */
|
||||
(void) loop_write_full(fd, "\033[?7h", SIZE_MAX, 50 * USEC_PER_MSEC);
|
||||
|
||||
if (r > 0) {
|
||||
r = fd_nonblock(fd, false);
|
||||
if (r < 0) {
|
||||
log_debug_errno(r, "Failed to set terminal back to blocking mode: %m");
|
||||
goto finish;
|
||||
}
|
||||
}
|
||||
}
|
||||
finish:
|
||||
/* Just in case, flush all crap out */
|
||||
(void) tcflush(fd, TCIOFLUSH);
|
||||
|
|
|
@ -70,7 +70,7 @@ check_result_qemu_hook() {
|
|||
fi
|
||||
|
||||
# Check if the shutdown initrd was executed at all
|
||||
if ! grep -qE "^Hello from shutdown initrd\s*$" "$console_log"; then
|
||||
if ! grep -q "Hello from shutdown initrd" "$console_log"; then
|
||||
derror "Missing 'hello' message from shutdown initrd"
|
||||
return 1
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue