void if_shutdown(void) { /* Shut down curses cleanly */ if (curses_initialized) swin_endwin(); if (status_win) { swin_delwin(status_win); status_win = NULL; } if (gdb_scroller) { scr_free(gdb_scroller); gdb_scroller = NULL; } if (src_viewer) { source_free(src_viewer); src_viewer = NULL; } if (vseparator_win) { swin_delwin(vseparator_win); vseparator_win = NULL; } if (G_line_number) { ibuf_free(G_line_number); G_line_number = 0; } }
void scr_free(struct scroller *scr) { int i; /* Release the buffer */ for (i = 0; i < sbcount(scr->lines); i++) { free(scr->lines[i].line); sbfree(scr->lines[i].attrs); } sbfree(scr->lines); scr->lines = NULL; hl_regex_free(&scr->last_hlregex); scr->last_hlregex = NULL; hl_regex_free(&scr->hlregex); scr->hlregex = NULL; free(scr->last_inferior_line); scr->last_inferior_line = NULL; swin_delwin(scr->win); scr->win = NULL; /* Release the scroller object */ free(scr); }
/* * create_swindow: (re)create window with specified position and size. */ static void create_swindow(SWINDOW **win, int nlines, int ncols, int begin_y, int begin_x) { if (*win) { int x = swin_getbegx(*win); int y = swin_getbegy(*win); int w = swin_getmaxx(*win); int h = swin_getmaxy(*win); /* If the window position + size hasn't changed, bail */ if (x == begin_x && y == begin_y && w == ncols && h == nlines) return; /* Delete the existing window */ swin_delwin(*win); *win = NULL; } if ((nlines > 0) && (ncols > 0)) { /* Create the ncurses window */ *win = swin_newwin(nlines, ncols, begin_y, begin_x); swin_werase(*win); } }
void source_free(struct sviewer *sview) { /* Free all file buffers */ while (sview->list_head) source_del(sview, sview->list_head->path); hl_regex_free(&sview->hlregex); sview->hlregex = NULL; hl_regex_free(&sview->last_hlregex); sview->last_hlregex = NULL; swin_delwin(sview->win); sview->win = NULL; free(sview); }
void filedlg_free(struct filedlg *fdlg) { filedlg_clear(fdlg); hl_regex_free(&fdlg->last_hlregex); fdlg->last_hlregex = NULL; hl_regex_free(&fdlg->hlregex); fdlg->hlregex = NULL; swin_delwin(fdlg->win); fdlg->win = NULL; free(fdlg->buf); fdlg->buf = NULL; delete fdlg; }
void filedlg_free(struct filedlg *fdlg) { filedlg_clear(fdlg); ibuf_free(fdlg->G_line_number); hl_regex_free(&fdlg->last_hlregex); fdlg->last_hlregex = NULL; hl_regex_free(&fdlg->hlregex); fdlg->hlregex = NULL; swin_delwin(fdlg->win); fdlg->win = NULL; free(fdlg->buf); fdlg->buf = NULL; free(fdlg); }
void source_move(struct sviewer *sview, SWINDOW *win) { swin_delwin(sview->win); sview->win = win; }
void scr_move(struct scroller *scr, SWINDOW *win) { swin_delwin(scr->win); scr->win = win; }