From 559c3e2875baec7e5c55023d2baedc5821176004 Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Mon, 26 Oct 2026 16:05:21 +0100 Subject: [PATCH] fix: bump max file name size for Files list view to 128 bytes --- programs/src/files/render.cpp | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/programs/src/files/render.cpp b/programs/src/files/render.cpp index 74f871f..d0155bd 100644 --- a/programs/src/files/render.cpp +++ b/programs/src/files/render.cpp @@ -589,28 +589,12 @@ void filemanager_on_draw(Window* win, Framebuffer& fb) { // The entry being renamed shows its rename box (drawn later). if (!(fm->rename_active && fm->rename_idx == i)) { if (ty >= list_y && ty + fm_sfh <= c.h) { - // Truncate name to fit the name column width - const char* name = fm->entry_names[i]; - int name_max_w = cols.name_right - tx; - char label[64]; - montauk::utf8::copy(label, 64, name); - - if (text_width(label) > name_max_w && montauk::slen(name) > 3) { - int ellipsis_w = text_width("..."); - int final_len = montauk::slen(label); - while (final_len > 1) { - label[final_len] = '\0'; - int w = text_width(label); - if (w + ellipsis_w <= name_max_w) break; - final_len = montauk::utf8::prev_boundary(label, final_len); - } - if (final_len > 60) - final_len = montauk::utf8::floor_boundary(label, final_len, 60); - label[final_len] = '.'; - label[final_len + 1] = '.'; - label[final_len + 2] = '.'; - label[final_len + 3] = '\0'; - } + // Truncate name to fit the name column width. The buffer + // matches entry_names so long names are only ever cut by + // pixel width, never silently by byte count. + char label[sizeof(fm->entry_names[0])]; + fit_label_with_ellipsis(label, sizeof(label), fm->entry_names[i], + cols.name_right - tx); c.text(tx, ty, label, colors::TEXT_COLOR); } }