Mike FABIAN <mfabian@xxxxxxx> さんは書きました: > Mike FABIAN <mfabian@xxxxxxx> さんは書きました: > >>> And "xfd -fa" still crashes for all fonts afterwards: >> >> This crash still remains. > > Most likely because the file name reported by "fc-list" and > "fc-match" is wrong now: [... last directory element was always missing in the full path name ...] The problem was still there after I updated from CVS today, the last ChangeLog entry is: 2006-01-10 Patrick Lam <plam@xxxxxxx> * src/fccache.c (FcDirCacheConsume, FcDirCacheOpen, FcDirCacheValid, FcDirCacheHasCurrentArch, FcDirCacheUnlink, FcDirCacheRead, FcDirCacheConsume): * fc-cache/fc-cache.c (main): Explicitly add font dirs to config.fontDirs even if they're empty. Set current config in fc-cache.c. Fix treatment of cache directory as read from cache file; don't use string equality to determine if we have the right file, use inode equality. But this doesn't seem to have fixed it either. I made a small one line patch (attached) which seems to fix the problem for me. Is this patch correct?
diff -ru fontconfig-2.3.93.20060110.orig/src/fccache.c fontconfig-2.3.93.20060110/src/fccache.c --- fontconfig-2.3.93.20060110.orig/src/fccache.c 2006-01-11 13:23:52.000000000 +0100 +++ fontconfig-2.3.93.20060110/src/fccache.c 2006-01-11 15:09:40.000000000 +0100 @@ -309,7 +309,7 @@ if (strncmp (d->name, dir, strlen(dir)) == 0) { lseek (cache->fd, d->offset, SEEK_SET); - if (!FcDirCacheConsume (cache->fd, dir, set, config)) + if (!FcDirCacheConsume (cache->fd, d->name, set, config)) return FcFalse; if (strcmp (d->name, dir) == 0) ret = FcTrue;
-- Mike FABIAN <mfabian@xxxxxxx> http://www.suse.de/~mfabian 睡眠不足はいい仕事の敵だ。
_______________________________________________ Fontconfig mailing list Fontconfig@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/fontconfig