2006-02-24 Patrick Lam * ChangeLog: * README: * configure.in: * fontconfig/fontconfig.h: Bump version to 2.3.94. 2006-02-24 Patrick Lam * Makefile.am: Fix placement of @s. 2006-02-24 Patrick Lam * conf.d/10-fonts-persian.conf: Remove unconditional emboldening (per Behdad's instructions). * Makefile.am: Add @s to hide some echos. 2006-02-24 Mike Fabian Takashi Iwai reviewed by: plam * src/fcfreetype.c (GetScriptTags): Fix double-free on error case. 2006-02-21 Patrick Lam * fc-lang/fc-lang.c (scan): Strip \r and whitespace from input; fixes bug 3454. 2006-02-21 Patrick Lam * fc-lang/fc-lang.c (main): Allocate large arrays statically in fc-lang to fix crashes under MinGW/MSYS. 2006-02-21 Diego Petten * src/fcfreetype.c (FcFreeTypeCharIndex): Pass the buck; make fontconfig not crash on pango badness. 2006-02-21 Patrick Lam * conf.d/10-fonts-persian.conf: Use embeddedbitmap rather than rh_prefer_bitmap. 2006-02-21 Paul Cornett reviewed by: plam * src/fccache.c (FcDirCacheWrite): * src/fcdir.c (FcFileScanConfig): * src/fcfreetype.c (FcStringInPatternElement): * src/fcxml.c (FcParseFamilies): * src/ftglue.c (ftglue_face_goto_table): Eliminate redundancies. 2006-02-21 Kjartan Maraas reviewed by: plam * fc-list/fc-list.c (main): * src/fcfreetype.c (FcFreeTypeCharSetAndSpacing): * src/fcstr.c (FcStrStr): * src/fcxml.c (FcConfigSaveAttr): Eliminate unused vars reported by Intel's compiler. 2006-02-21 Aiet Kolkhi reviewed by: plam * fc-lang/ka.orth: Remove one more archaic character. 2006-02-21 Ross Burton reviewed by: plam, keithp * src/fcxml.c (FcParsePatelt): Freeze patterns created by configuration file for tiny memory savings (every little bit helps). 2006-02-21 Mike Fabian reviewed by: plam * fc-cat/fc-cat.c (main): Initialize fontconfig library in fc-cat to avoid segfault. 2006-02-18 Patrick Lam * fc-cache/fc-cache.c (scanDirs): * src/fccache.c (FcCacheReadDirs): * src/fcdir.c (FcDirScanConfig): Fix the underlying cause of the below segfault (must usually call FcDirCacheHasCurrentArch after FcDirCacheValid). 2006-02-18 Patrick Lam * src/fccache.c (FcDirCacheHasCurrentArch): Fix triggering of segfault caused by misreading cache files (reported by fcrozat). 2006-02-17 Patrick Lam * src/fcint.h (FC_CACHE_MAGIC): Bump up magic version; we changed the binary format. 2006-02-17 Patrick Lam * fc-cat/fc-cat.c (main): Enable fc-cat to print out old-style cache info when given a directory name. 2006-02-16 Patrick Lam * src/fccache.c (FcDirCacheHasCurrentArch): Deal correctly with changing FC_CACHE_MAGIC. 2006-02-16 Patrick Lam * fc-cache/fc-cache.c (usage, scanDirs, main): Add -r --really-force option which blows away cache files and then regenerates them. 2006-02-16 Patrick Lam * src/fccache.c (FcDirCacheUnlink, FcCacheCopyOld, FcDirCacheWrite): Don't bail if fontconfig can't remove a dir cache file. Skip the ID of a cache file when copying. Eliminate 'source file too small' bug in FcDirCacheWrite. 2006-02-13 Patrick Lam * src/fcfreetype.c (FcFreeTypeQuery): Fix memory leak in error condition code. 2006-02-13 Mike Fabian reviewed by: plam * src/fcfreetype.c (FcFreeTypeQuery): Skip bitmap fonts which can't even get it together enough to declare a family name; this appears to reproduce previous fontconfig behaviour. 2006-02-10 Takashi Iwai reviewed by: plam * src/fccache.c (FcDirCacheOpen): Try to open /var/cache/fontconfig/[hashed name] before fonts.cache-2 in a directory, because /var/cache/fontconfig failures ought to be fixable, unlike fonts.cache-2 failures, which may leave you screwed. 2006-02-10 Takashi Iwai reviewed by: plam * src/fcmatch.c (FcFontSetMatch): Use a tri-state to mark the fonts which didn't get blocked but were just missing an element, to distinguish them from the fonts that do match the element. 2006-02-10 Takashi Iwai reviewed by: plam * src/fcmatch.c (FcFontSetMatch): Don't kill fonts because they don't declare an element that's being matched on. 2006-02-09 Patrick Lam * src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave, FcDirCacheUnlink, FcDirCacheOpen, FcDirCacheWrite): Define and pass O_BINARY to open if appropriate, for those platforms that need it. Reported by Doodle. 2006-02-09 Patrick Lam * src/fccharset.c (FcCharSetNeededBytes, FcCharSetSerialize, FcCharSetGetLeaf): Fix problem with missing 'en' due to euro.patch: change cache file format slightly to coincide with that generated by fc-lang. 2006-02-07 Patrick Lam * src/fccache.c (FcCacheReadDirs): Fix warning. 2006-02-07 Patrick Lam * src/fcdir.c (FcDirScanConfig): Don't reject dirs that can't be normalized (fixes lilypond, and is correct in the context of application font directories.) 2006-02-07 Takashi Iwai reviewed by: plam * src/fccache.c (FcCacheReadDirs): Use normalized directory name exclusively in FcCacheReadDirs. 2006-02-07 Dirk Mueller reviewed by: plam * src/fcpat.c (FcValueHash, FcValueListHash, FcValueListEntCreate): Perf optimizations. Inline FcValueCanonicalize, reduce FcValueListPtrU usage, remove redundant cast. 2006-02-07 Takashi Iwai reviewed by: plam * src/fccharset.c (FcLangCharSetPopulate, FcCharSetInsertLeaf) * fc-lang/fc-lang.c: Fix missing FcCacheBankToIndex in FcCharSetInsertLeaf. Declare extern for static arrays as arrays, not pointers. (Part of the fix for 'fonts don't have en' issue after Euro patch.) 2006-02-07 Dirk Mueller reviewed by: plam * fc-lang/de.orth: * fc-lang/el.orth: * fc-lang/en.orth: * fc-lang/es.orth: * fc-lang/fi.orth: * fc-lang/fr.orth: * fc-lang/it.orth: * fc-lang/nl.orth: * fc-lang/pt.orth: Add Euro sign to list of symbols required by European languages. 2006-02-07 Patrick Lam * src/fccache.c (FcCacheReadString): Fix hidden variable warning. 2006-02-07 Dirk Mueller reviewed by: plam * src/fccache.c (FcCacheReadString, FcCacheSkipString): Remove de-escaping logic because FcCacheWriteString doesn't escape anyway. Do blockwise reading instead of byte-wise for performance. 2006-02-06 Patrick Lam Takashi Iwai * src/fccache.c (FcCacheReadDirs, FcCacheRead): Don't loop infinitely on recursive symlinks (client-side). 2006-02-06 Takashi Iwai reviewed by: plam * fc-cache/fc-cache.c (scanDirs, main): Don't loop infinitely on recursive symlinks. 2006-02-06 Takashi Iwai reviewed by: plam * src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheReadDir, FcGlobalCacheDirFind, FcGlobalCacheUpdate, FcGlobalCacheSave, FcCacheReadDirs): * src/fcint.h: Skip subdirs when skipping over stale bits of global cache. Introduce state machine into FcGlobalCacheDir to avoid doing inappropriate operations on global dir entries, e.g. writing out an out-of-date cache entry. 2006-02-06 Takashi Iwai reviewed by: plam * src/fcdir.c (FcFileScanConfig): Hoist FcFileIsDir check out of FcFileScanConfig loop. 2006-02-06 Takashi Iwai reviewed by: plam * src/fccfg.c (FcConfigInodeMatchFontDir, FcConfigAddFontDir, FcConfigAddFontDirSubdirs, FcConfigNormalizeFontDir): Don't rescan when trying to normalize a non-declared font dir. Don't add font dirs multiple times (even if they're aliased). 2006-02-06 Dirk Mueller reviewed by: plam * src/fcfs.c (FcFontSetUnserialize): Explain apples/oranges comparison and fix compilation error. 2006-02-06 Dirk Mueller reviewed by: plam * src/fcfs.c (FcFontSetUnserialize): Insert check for integer overflow in # of fonts. 2006-02-04 Behdad Esfahbod reviewed by: plam * doc/Makefile.am: * fc-cache/Makefile.am: * fc-cat/Makefile.am: * fc-list/Makefile.am: Make 'make distcheck' work with automake 1.6.3. 2006-02-03 Takashi IWAI reviewed by: plam * fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, main, FcCacheFileRead): * src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave, FcDirCacheConsume, FcDirCacheWrite) * src/fcxml.c (FcConfigMessage): Check I/O call return values and eliminate unused variable warnings. 2006-02-03 Takashi Iwai reviewed by: plam * src/fccfg.c (FcConfigAppFontAddFile, FcConfigAppFontAddDir) Fix memory leak. 2006-02-03 Dirk Mueller reviewed by: plam * src/fcfs.c (FcFontSetUnserialize): Gracefully handle the case where a cache asserts that it has a negative number of fonts, causing overflow. 2006-02-03 Patrick Lam * src/fccache.c (FcDirCacheUnlink): Fix double free in error case. 2006-01-31 Behdad Esfabod Stephan Kulow reviewed by: plam * fc-cache/Makefile.am: Replace 'stamp' target with mkinstalldirs. 2006-01-31 Mike Fabian reviewed by: plam * src/fccache.c (FcGlobalCacheLoad): Toast broken global cache files. 2006-01-30 Patrick Lam * src/fccache.c (FcGlobalCacheReadDir): Actually use the directories that I added to the global cache. Fixes 'make check'. 2006-01-30 Mike Fabian reviewed by: plam * fc-cache/fc-cache.c (scanDirs): Don't stop scanning if a directory in fonts.conf doesn't exist, because subsequent directories might exist. 2006-01-30 Patrick Lam * src/fccache.c (FcGlobalCacheLoad): Make global cache work again after putting dir names into global cache (I misplaced the recording of a file offset). 2006-01-30 Patrick Lam * fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint): Update fc-cat to handle subdir lists in global cache file. * src/fccache.c (FcGlobalCacheLoad): Another FcCacheReadString return value check. 2006-01-30 Mike Fabian reviewed by: plam * src/fccache.c (FcGlobalCacheLoad, FcDirCacheUnlink FcDirCacheOpen, FcDirCacheRead, FcDirCacheWrite): Make fccache more resilient to broken cache files by checking return value of FcCacheReadString all the time. 2006-01-30 Frederic Crozat reviewed by: plam * fc-match/fc-match.1: * fc-lang/fc-lang.man: Remove references to dead fontconfig(3) manpages in other fontconfig manpages. 2006-01-29 Behdad Esfabod reviewed by: plam * doc/fcpattern.fncs: Fix world's tiniest typo in code example. 2006-01-29 Mike Fabian reviewed by: plam * src/fccache.c (FcGlobalCacheReadDir): Fix global cache reads of subdirectories. 2006-01-29 Patrick Lam * doc/fcconfig.fncs: Add documentation for FcConfigNormalizeFontDir. * src/fccache.c (FcGlobalCacheDirDestroy, FcGlobalCacheLoad, FcGlobalCacheUpdate, FcGlobalCacheSave): * src/fcdir.c (FcDirScanConfig): * src/fcint.h: Write directory information to global caches to fix make check (reported by Ronny V. Vindenes). This changes the global cache format again. 2006-01-27 Patrick Lam * fc-cache/fc-cache.c (scanDirs): * fontconfig/fontconfig.h: * src/fcint.h: * src/fccache.c (FcDirCacheValid, FcDirCacheHasCurrentArch): Move FcConfigNormalizeFontDir call so that it doesn't result in infinite recursion (reported by Ronny V. Vindenes). 2006-01-26 Patrick Lam * src/fccache.c (FcDirCacheValid, FcDirCacheHasCurrentArch): * src/fccfg.c (FcConfigNormalizeFontDir): Add a couple of missing normalizations to make fc-cache work right; only scan subdirectories once. 2006-01-26 Mike Fabian reviewed by: plam * src/fcacache.c (FcGlobalCacheReadDir): Don't crash on non-existant directories in global cache. 2006-01-26 Patrick Lam * src/fccache.c (FcGlobalCacheSave, FcDirCacheWrite): * src/fccfg.c (FcConfigAddFontDirSubdirs, FcConfigNormalizeFontDir): * src/fcdir.c (FcDirScanConfig): * src/fcxml.c (FcEndElement): Stop trampling the directory name when writing out caches. (with Mike Fabian:) Beef up FcConfigNormalizeFontDir to scan subdirs when necessary. Don't scan directories that can't be normalized. 2006-01-25 Patrick Lam * src/fccache.c (FcDirCacheOpen, FcDirCacheWrite): * src/fccfg.c (FcConfigEvaluate): * src/fcfreetype.c (FcPatternAddWithBinding): Fix additional memory leaks reported by Ronny V. Vindenes: don't invoke FcValueSave on hashed static strings in FcPatternAddWithBinding. Add another st_dev check in FcDirCacheOpen. 2006-01-24 James Su reviewed by: plam * src/fcfreetype.c (FcFreeTypeIsExclusiveLang): * fc-lang/zh_hk.orth: Treat zh-hk fonts differently from zh-tw fonts. This patch may cause fontconfig to treat A-X fonts differently from A-Y fonts; please mail the fontconfig list if this causes any problems. 2006-01-24 Patrick Lam * src/fccache.c (FcDirCacheUnlink, FcDirCacheWrite): * src/fcfreetype.c (FcFreeTypeQuery): Fix memory leaks reported by Ronny V. Vindenes. 2006-01-19 Andreas Schwab reviewed by: plam * src/fcpat.c (FcStrNeededBytes): Fix for unaligned memory accesses. 2006-01-18 Mike Fabian reviewed by: plam * src/fcdir.c (FcDirScanConfig): Properly order the FcConfigAddFontDir and FcConfigNormalizeFontDir calls to avoid crashes. 2006-01-14 Patrick Lam * src/fccache.c (FcDirCacheConsume): Fix segfault when consuming zero-length caches in fc-cat (which has no config, so FcConfigAddFontDir shouldn't be called.) 2006-01-14 Patrick Lam * fc-cache/fc-cache.c (scanDirs): * fontconfig/fontconfig.h: * src/fccache.c (FcGlobalCacheReadDir, FcGlobalCacheUpdate, FcGlobalCacheSave, FcDirCacheUnlink, FcDirCacheOpen): * src/fccfg.c (FcConfigBuildFonts, FcConfigNormalizeFontDir): * src/fcdir.c (FcDirScanConfig): * src/fcint.h: Compare device numbers as well as inodes. Always normalize directory names before comparing them. 2006-01-11 Mike Fabian reviewed by: plam * fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint): Allocate extra space for appended '/' in directory name. 2006-01-10 Patrick Lam * 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. 2006-01-09 Patrick Lam * fc-cache/fc-cache.c (scanDirs): * fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, FcCacheFileRead): * src/fccache.c (FcGlobalCacheReadDir, FcCacheReadDirs, FcDirCacheRead, FcDirCacheConsume, FcDirCacheWrite): * src/fccfg.c (FcConfigNormalizeFontDir): * src/fcdir.c (FcDirScanConfig): * src/fcint.h: Normalize font dirs by using the form, as given in fonts.conf, and recorded in FcConfig's fontDirs string set, as canonical. Actually update config.fontDirs as font directories are scanned. 2006-01-08 James Su * src/fcmatch.c (FcFontSetMatch): Fix matching bug when multiple elements match; don't use the sum of all scores, but the best score. Also more perf opts, e.g. evaluate best over all font sets rather than on a per-set basis (and other changes). 2006-01-08 Patrick Lam * src/fccache.c (FcDirCacheConsume): Properly skip past dir caches that contain zero fonts (as occurs in global caches.) Reported by Mike Fabian. 2006-01-06 Patrick Lam * src/fcdbg.c (FcPatternPrint): Print out full pathname in fc-match -v as well. Reported by Frederic Crozat. 2006-01-06 Mike Fabian reviewed by: plam * src/fcname.c (FcNameParse): Fix bug where fc-match crashes when given __DUMMY__ property to match on. (I added the __DUMMY__ string to enable callers of FcObjectToPtrLookup to distinguish an error return from a successful return. -PL) 2006-01-05 Patrick Lam * AUTHORS: Add self to AUTHORS list. * fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, FcCacheFileRead, FcCachePrintSet, main): * src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheUpdate, FcGlobalCacheSave, FcCacheNextOffset, FcDirCacheHasCurrentArch, FcDirCacheRead, FcDirCacheConsume, FcDirCacheWrite): * src/fcint.h: * src/fcpat.c (comment): Minor change to global cache file format to fix fc-cat bug reported by Frederic Crozat, and buglet with not globally caching directories with zero fonts cached. 2006-01-02 Lubos Lunak reviewed by: plam * src/fccfg.c (FcConfigEvaluate): Fix double-free which occurs because FcValueCanonicalize doesn't create an extra copy of the returned value, it only canonicalizes it. 2006-01-02 Patrick Lam * doc/fontconfig-user.sgml: Fix version of .cache file (currently 1 -> currently 2). Reported by Jim Osborn. 2005-12-21 Jinghua Luo reviewed by: plam * src/fcpat.c (FcPatternAddFullFname, FcPatternFindFullFname): Shut up GCC warnings on amd.