Merge remote-tracking branch 'refs/remotes/tmux-openbsd/master'

* refs/remotes/tmux-openbsd/master:
  Also set ntitles to 0 when creating screen in the first place.
  Reset title count when freeing titles, GitHub issue 5429 from Brett Smith.
  Do not loop forever if the combining character is too long, GitHub issue 5434 from me at qdrs dot dev.
This commit is contained in:
tmux update bot
2026-07-26 10:55:47 +00:00
3 changed files with 8 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
/* $OpenBSD: screen-write.c,v 1.284 2026/07/20 11:16:33 nicm Exp $ */
/* $OpenBSD: screen-write.c,v 1.285 2026/07/26 09:02:08 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -2875,7 +2875,7 @@ screen_write_combine(struct screen_write_ctx *ctx, const struct grid_cell *gc)
/* Check if this combined character would be too long. */
if (last.data.size + ud->size > sizeof last.data.data)
return (0);
return (zero_width);
/* Combining; flush any pending output. */
screen_write_collect_flush(ctx, 0, __func__);

View File

@@ -1,4 +1,4 @@
/* $OpenBSD: screen.c,v 1.105 2026/06/29 18:17:28 nicm Exp $ */
/* $OpenBSD: screen.c,v 1.107 2026/07/26 09:20:54 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -69,6 +69,7 @@ screen_free_titles(struct screen *s)
free(s->titles);
s->titles = NULL;
s->ntitles = 0;
}
/* Create a new screen. */
@@ -80,6 +81,7 @@ screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit)
s->title = xstrdup("");
s->titles = NULL;
s->ntitles = 0;
s->path = NULL;
s->cstyle = SCREEN_CURSOR_DEFAULT;

View File

@@ -1,4 +1,4 @@
/* $OpenBSD: tty-draw.c,v 1.14 2026/06/19 10:38:29 nicm Exp $ */
/* $OpenBSD: tty-draw.c,v 1.15 2026/07/26 09:02:08 nicm Exp $ */
/*
* Copyright (c) 2026 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -100,6 +100,8 @@ tty_draw_line_get_empty(const struct grid_cell *gc,
empty = nx;
else if (gc->flags & GRID_FLAG_PADDING)
empty = 1;
else if (gc->data.width == 0)
empty = 1;
else if (gc->flags & GRID_FLAG_SELECTED)
empty = 0;
else if (gc->bg == last->bg && gc->attr == 0 && gc->link == 0) {