From 3a0b132001712509eae2b1595fcd94e288c18c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 27 Nov 2023 09:05:37 +0800 Subject: [PATCH] TerminalFont: support alacritty.toml Fix #631 --- src/detection/terminalfont/terminalfont.c | 36 ++++++++++++++++------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/detection/terminalfont/terminalfont.c b/src/detection/terminalfont/terminalfont.c index e20a31f93..e6b5ea66e 100644 --- a/src/detection/terminalfont/terminalfont.c +++ b/src/detection/terminalfont/terminalfont.c @@ -9,17 +9,33 @@ static void detectAlacritty(FFTerminalFontResult* terminalFont) FF_STRBUF_AUTO_DESTROY fontName = ffStrbufCreate(); FF_STRBUF_AUTO_DESTROY fontSize = ffStrbufCreate(); - FFpropquery fontQuery[] = { - {"family:", &fontName}, - {"size:", &fontSize}, - }; + do { + // Latest alacritty uses toml instead of yaml + FFpropquery fontQueryToml[] = { + {"family =", &fontName}, + {"size =", &fontSize}, + }; - // alacritty parses config files in this order - ffParsePropFileConfigValues("alacritty/alacritty.yml", 2, fontQuery); - if(fontName.length == 0 || fontSize.length == 0) - ffParsePropFileConfigValues("alacritty.yml", 2, fontQuery); - if(fontName.length == 0 || fontSize.length == 0) - ffParsePropFileConfigValues(".alacritty.yml", 2, fontQuery); + // alacritty parses config files in this order + if(ffParsePropFileConfigValues("alacritty/alacritty.toml", 2, fontQueryToml)) + break; + if(ffParsePropFileConfigValues("alacritty.toml", 2, fontQueryToml)) + break; + if(ffParsePropFileConfigValues(".alacritty.toml", 2, fontQueryToml)) + break; + + FFpropquery fontQueryYaml[] = { + {"family:", &fontName}, + {"size:", &fontSize}, + }; + + if(ffParsePropFileConfigValues("alacritty/alacritty.yml", 2, fontQueryYaml)) + break; + if(ffParsePropFileConfigValues("alacritty.yml", 2, fontQueryYaml)) + break; + if(ffParsePropFileConfigValues(".alacritty.yml", 2, fontQueryYaml)) + break; + } while (false); //by default alacritty uses its own font called alacritty if(fontName.length == 0)