diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-09-13 15:19:46 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-09-13 15:19:46 -0400 |
commit | e1e7aea55beae31fd0ab067f087401012236cd96 (patch) | |
tree | df299c8fe7ab2f7df5d4499cadf9acf26bb027a8 /src | |
parent | aef24a4d43598bd1f65951611e6338a597fc7bc0 (diff) | |
download | libvt100-e1e7aea55beae31fd0ab067f087401012236cd96.tar.gz libvt100-e1e7aea55beae31fd0ab067f087401012236cd96.zip |
add functions to allocate memory for the screen too
Diffstat (limited to 'src')
-rw-r--r-- | src/screen.c | 16 | ||||
-rw-r--r-- | src/screen.h | 2 |
2 files changed, 18 insertions, 0 deletions
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 |