[git commit] resize: use tcgetattr(TCSAFLUSH) instead of TCSANOW, closes 13811

Denys Vlasenko vda.linux at googlemail.com
Fri Oct 8 20:18:24 UTC 2021


commit: https://git.busybox.net/busybox/commit/?id=d315a77a79817d364a1562f4457c21fbb8174025
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 console-tools/resize.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/console-tools/resize.c b/console-tools/resize.c
index 59d468d48..056e33750 100644
--- a/console-tools/resize.c
+++ b/console-tools/resize.c
@@ -74,7 +74,19 @@ int resize_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
 		+ (1 << SIGTERM)
 		+ (1 << SIGALRM)
 		, onintr);
-	tcsetattr(STDERR_FILENO, TCSANOW, &new);
+	/* Users report:
+	 *	The resize command messes up the terminal.
+	 *	In my case it looks like it is hanging and
+	 *	I need to press ctrl-c to get a prompt.
+	 *	Actually the program does not hang but just
+	 *	the terminal is messed up.
+	 * Replaced TCSANOW with TCSAFLUSH:
+	 * "the change occurs after all output written to fd
+	 * has been transmitted, and all input that has been
+	 * received but not read will be discarded before
+	 * the change is made.
+	 */
+	tcsetattr(STDERR_FILENO, TCSAFLUSH, &new);
 
 	/* save_cursor_pos 7
 	 * scroll_whole_screen [r


More information about the busybox-cvs mailing list