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);
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