summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-09-15 08:33:45 +0000
committerEric Andersen <andersen@codepoet.org>2003-09-15 08:33:45 +0000
commit8efe967018dd79aacfe3ca1e2583f115d744e466 (patch)
tree7590704be6cf03c87242043f5909e12eb4150356 /shell
parentc4f72d1426e03f046ac54a00d733a4a52c3a5d4b (diff)
downloadbusybox-w32-8efe967018dd79aacfe3ca1e2583f115d744e466.tar.gz
busybox-w32-8efe967018dd79aacfe3ca1e2583f115d744e466.tar.bz2
busybox-w32-8efe967018dd79aacfe3ca1e2583f115d744e466.zip
Be entirely consistant when using ioctl(0, TIOCGWINSZ, &winsize)
to ensure proper fallback behavior on, i.e. serial consoles. -Erik
Diffstat (limited to 'shell')
-rw-r--r--shell/cmdedit.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/shell/cmdedit.c b/shell/cmdedit.c
index 0ab195803..16825089d 100644
--- a/shell/cmdedit.c
+++ b/shell/cmdedit.c
@@ -167,15 +167,13 @@ static void cmdedit_setwidth(int w, int redraw_flg);
167 167
168static void win_changed(int nsig) 168static void win_changed(int nsig)
169{ 169{
170 struct winsize win = { 0, 0, 0, 0 };
171 static sighandler_t previous_SIGWINCH_handler; /* for reset */ 170 static sighandler_t previous_SIGWINCH_handler; /* for reset */
172 171
173 /* emulate || signal call */ 172 /* emulate || signal call */
174 if (nsig == -SIGWINCH || nsig == SIGWINCH) { 173 if (nsig == -SIGWINCH || nsig == SIGWINCH) {
175 ioctl(0, TIOCGWINSZ, &win); 174 int width = 0;
176 if (win.ws_col > 0) { 175 get_terminal_width_height(0, &width, NULL);
177 cmdedit_setwidth(win.ws_col, nsig == SIGWINCH); 176 cmdedit_setwidth(width, nsig == SIGWINCH);
178 }
179 } 177 }
180 /* Unix not all standart in recall signal */ 178 /* Unix not all standart in recall signal */
181 179