diff --git a/include/wincurs.h b/include/wincurs.h index 43fdb9de6..cb43f3729 100644 --- a/include/wincurs.h +++ b/include/wincurs.h @@ -181,7 +181,7 @@ extern void curses_del_menu(winid wid); /* cursstat.c */ extern void curses_status_init(void); -extern void curses_teardown_status(void); +extern void curses_status_finish(void); extern void curses_status_update(int, genericptr_t, int, int, int, unsigned long *); diff --git a/win/curses/cursmain.c b/win/curses/cursmain.c index 8ae781a98..e792c9376 100644 --- a/win/curses/cursmain.c +++ b/win/curses/cursmain.c @@ -75,7 +75,7 @@ struct window_procs curses_procs = { genl_getmsghistory, genl_putmsghistory, curses_status_init, - genl_status_finish, + curses_status_finish, genl_status_enablefield, curses_status_update, genl_can_suspend_yes, diff --git a/win/curses/cursstat.c b/win/curses/cursstat.c index f1ad01741..67287ea88 100644 --- a/win/curses/cursstat.c +++ b/win/curses/cursstat.c @@ -58,15 +58,16 @@ curses_status_init() } void -curses_teardown_status() +curses_status_finish() { #ifdef STATUS_HILITES int i; for (i = 0; i < MAXBLSTATS; ++i) { - free(status_vals_long[i]); - status_vals_long[i] = (char *) 0; + if (status_vals_long[i]) + free(status_vals_long[i]), status_vals_long[i] = (char *) 0; } + genl_status_finish(); #endif /* STATUS_HILITES */ return; } diff --git a/win/curses/curswins.c b/win/curses/curswins.c index 45cd0f7ef..e78055475 100644 --- a/win/curses/curswins.c +++ b/win/curses/curswins.c @@ -313,9 +313,7 @@ curses_del_nhwin(winid wid) return; } if (wid == MESSAGE_WIN) { - curses_teardown_messages(); - } else if (wid == STATUS_WIN) { - curses_teardown_status(); + curses_teardown_messages(); } nhwins[wid].curwin = NULL; nhwins[wid].nhwin = -1;