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