Não, e eu não acho que haverá a menos que algo re-implemente toda a lógica de análise do fontconfig. Quando você coloca uma fonte na lista negra, os aplicativos (incluindo fc-list
) simplesmente não os veem.
Se você verificar a origem , não há registros, não ( extra) depuração e sem ganchos.
Dito isso, é um patch simples para o fontconfig para registrar a correspondência e a rejeição:
--- src/fccfg.c.orig 2018-10-04 18:55:53.000000000 +0100
+++ src/fccfg.c 2018-10-04 19:15:46.000000000 +0100
@@ -2349,9 +2349,16 @@
{
int i;
- for (i = 0; i < patterns->nfont; i++)
- if (FcListPatternMatchAny (patterns->fonts[i], font))
- return FcTrue;
+ printf("!check for <%s>:\n",
+ FcPatternFormat((FcPattern *)font,(FcChar8 *)"%{file}"));
+ for (i = 0; i < patterns->nfont; i++) {
+ FcPatternPrint(patterns->fonts[i]);
+ if (FcListPatternMatchAny (patterns->fonts[i], font)) {
+ printf("!pattern match %i of %i\n",i,patterns->nfont);
+ return FcTrue;
+ }
+ }
+ if (patterns->nfont) printf("!pattern does not match\n");
return FcFalse;
}
@@ -2359,10 +2366,19 @@
FcConfigAcceptFont (FcConfig *config,
const FcPattern *font)
{
- if (FcConfigPatternsMatch (config->acceptPatterns, font))
- return FcTrue;
- if (FcConfigPatternsMatch (config->rejectPatterns, font))
- return FcFalse;
+ if (FcConfigPatternsMatch (config->acceptPatterns, font)) {
+ printf("!accepting file by pattern: ");
+ printf("%s\n",FcPatternFormat((FcPattern *)font,(FcChar8 *)"%{file}"));
+ return FcTrue;
+ }
+ if (FcConfigPatternsMatch (config->rejectPatterns, font)) {
+ printf("!rejecting file by pattern: ");
+ printf("%s\n",FcPatternFormat((FcPattern *)font,(FcChar8 *)"%{file}"));
+ return FcFalse;
+ }
+ printf("!default accept: %s\n",
+ FcPatternFormat((FcPattern *)font,(FcChar8 *)"%{file}"));
+
return FcTrue;
}
O acima aplica-se de forma limpa ao fontconfig-2.11.95, que é a fonte mais recente que eu tinha por aí. FC_DEBUG
imprime para stderr, as impressões acima para stdout para evitar problemas de saída de intercalação ( FcPatternPrint()
imprime para stdout).
Esse código reside em libfontconfig.so
, você pode testar os resultados com algo como:
LD_PRELOAD=src/.libs/libfontconfig.so.1.9.1 fc-list
e supondo que você tenha algo interessante na sua configuração você deve ver os resultados.