pin keep us posted if you get a fix for it.
Here's a quick patch for you to test (I'll work up a proper fix later):
diff -urN ksh.orig/edit.c ksh/edit.c
--- ksh.orig/edit.c 2018-06-03 12:18:29.000000000 +0000
+++ ksh/edit.c 2021-09-03 19:08:08.116788555 +0000
@@ -132,6 +132,11 @@
{
int i;
+#if defined(TIOCGWINSZ)
+ got_sigwinch = 1;
+ check_sigwinch();
+#endif /* TIOCGWINSZ */
+
x_mode(true);
#ifdef EMACS
if (Flag(FEMACS) || Flag(FGMACS))
@@ -145,10 +150,6 @@
#endif
i = -1; /* internal error */
x_mode(false);
-#if defined(TIOCGWINSZ)
- if (got_sigwinch)
- check_sigwinch();
-#endif /* TIOCGWINSZ */
return i;
}
@@ -169,6 +170,13 @@
}
if (n != 1)
return -1;
+#if defined(TIOCGWINSZ)
+ if (got_sigwinch) {
+ check_sigwinch();
+extern void winch_cb(void);
+ winch_cb();
+ }
+#endif /* TIOCGWINSZ */
return (int) (unsigned char) c;
}
diff -urN ksh.orig/emacs.c ksh/emacs.c
--- ksh.orig/emacs.c 2018-05-08 16:37:59.000000000 +0000
+++ ksh/emacs.c 2021-09-03 07:25:53.242088836 +0000
@@ -316,6 +316,14 @@
{ XFUNC_mv_back, 2, 'D' },
};
+void winch_cb(void);
+void
+winch_cb(void)
+{
+ xx_cols = x_cols;
+ x_displen = xx_cols - 2 - x_col;
+}
+
int
x_emacs(buf, len)
char *buf;