[Fontconfig] Re: Structure of cache files

Matthias Clasen mclasen at redhat.com
Fri Sep 23 13:00:13 EST 2005


On Thu, 2005-09-22 at 22:52 -0400, Patrick Lam wrote:
> I wrote a freeform document that describes the structure of the cache
> files; it's included below.  I'm not sure where I could put it in CVS...
> 
> ---
> 
> Fontconfig maintains two cache files: a global cache (on a per-user
> basis) and directory caches (created by the superuser).  The global
> cache consists of a number of concatenated directory caches.
> 
> Here's the structure of a directory cache:
> 
> * a next-offset/machine signature line in plain ASCII:
> 
>     + (as a %8x string) the offset of the next architecture's block
>     + (produced by FcCacheMachineSignature): an architecture signature
>         - endian-testing signature 0x12345678
>         - sizeof (char)
>             - sizeof (char *)
>             - sizeof (int)
>             - sizeof (FcPattern)
>             - sizeof (FcPatternEltPtr)
>             - sizeof (struct _FcPatternElt *)
>             - sizeof (FcPatternElt)
>             - sizeof (FcObjectPtr)
>             - sizeof (FcValueListPtr)
>             - sizeof (FcValue)
>             - sizeof (FcValueBinding)
>             - sizeof (struct _FcValueList *)
>             - sizeof (FcCharSet)
>             - sizeof (FcCharLeaf **)
>             - sizeof (FcChar16 *)
>             - sizeof (FcChar16)
>             - sizeof (FcCharLeaf)
>             - sizeof (FcChar32)
>             - sizeof (FcCache)
> 
> * a header block:
> 

So this means that the file format is not endianness- and
platform-independent, but contains enough information to load it on
other platforms ?  Does the current loader support loading cache files 
from other platforms ?

I guess I should just test that...

Matthias




More information about the Fontconfig mailing list