Beispiel #1
0
static int if_resize()
{
    if (ioctl(fileno(stdout), TIOCGWINSZ, &screen_size) != -1) {
#ifdef NCURSES_VERSION
        if (screen_size.ws_row != LINES || screen_size.ws_col != COLS) {
            resizeterm(screen_size.ws_row, screen_size.ws_col);
            refresh();
            rl_resize(screen_size.ws_row, screen_size.ws_col);
            return if_layout();
        }
#else
        /* Stupid way to resize - should work on most systems */
        endwin();
        LINES = screen_size.ws_row;
        COLS = screen_size.ws_col;
        refresh();
        source_hscroll(src_win, 0);
#endif
        rl_resize(screen_size.ws_row, screen_size.ws_col);
        return if_layout();

    }

    return 0;
}
Beispiel #2
0
/* if_resize_term: Checks if a resize event occurred, and updates display if so.
 * ----------
 *
 * Return Value:  Zero on success, non-zero on failure.
 */
int if_resize_term(void)
{
    if (ioctl(fileno(stdout), TIOCGWINSZ, &screen_size) != -1) {
        if (screen_size.ws_row != swin_lines() ||
                screen_size.ws_col != swin_cols()) {
            swin_resizeterm(screen_size.ws_row, screen_size.ws_col);
            swin_refresh();
            rl_resize(screen_size.ws_row, screen_size.ws_col);
            return if_layout();
        }

        rl_resize(screen_size.ws_row, screen_size.ws_col);
        return if_layout();

    }

    return 0;
}