treewide: properly clear the buffer

Before this patch, the OSD would repeat the last buffer
content in case the new buffer content would be empty.

This was mostly happening for the `title` OSD field that is intended
to be empty when it matches the app_id / WM_CLASS of the application.
Due to only buffer.len being reset but its internal allocations being
untouched, buffer.buf would still carry the old data.

This patch fixes it by also overwriting the first byte in the buffer
allocation with '\0' via the new `buf_clear()` function.

Do the same for buf_expand_shell_variables() although that one should
have been fine before as it always writes new data to the buffer.
This commit is contained in:
Consolatis 2024-03-16 19:03:06 +01:00 committed by Johan Malm
parent b4f3ffc27e
commit 343918dee0
2 changed files with 2 additions and 2 deletions

View file

@ -286,7 +286,7 @@ render_osd(struct server *server, cairo_t *cairo, int w, int h,
int nr_fields = wl_list_length(&rc.window_switcher.fields);
struct window_switcher_field *field;
wl_list_for_each(field, &rc.window_switcher.fields, link) {
buf.len = 0;
buf_clear(&buf);
cairo_move_to(cairo, x, y
+ theme->osd_window_switcher_item_padding_y
+ theme->osd_window_switcher_item_active_border_width);