[Fontconfig] Re: fc-cache sometimes looses fonts
Patrick Lam
plam at MIT.EDU
Wed Oct 26 08:29:22 EST 2005
Keith Packard wrote:
> On Tue, 2005-10-25 at 17:07 -0400, Patrick Lam wrote:
>
>>James Cloos wrote:
>>
>>
>>>when I ran 'fc-cache -fv .' in /usr/local/share/fonts. Re-running
>>>with 'fc-cache -fv /usr/local/share/fonts' got the correct results.
>>
>>The responsible code is at fcfreetype.c:1290. However, I'm not quite
>>sure how to fix it: it seems difficult to get a full pathname from a
>>filename. Or I could just store the filename without any pathname
>>whatsoever. Opinions?
>
> As cache files are per-directory, you need only store the local filename
> itself.
I've just committed this patch. Let me know if you see any problems
with it. It ought to fix JimC's issue, but not the more general
losing-fonts issue.
Index: src/fcfreetype.c
===================================================================
RCS file: /cvs/fontconfig/fontconfig/src/fcfreetype.c,v
retrieving revision 1.60.2.4
diff -u -r1.60.2.4 fcfreetype.c
--- src/fcfreetype.c 22 Oct 2005 15:12:05 -0000 1.60.2.4
+++ src/fcfreetype.c 25 Oct 2005 22:28:33 -0000
@@ -47,6 +47,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <libgen.h>
#include "fcint.h"
#include <ft2build.h>
#include FT_FREETYPE_H
@@ -1287,7 +1288,7 @@
printf ("Saving unique fullname %s\n", full);
}
- if (!FcPatternAddString (pat, FC_FILE, file))
+ if (!FcPatternAddString (pat, FC_FILE, (FcChar8 *)basename((char
*)file)))
goto bail1;
if (!FcPatternAddInteger (pat, FC_INDEX, id))
pat
More information about the Fontconfig
mailing list