aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
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