From: Ferdinand Bachmann Date: Tue, 16 Jan 2024 00:52:11 +0000 (+0100) Subject: label-freetype: fix fallback not working when fc-match isn't available X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=792fe7474a02a1facacdd52e0dcf9053da4b1f6e;p=thirdparty%2Fplymouth.git label-freetype: fix fallback not working when fc-match isn't available The new font loading functions introduced in 544e62ac41a490f04d8e6b4e85f8b9fa1171b0cc assume that popen() returns NULL when fc-match is unavailable or fails. This is incorrect, since popen() will always start a shell to run the passed command and return a stream to that shell's stdin and stdout. This results in an non-null but empty font name being passed to FT_New_Face(), which fails. This commit fixes this by also using the fallback font when the font path read from the popen() stream is empty. Fixes #239 Fixes regression caused by 544e62ac41a490f04d8e6b4e85f8b9fa1171b0cc --- diff --git a/src/plugins/controls/label-freetype/plugin.c b/src/plugins/controls/label-freetype/plugin.c index 917b04c0..be206207 100644 --- a/src/plugins/controls/label-freetype/plugin.c +++ b/src/plugins/controls/label-freetype/plugin.c @@ -135,6 +135,9 @@ find_default_font_path (void) pclose (fp); + if (strcmp (fc_match_out, "") == 0) + return FONT_FALLBACK; + return fc_match_out; } @@ -152,6 +155,9 @@ find_default_monospace_font_path (void) pclose (fp); + if (strcmp (fc_match_out, "") == 0) + return FONT_FALLBACK; + return fc_match_out; }