From 4c15814bf7925938035ffa1b475e6f083b0ce410 Mon Sep 17 00:00:00 2001 From: Themaister Date: Sun, 14 Apr 2013 23:27:15 +0200 Subject: [PATCH] Ensure that terminal doesn't get overflowed. --- frontend/menu/rgui.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/frontend/menu/rgui.c b/frontend/menu/rgui.c index c8260e98c3..1d363fed6d 100644 --- a/frontend/menu/rgui.c +++ b/frontend/menu/rgui.c @@ -414,6 +414,15 @@ static void render_text(rgui_handle_t *rgui) else snprintf(title, sizeof(title), "FILE BROWSER %s", dir); + // Ensure that directory doesn't overflow terminal. + size_t title_len = strlen(title); + if (title_len > TERM_WIDTH - 3) + { + size_t start = title_len - (TERM_WIDTH - 7); + memmove(title + 4, title + start, title_len - start + 1); + memcpy(title, "... ", 4); + } + blit_line(rgui, TERM_START_X + 15, 15, title, true); blit_line(rgui, TERM_START_X + 15, (TERM_HEIGHT * FONT_HEIGHT_STRIDE) + TERM_START_Y + 2, g_extern.title_buf, true);