From e1e7aea55beae31fd0ab067f087401012236cd96 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 13 Sep 2014 15:19:46 -0400 Subject: add functions to allocate memory for the screen too --- src/screen.c | 16 ++++++++++++++++ src/screen.h | 2 ++ 2 files changed, 18 insertions(+) (limited to 'src') diff --git a/src/screen.c b/src/screen.c index ea16498..ab65adf 100644 --- a/src/screen.c +++ b/src/screen.c @@ -17,6 +17,16 @@ static int vt100_screen_loc_is_between( struct vt100_loc start, struct vt100_loc end); static int vt100_screen_row_max_col(VT100Screen *vt, int row); +VT100Screen *vt100_screen_new() +{ + VT100Screen *vt; + + vt = calloc(1, sizeof(VT100Screen)); + vt100_screen_init(vt); + + return vt; +} + void vt100_screen_init(VT100Screen *vt) { vt->grid = calloc(1, sizeof(struct vt100_grid)); @@ -773,6 +783,12 @@ void vt100_screen_cleanup(VT100Screen *vt) vt100_parser_yylex_destroy(vt->scanner); } +void vt100_screen_delete(VT100Screen *vt) +{ + vt100_screen_cleanup(vt); + free(vt); +} + static void vt100_screen_ensure_capacity(VT100Screen *vt, int size) { int old_capacity = vt->grid->row_capacity; diff --git a/src/screen.h b/src/screen.h index 2ac4b9e..822b28c 100644 --- a/src/screen.h +++ b/src/screen.h @@ -111,6 +111,7 @@ struct vt100_screen { unsigned char dirty: 1; }; +VT100Screen *vt100_screen_new(); void vt100_screen_init(VT100Screen *vt); void vt100_screen_set_window_size(VT100Screen *vt); int vt100_screen_process_string(VT100Screen *vt, char *buf, size_t len); @@ -171,5 +172,6 @@ void vt100_screen_reset_bracketed_paste(VT100Screen *vt); void vt100_screen_set_window_title(VT100Screen *vt, char *buf, size_t len); void vt100_screen_set_icon_name(VT100Screen *vt, char *buf, size_t len); void vt100_screen_cleanup(VT100Screen *vt); +void vt100_screen_delete(VT100Screen *vt); #endif -- cgit v1.2.3-54-g00ecf