From db669c00a1acc2a2363463f22e6b667ab0c0cce0 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Fri, 20 Sep 2024 15:33:04 +0800 Subject: [PATCH] TerminalFont (Linux): fix font size detection of foot when fall back font is used Fix #1276 --- src/detection/terminalfont/terminalfont_linux.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/detection/terminalfont/terminalfont_linux.c b/src/detection/terminalfont/terminalfont_linux.c index 843648c57..baf383def 100644 --- a/src/detection/terminalfont/terminalfont_linux.c +++ b/src/detection/terminalfont/terminalfont_linux.c @@ -244,13 +244,19 @@ static void detectFootTerminal(FFTerminalFontResult* terminalFont) return; } uint32_t equal = ffStrbufNextIndexS(&font, colon, "size="); - font.chars[colon] = 0; + font.chars[colon] = '\0'; if (equal == font.length) { ffFontInitValues(&terminalFont->font, font.chars, "8"); return; } - ffFontInitValues(&terminalFont->font, font.chars, &font.chars[equal + strlen("size=")]); + uint32_t size = equal + strlen("size="); + uint32_t comma = ffStrbufNextIndexC(&font, size, ','); + if (comma < font.length) + font.chars[comma] = '\0'; + ffFontInitValues(&terminalFont->font, font.chars, &font.chars[size]); + if (comma < font.length) + ffFontInitValues(&terminalFont->fallback, &font.chars[comma + 1], NULL); } static void detectQTerminal(FFTerminalFontResult* terminalFont)