commit e1c42cfe77468949a80423b76a2f87453939095e from: Marcel Rodrigues date: Tue Nov 11 16:27:33 2014 UTC Handle SIGWINCH. commit - 8986353b0f6fb68b5569bec13012784e7dba2bb2 commit + e1c42cfe77468949a80423b76a2f87453939095e blob - 143533d49bbc1bca0f263841da4a96cd9a44549d blob + 65fbd771773f9a9549c6f17f0ac69ec2ca345a74 --- rover.c +++ rover.c @@ -127,9 +127,13 @@ clean_term() endwin(); } +void handle_winch(int sig); + static void init_term() { + struct sigaction sa; + setlocale(LC_ALL, ""); initscr(); cbreak(); /* Get one character at a time. */ @@ -138,6 +142,9 @@ init_term() intrflush(stdscr, FALSE); keypad(stdscr, TRUE); curs_set(FALSE); /* Hide blinking cursor. */ + memset(&sa, 0, sizeof(struct sigaction)); + sa.sa_handler = handle_winch; + sigaction(SIGWINCH, &sa, NULL); if (has_colors()) { start_color(); init_pair(RED, COLOR_RED, COLOR_BLACK); @@ -278,6 +285,18 @@ igetstr(char *buffer, int maxlen) return 1; } +void +handle_winch(int sig) +{ + (void) sig; + delwin(rover.window); + endwin(); + refresh(); + clear(); + rover.window = subwin(stdscr, LINES - 2, COLS, 1, 0); + cd(0); +} + int main(int argc, char *argv[]) {