[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