aboutsummaryrefslogtreecommitdiff
path: root/src/screen.c
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2026-04-27 01:03:51 -0400
committerB. Watson <urchlay@slackware.uk>2026-04-27 01:03:51 -0400
commit8c0820ada59c3a45c85c7ca1c7b0c9b111ae0967 (patch)
tree5dbe1efa89b345f4f028bab524f45e3a654382cb /src/screen.c
parentdd6820b88edc6d52ff9008781a2f27de85c24780 (diff)
downloadfujinet-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.c8
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) {