[Fontconfig] Re: fc-cache sometimes looses fonts

Mike FABIAN mfabian at suse.de
Wed Oct 26 20:45:09 EST 2005


Patrick Lam <plam at MIT.EDU> さんは書きました:

> 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.

It does not fix the issue about loosing fonts I have reported,
I still see the same problem.

Although it does fix JimC's issue that path names are not
stored in the per-directory cache files, it creates the
problem that fc-list cannot list the path to the fonts anymore.

For example, if I have two copies of tahoma.ttf and tahomabd.ttf
in ~/.fonts and in /usr/X11R6/lib/X11/fonts/truetype:

mfabian at magellan:~/.fonts$ ll tahoma*
-rw-r--r--  1 mfabian suse 379588  8月  6  2004 tahoma.ttf
-rw-r--r--  1 mfabian suse 352020  8月  6  2004 tahomabd.ttf
mfabian at magellan:~/.fonts$ ll /usr/X11R6/lib/X11/fonts/truetype/tahoma*
-rw-r--r--  1 root root 257636  9月 22 06:57 /usr/X11R6/lib/X11/fonts/truetype/tahoma.ttf
-rw-r--r--  1 root root 252384  9月 22 06:57 /usr/X11R6/lib/X11/fonts/truetype/tahomabd.ttf
mfabian at magellan:~/.fonts$

Then fc-list cannot tell me anymore where in my system the "Tahoma"
fonts are:

mfabian at magellan:~/.fonts$ fc-list : family file | grep -i tahoma
tahoma.ttf: Tahoma
tahomabd.ttf: Tahoma
mfabian at magellan:~/.fonts$

Even if only the local file name is stored in the per-directory
cache-files, fc-list should be able to list the full path names,
shouldn't it?  While reading the cache files, fontconfig knows from
what directory the cache file has been read.

-- 
Mike FABIAN   <mfabian at suse.de>   http://www.suse.de/~mfabian
睡眠不足はいい仕事の敵だ。




More information about the Fontconfig mailing list