label-freetype: fix fallback not working when fc-match isn't available

The new font loading functions introduced in
544e62ac41 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 544e62ac41
This commit is contained in:
Ferdinand Bachmann 2024-01-16 01:52:11 +01:00
parent 18590a2159
commit 792fe7474a

View file

@ -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;
}