this makes vifm compatible with ncurses-5.8 patch source: http://projects.archlinux.org/svntogit/community.git/plain/vifm/repos/community-x86_64/ncurses58.patch bug: https://bugs.gentoo.org/show_bug.cgi?id=359179 --- vifm-0.5/src/keys.c +++ vifm-0.5-new//src/keys.c @@ -721,7 +721,6 @@ redrawwin(stat_win); redrawwin(status_bar); redrawwin(pos_win); - redrawwin(lwin.title); redrawwin(lwin.win); redrawwin(num_win); redrawwin(rborder); @@ -740,7 +739,6 @@ touchwin(num_win); touchwin(rborder); - redrawwin(rwin.title); redrawwin(rwin.win); redrawwin(lborder); redrawwin(stat_win); @@ -768,10 +766,8 @@ touchwin(num_win); touchwin(rborder); - redrawwin(lwin.title); redrawwin(lwin.win); redrawwin(mborder); - redrawwin(rwin.title); redrawwin(rwin.win); redrawwin(lborder); redrawwin(stat_win); --- vifm-0.5/src/ui.c +++ vifm-0.5-new//src/ui.c @@ -158,32 +158,32 @@ werase(stdscr); - menu_win = newwin(screen_y - 1, screen_x , 0, 0); + menu_win = newwin(screen_y - 1, screen_x , 1, 1); wbkgdset(menu_win, COLOR_PAIR(WIN_COLOR)); werase(menu_win); - sort_win = newwin(NUM_SORT_OPTIONS + 3, 30, (screen_y -12)/2, (screen_x -30)/2); + sort_win = newwin(NUM_SORT_OPTIONS + 3, 30, (screen_y -12)/2 > 0 ? (screen_y -12/2) :1, (screen_x -30)/2 > 0 ? (screen_x -30)/2: 1); wbkgdset(sort_win, COLOR_PAIR(WIN_COLOR)); werase(sort_win); - change_win = newwin(20, 30, (screen_y -20)/2, (screen_x -30)/2); + change_win = newwin(20, 30, ((screen_y -20)/2 > 0 ? (screen_y -20)/2 : 1), (screen_x -30)/2 > 0 ? (screen_x -30/2) : 1 ); wbkgdset(change_win, COLOR_PAIR(WIN_COLOR)); werase(change_win); - error_win = newwin(10, screen_x -2, (screen_y -10)/2, 1); + error_win = newwin(10, screen_x -2, (screen_y -10)/2 > 0 ? (screen_y -10)/2 : 1, 1); wbkgdset(error_win, COLOR_PAIR(WIN_COLOR)); werase(error_win); - lborder = newwin(screen_y - 2, 1, 0, 0); + lborder = newwin(screen_y - 2, 1, 1, 1); wbkgdset(lborder, COLOR_PAIR(BORDER_COLOR)); werase(lborder); if (curr_stats.number_of_windows == 1) - lwin.title = newwin(0, screen_x -2, 0, 1); + lwin.title = newwin(0, screen_x -2, 1, 1); else - lwin.title = newwin(0, screen_x/2 -1, 0, 1); + lwin.title = newwin(0, screen_x/2 -1, 1, 1); wattrset(lwin.title, A_BOLD); wbkgdset(lwin.title, COLOR_PAIR(BORDER_COLOR)); @@ -204,16 +204,16 @@ lwin.window_rows = y -1; lwin.window_width = x -1; - mborder = newwin(screen_y, 2, 0, screen_x/2 -1); + mborder = newwin(screen_y, 2, 1, screen_x/2 -1 > 0 ? screen_x/2 -1 : 1); wbkgdset(mborder, COLOR_PAIR(BORDER_COLOR)); werase(mborder); if (curr_stats.number_of_windows == 1) - rwin.title = newwin(0, screen_x -2 , 0, 1); + rwin.title = newwin(0, screen_x -2 , 1, 1); else - rwin.title = newwin(1, screen_x/2 -1 , 0, screen_x/2 +1); + rwin.title = newwin(1, screen_x/2 -1 , 1, screen_x/2 +1 > 0 ? screen_x/2 +1 :1); wbkgdset(rwin.title, COLOR_PAIR(BORDER_COLOR)); wattrset(rwin.title, A_BOLD); @@ -224,7 +224,7 @@ if (curr_stats.number_of_windows == 1) rwin.win = newwin(screen_y - 3, screen_x -2 , 1, 1); else - rwin.win = newwin(screen_y - 3, screen_x/2 -2 , 1, screen_x/2 +1); + rwin.win = newwin(screen_y - 3, screen_x/2 -2 , 1, screen_x/2 +1 > 0 ? screen_x/2 +1 : 1); keypad(rwin.win, TRUE); wattrset(rwin.win, A_BOLD); @@ -235,32 +235,32 @@ rwin.window_rows = y - 1; rwin.window_width = x -1; - rborder = newwin(screen_y - 2, 1, 0, screen_x -1); + rborder = newwin(screen_y - 2, 1, 1, screen_x -1 > 0 ? screen_x-1 : 1); wbkgdset(rborder, COLOR_PAIR(BORDER_COLOR)); werase(rborder); - stat_win = newwin(1, screen_x, screen_y -2, 0); + stat_win = newwin(1, screen_x, screen_y -2 > 0 ? screen_y -2 : 1, 1); wbkgdset(stat_win, COLOR_PAIR(BORDER_COLOR)); werase(stat_win); - status_bar = newwin(1, screen_x - 19, screen_y -1, 0); + status_bar = newwin(1, screen_x - 19, screen_y -1 > 0 ? screen_y -2: 1, 1); keypad(status_bar, TRUE); wattrset(status_bar, A_BOLD); wattron(status_bar, A_BOLD); wbkgdset(status_bar, COLOR_PAIR(STATUS_BAR_COLOR)); werase(status_bar); - pos_win = newwin(1, 13, screen_y - 1, screen_x -13); + pos_win = newwin(1, 13, screen_y - 1 > 0 ? screen_y -1 : 1, screen_x -13 > 0 ? screen_x -13 : 1); wattrset(pos_win, A_BOLD); wattron(pos_win, A_BOLD); wbkgdset(pos_win, COLOR_PAIR(STATUS_BAR_COLOR)); werase(pos_win); - num_win = newwin(1, 6, screen_y - 1, screen_x -19); + num_win = newwin(1, 6, screen_y - 1 > 0 ? screen_y -1 : 1, screen_x -19 > 0 ? screen_x -19 : 1); wattrset(num_win, A_BOLD); wattron(num_win, A_BOLD); wbkgdset(num_win, COLOR_PAIR(STATUS_BAR_COLOR));