diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-04-27 01:03:51 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-04-27 01:03:51 -0400 |
| commit | 8c0820ada59c3a45c85c7ca1c7b0c9b111ae0967 (patch) | |
| tree | 5dbe1efa89b345f4f028bab524f45e3a654382cb /src/screen.c | |
| parent | dd6820b88edc6d52ff9008781a2f27de85c24780 (diff) | |
| download | fujinet-chat-8c0820ada59c3a45c85c7ca1c7b0c9b111ae0967.tar.gz | |
Do not keep displaying a destroyed screen, do not destroy screens 1 and 2.
Diffstat (limited to 'src/screen.c')
| -rw-r--r-- | src/screen.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/screen.c b/src/screen.c index dd25938..d090e51 100644 --- a/src/screen.c +++ b/src/screen.c @@ -78,14 +78,20 @@ void scr_destroy(char s) { if(s < 2 || s >= MAX_SCREENS) return; + /* don't destroy if already destroyed (or never created) */ + if(screens[s].status == SCR_UNUSED) + return; + // pool_reclaim_lines(screens[s].pool, screens[s].line_list); pools[screens[s].pool].screen_count--; screens[s].title[0] = 0; screens[s].status = SCR_UNUSED; screens[s].pool = POOL_UNUSED; - screens[s].line_list = 0; screens[s].line_count = screens[s].scrollback_pos = 0; + + /* theoretically this could be 0, but as a safety net... */ + screens[s].line_list = (line_t *)END_MARKER; } void render_vis_buf(void) { |
