diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-09-15 08:33:45 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-09-15 08:33:45 +0000 |
commit | 8efe967018dd79aacfe3ca1e2583f115d744e466 (patch) | |
tree | 7590704be6cf03c87242043f5909e12eb4150356 /shell | |
parent | c4f72d1426e03f046ac54a00d733a4a52c3a5d4b (diff) | |
download | busybox-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.c | 8 |
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 | ||
168 | static void win_changed(int nsig) | 168 | static 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 | ||