+/*
+ * SIGWINCH handler to handle resizes of the outer terminal.
+ *
+ * Errors are ignored without message because printing in signal handlers is
+ * problematic (no FILE * usable due to locks) and there's not much we can do
+ * at this point.
+ */
+static int sigwinch_ctty = -1;
+static int sigwinch_slave = -1;
+
+static void sigwinch_handler(int signal) {
+ (void)signal;
+
+ struct winsize size;
+ if (ioctl(sigwinch_ctty, TIOCGWINSZ, &size) == -1) {
+ return;
+ }
+ if (ioctl(sigwinch_slave, TIOCSWINSZ, &size) == -1) {
+ return;
+ }
+}
+