2005-12-20 Patrick Lam * ChangeLog: * README: * configure.in: * fontconfig/fontconfig.h: Bump version to 2.3.93. 2005-12-20 Patrick Lam * src/fccharset.c (FcLangCharSetPopulate): * src/fcint.h (FcCacheBankToIndex): Avoid check on _fcBankId nullness and fix case where it used to crash. 2005-12-20 Patrick Lam * src/fcxml.c (FcConfigParseAndLoad): Use open instead of fopen (requested by Phil Race for Sun). 2005-12-20 Patrick Lam * src/fccache.c (FcDirCacheWrite); * fc-cache/Makefile.am: Fix GCC4 warning and Makefile brokenness for /var/cache/fontconfig dir. 2005-12-20 Patrick Lam * src/fcfreetype.c (FcFreeTypeQuery): Restore code to skip over PCF fonts that have no encoded characters. (We guess that a font is PCF by presence of the PIXEL_SIZE BDF property.) 2005-12-12 Patrick Lam * src/fccache.c (FcDirCacheOpen, FcDirCacheWrite): Read and write the original location as a fallback for the hashed cache file locations. This is mostly for users to be able to have per-directory cache files. 2005-12-12 Patrick Lam * fc-cache/fc-cache.c (scanDirs): * fc-cache/Makefile.am: * src/fccache.c (FcDirCacheHashName): Improve error message when fc-cache can't write the cache. Add missing slash. Reported by Behdad. Incorporate Behdad's patch to create /var/cache/fontconfig when appropriate. 2005-12-12 Behdad Esfahbod reviewed by: plam * src/fcxml.c (FcConfigGetAttribute): Fix crash reported by Frederic Crozat when using libxml2. 2005-12-09 Patrick Lam * INSTALL: * configure.in: * fc-cache/Makefile.am: * fc-cat/Makefile.am: * src/Makefile.am: * fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, FcCacheFileRead): * fontconfig/fontconfig.h (FC_CACHE_SUFFIX): * src/fccache.c (FcCacheSkipString, FcGlobalCacheLoad, FcGlobalCacheSave, FcCacheNextOffset, FcDirCacheValid, FcDirCacheHasCurrentArch, FcDirCacheHashName, FcDirCacheOpen, FcDirCacheRead, FcDirCacheWrite): Migrate cache files from fonts directories to /var/cache/fontconfig. This helps make fontconfig FHS-compliant, but requires that all caches get rebuilt. Also, autogen.sh now needs the additional parameter --localstatedir=/var. 2005-12-07 Patrick Lam * src/fcpat.c (FcPatternAddString): Because we've changed FcPatternAddString to use FcStrStaticName and not FcValueSave, explicitly handle the case of a null string. 2005-12-06 Patrick Lam * fc-cat/fc-cat.c (FcCachePrintSet, FcCacheGlobalFileReadAndPrint): Fix warnings. 2005-12-05 Patrick Lam * src/fcname.c (FcNameGetObjectType): Don't assign types to user object names. 2005-12-05 Patrick Lam * src/fcpat.c (FcValueDestroy, FcValueListDestroy, FcStrHashed): Don't free strings that have been returned from FcStrStaticName. 2005-12-01 Patrick Lam * fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, main): Add codepath for reading global cache files as well. 2005-12-01 Behdad Esfahbod reviewed by: plam * conf.d/10-fonts.persian.conf: * conf.d/Makefile.am: Add config file for Persian fonts from Sharif FarsiWeb, Inc. 2005-11-30 Behdad Esfahbod reviewed by: plam * src/fcxml.c (FcConfigParseAndLoad): Only add a config file to the set of config files once. 2005-11-29 Patrick Lam * src/fcint.h (FcCacheBankToIndex); Fix segfault by guarding array dereference. 2005-11-29 Dirk Mueller reviewed by: plam * fc-lang/fc-lang.c: * src/fccache.c (FcDirCacheConsume, FcCacheHaveBank, FcCacheBankToIndex, FcCacheBankToIndexMTF, FcCacheAddBankDir): * src/fcint.h: Refactor FcCacheBankToIndex into an inlineable part (in fcint.h) which checks the front of the list and a non-inlineable part which finds and moves the appropriate element to the front of the list. 2005-11-29 Patrick Lam * src/fccfg.c (FcConfigBuildFonts): * src/fccache.c (FcCacheReadDirs): Make the perf guys hate me a bit less: hoist the directory-name FcConfigAcceptFont check for cached fonts up to directory cache read time, rather than running it for each font. 2005-11-29 Patrick Lam * src/fccfg.c (FcConfigBuildFonts): * src/fcint.h: * src/fcpat.c (FcPatternFindFullFname): Don't make FcPatternFindFullFname available to fccfg, it's not really safe. Instead go through FcPatternGetString (sorry, perf guys.) Also, use globs for dirs as well. 2005-11-28 Patrick Lam * src/fccfg.c (FcConfigBuildFonts): Fix segfault. 2005-11-28 Patrick Lam * src/fcint.h: * src/fcpat.c (FcPatternFindFullFname): * src/fccfg.c (FcConfigBuildFonts): Fix problem dating back at least to 2.3.2 where globs weren't being applied to patterns loaded from a cache. 2005-11-28 Patrick Lam * doc/fontconfig-user.sgml: Fix some obvious spelling mistakes. 2005-11-28 Dirk Mueller Stephan Kulow reviewed by: plam * src/fcmatch.c (FcFontSetMatch): Don't kill all fonts during match (oops!) 2005-11-25 Dirk Mueller Stephan Kulow Michael Matz reviewed by: plam * src/fcmatch.c (FcObjectPtrToMatcher, FcCompareValueList, FcFontSetMatch): Rewrite FcFontSetMatch to a path-finding based algorithm, i.e. inline FcCompare into FcFontSetMatch and reorder the loops, adding a boolean array which blocks patterns from future consideration if they're known to not be best on some past criterion. 2005-11-26 Dirk Mueller reviewed by: plam * src/fcmatch.c (FcCompareValueList): Fix incorrect merge. 2005-11-25 Patrick Lam * src/fcmatch.c (FcMatchObjectPtrsInit, FcCompareValueList): Don't do random matching when bad objects are passed into FcCompareValueList. 2005-11-25 Patrick Lam * src/fcint.h: * src/fcpat.c (FcPatternEnsureBank, FcPatternDistributeBytes, FcPatternSerialize, FcPatternUnserialize, FcValueListEnsureBank, FcValueListDistributeBytes, FcValueListUnserialize): Rename fcpatterns, fcpatternelts, fcvaluelists to _fcPatterns, _fcPatternElts, _fcValueLists for consistency. 2005-11-25 Dirk Mueller reviewed by: plam * src/fcmatch.c: Pass the FcObjectPtr to FcCompareValueList, not the char * (perf). 2005-11-25 Patrick Lam * src/fcint.h: * src/fccache.c (FcDirCacheConsume): * src/fccharset.c (FcCharSetUnserialize): * src/fcfs.c (FcFontSetUnserialize): * src/fclang.c (FcLangSetUnserialize): * src/fcname.c (FcObjectUnserialize): * src/fcpat.c (FcStrUnserialize, FcValueListUnserialize, FcPatternUnserialize): Pass around FcCache *s to the Unserialize functions for extra consistency (and less overhead, for what that's worth). 2005-11-24 Dirk Mueller reviewed by: plam * src/fcint.h: * src/fcmatch.c (FcCompare*, FcFontSetSort): * src/fcname.c (FcNameUnparseValue): Inline the *PtrU functions to gain perf. Remove unneeded params for the FcCompare* functions. 2005-11-24 Dirk Mueller reviewed by: plam * src/fcint.h, fontconfig/fontconfig.h: Move FC_BANK_DYNAMIC, FC_BANK_FIRST to internal header. * src/fcpat.c, src/fcint.h, src/fcname.c: Check for type validity during FcPatternAddWithBinding, don't verify type in FcFontMatch, don't call FcCanonicalize here (which always does a deep copy). 2005-11-24 Dirk Mueller reviewed by: plam * src/fcmatch.c (FcCompareNumber, FcCompareString, FcCompareFamily): * src/fcpat.c (FcPatternAddWithBinding): Make FcCompareString and FcCompareFamily less expensive. Only add a value for FC_FAMILY if the proposed value is a string. 2005-11-24 Dirk Mueller reviewed by: plam * src/fcdbg.c (FcDebug, FcDebugInit, FcPatternPrint): * src/fcinit.c (FcInitLoadConfig, FcInitLoadConfigAndFonts): * src/fcint.h (FcDebug): Inline FcDebug invocations and only initialize once, in FcInit*. Improve debug msg in FcPatternPrint. 2005-11-23 Frederic Crozat : reviewed by: plam * fontconfig/fontconfig.h: * fc-cat/fc-cat.c: Minor code warning cleanups. 2005-11-23 Frederic Crozat : reviewed by: plam * fc-match/fc-match.c (main): Make getopt_long accept -s parameter to fc-match as well. 2005-11-21 Dirk Mueller reviewed by: plam * src/fcmatch.c (FcCompareValueList): Manually perform inlining & partial redundancy elimination to reduce calls to FcValueListPtrU. 2005-11-21 Dirk Mueller reviewed by: plam * src/fcstr.c (FcStrFree, FcStrCaseWalkerInit, FcStrCaseWalkerLong, FcStrCaseWalkerNext, FcStrCaseWalkerNextIgnoreBlanks): Only invoke strlen() when really necessary. 2005-11-19 Matthias Clasen reviewed by: plam * src/Makefile.am: * src/fcfreetype.c (FcGetPixelSize, FcFreeTypeQuery, GetScriptTags, FcFontCapabilities): * src/ftglue.c: * src/ftglue.h: Get rid of the use of freetype internal headers in fcfreetype.c, since those headers will go away with freetype 2.2. Replace with public domain ftglue code from pango. Note that the patch removes some extra error checking in FT_Get_BDF_Property() and comments out the skipping of empty pcf fonts. 2005-11-19 Jinghua Luo reviewed by: plam * fc-lang/fc-lang.c (main): Further fix of patch from 2005-11-04: miscounted numbers count (numbers_count); didn't strip duplicate numbers (langBankNumbers); and leafidx_offset and numbers_offset in fcLangCharSets are wrong. Removed leafidx_count and numbers_count since they are the same and replaced them with offset_count. 2005-11-18 Frederic Crozat reviewed by: plam * fc-cat/fc-cat.c (main): Don't crash when fc-cat invoked with no arguments. 2005-11-18 Frederic Crozat reviewed by: plam * src/fcxml.c (FcConfigSaveAttr, FcConfigParseAndLoad): Fix invalid read access caused by premature free and GCC4 warnings in libxml2 codepath. 2005-11-17 Jinghua Luo reviewed by: plam * src/fccfg.c (FcConfigValues): List iteration not needed in FcConfigValues, since it's building up the list itself; we can just strip FcVoid elements during construction. 2005-11-17 Patrick Lam * src/fccfg.c (FcConfigValues): Fix crash on invalid constants in config files (forgot to update a pointer upon list iteration.) 2005-11-17 Frederic Crozat reviewed by: plam * src/fcxml.c (FcTypecheckExpr): Complain about invalid constants in config files. 2005-11-17 Andreas Schwab reviewed by: plam * src/fccache.c (FcGlobalCacheSave): Don't add current_arch_start more than once. 2005-11-16 Patrick Lam * src/fccharset.c (FcCharSetDistributeBytes, FcCharSetUnserialize): * src/fcfs.c (FcFontSetUnserialize): * src/fcname.c (FcObjectDistributeBytes, FcObjectUnserialize): * src/fcpat.c (FcStrUnserialize): Fix ordering of ALIGN with respect to saving block_ptr; add another ALIGN to fcfs.c. 2005-11-16 Patrick Lam * src/fccache.c (FcDirCacheProduce) Fix case where alignment bytes bumped up metadata->count causing unwarranted failures to write cache files. (Reported by Stephan Kulow). 2005-11-16 Patrick Lam * src/fccache.c (FcDirCacheProduce): * src/fccharset.c (FcCharSetDistributeBytes): * src/fcfs.c (FcFontSetDistributeBytes): * src/fcint.h: * src/fclang.c (FcLangSetDistributeBytes): * src/fcname.c (FcObjectDistributeBytes): * src/fcpat.c (FcPatternNeededBytes, FcValueListNeededBytes, FcStrNeededBytes): Add *NeededBytesAlign(), which overestimates the padding which is later added by the new ALIGN macro. Fix alignment problems on ia64 and s390 by bumping up block_ptr appropriately. (Earlier version by Andreas Schwab). 2005-11-16 Stephan Kulow reviewed by: plam * src/fccache.c: Use sysconf to determine proper PAGESIZE value; this appears to be POSIX-compliant. (reported by Andreas Schwab) 2005-11-04 Patrick Lam * fc-lang/fc-lang.c: * src/fccharset.c: * src/fcint.h: * src/fclang.c: Fix bug 2878 (excessive relocations at startup for charsets, reported by Ross Burton): fc-lang/fc-lang now creates the static form of the langset, not the dynamic form, so that the charsets should now be in .rodata. 2005-11-04 Patrick Lam * src/fcdir.c (FcDirScanConfig): Add test for validity of directory caches that somehow got lost (reported by make distcheck).