diff options
Diffstat (limited to 'win32/winansi.c')
-rw-r--r-- | win32/winansi.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/win32/winansi.c b/win32/winansi.c index c0493c77e..757a3509d 100644 --- a/win32/winansi.c +++ b/win32/winansi.c | |||
@@ -596,6 +596,23 @@ int winansi_get_terminal_width_height(struct winsize *win) | |||
596 | return ret ? 0 : -1; | 596 | return ret ? 0 : -1; |
597 | } | 597 | } |
598 | 598 | ||
599 | int winansi_set_terminal_width_height(struct winsize *win) | ||
600 | { | ||
601 | BOOL ret; | ||
602 | CONSOLE_SCREEN_BUFFER_INFOEX sbi; | ||
603 | |||
604 | init(); | ||
605 | |||
606 | sbi.cbSize = sizeof(sbi); | ||
607 | if ((ret=GetConsoleScreenBufferInfoEx(console, &sbi)) != 0) { | ||
608 | sbi.srWindow.Bottom = sbi.srWindow.Top + win->ws_row; | ||
609 | sbi.srWindow.Right = sbi.srWindow.Left + win->ws_col; | ||
610 | ret = SetConsoleScreenBufferInfoEx(console, &sbi); | ||
611 | } | ||
612 | |||
613 | return ret ? 0 : -1; | ||
614 | } | ||
615 | |||
599 | static int ansi_emulate_write(int fd, const void *buf, size_t count) | 616 | static int ansi_emulate_write(int fd, const void *buf, size_t count) |
600 | { | 617 | { |
601 | int rv = 0, i; | 618 | int rv = 0, i; |