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; }
/* 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; }