Patrick Lam [Sat, 11 Feb 2006 05:01:32 +0000 (05:01 +0000)]
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.
reviewed by: plam
Patrick Lam [Sat, 11 Feb 2006 04:50:46 +0000 (04:50 +0000)]
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.
reviewed by: plam
Patrick Lam [Fri, 10 Feb 2006 19:40:11 +0000 (19:40 +0000)]
Don't kill fonts because they don't declare an element that's being matched
on.
reviewed by: plam
Patrick Lam [Thu, 9 Feb 2006 18:44:14 +0000 (18:44 +0000)]
Define and pass O_BINARY to open if appropriate, for those platforms that
need it. Reported by Doodle.
Patrick Lam [Thu, 9 Feb 2006 16:19:42 +0000 (16:19 +0000)]
Fix attempt to close -1. Don't unboundedly grow bad caches (reported by
fcrozat).
Patrick Lam [Thu, 9 Feb 2006 15:25:57 +0000 (15:25 +0000)]
Fix problem with missing 'en' due to euro.patch: change cache file format
slightly to coincide with that generated by fc-lang.
Patrick Lam [Wed, 8 Feb 2006 03:34:17 +0000 (03:34 +0000)]
Fix warning.
Patrick Lam [Tue, 7 Feb 2006 22:09:01 +0000 (22:09 +0000)]
Don't reject dirs that can't be normalized (fixes lilypond, and is correct
in the context of application font directories.)
Use normalized directory name exclusively in FcCacheReadDirs.
reviewed by: plam
Patrick Lam [Tue, 7 Feb 2006 21:15:33 +0000 (21:15 +0000)]
Perf optimizations. Inline FcValueCanonicalize, reduce FcValueListPtrU
usage, remove redundant cast.
reviewed by: plam
Patrick Lam [Tue, 7 Feb 2006 20:56:48 +0000 (20:56 +0000)]
src/fccharset.c (FcLangCharSetPopulate, FcCharSetInsertLeaf)
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.)
(I forgot to commit the ChangeLog last time.)
reviewed by: plam
Patrick Lam [Tue, 7 Feb 2006 03:53:32 +0000 (03:53 +0000)]
Fix hidden variable warning.
Patrick Lam [Tue, 7 Feb 2006 02:33:57 +0000 (02:33 +0000)]
Remove de-escaping logic because FcCacheWriteString doesn't escape anyway.
Do blockwise reading instead of byte-wise for performance.
Patrick Lam [Tue, 7 Feb 2006 02:22:50 +0000 (02:22 +0000)]
Takashi Iwai <tiwai@suse.de>
Don't loop infinitely on recursive symlinks (client-side).
Patrick Lam [Mon, 6 Feb 2006 23:11:41 +0000 (23:11 +0000)]
Don't loop infinitely on recursive symlinks.
reviewed by: plam
Patrick Lam [Mon, 6 Feb 2006 22:44:02 +0000 (22:44 +0000)]
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.
reviewed by: plam
Patrick Lam [Mon, 6 Feb 2006 21:52:15 +0000 (21:52 +0000)]
Hoist FcFileIsDir check out of FcFileScanConfig loop.
reviewed by: plam
Patrick Lam [Mon, 6 Feb 2006 19:25:45 +0000 (19:25 +0000)]
Don't rescan when trying to normalize a non-declared font dir. Don't add
font dirs multiple times (even if they're aliased).
reviewed by: plam
Patrick Lam [Mon, 6 Feb 2006 14:44:46 +0000 (14:44 +0000)]
Explain apples/oranges comparison and fix compilation error.
reviewed by: plam
Patrick Lam [Mon, 6 Feb 2006 14:14:21 +0000 (14:14 +0000)]
Insert check for integer overflow in # of fonts.
reviewed by: plam
Patrick Lam [Sun, 5 Feb 2006 04:11:08 +0000 (04:11 +0000)]
Make 'make distcheck' work with automake 1.6.3.
reviewed by: plam
Patrick Lam [Sun, 5 Feb 2006 02:57:21 +0000 (02:57 +0000)]
src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave, FcDirCacheConsume,
FcDirCacheWrite)
Check I/O call return values and eliminate unused variable warnings.
reviewed by: plam
Patrick Lam [Sat, 4 Feb 2006 00:09:42 +0000 (00:09 +0000)]
src/fccfg.c (FcConfigAppFontAddFile, FcConfigAppFontAddDir)
Fix memory leak.
reviewed by: plam
Patrick Lam [Sat, 4 Feb 2006 00:04:00 +0000 (00:04 +0000)]
Gracefully handle the case where a cache asserts that it has a negative
number of fonts, causing overflow.
reviewed by: plam
Patrick Lam [Fri, 3 Feb 2006 23:47:37 +0000 (23:47 +0000)]
Fix double free in error case.
Patrick Lam [Tue, 31 Jan 2006 07:30:23 +0000 (07:30 +0000)]
Stephan Kulow <coolo@suse.de> reviewed by: plam
Replace 'stamp' target with mkinstalldirs.
Patrick Lam [Tue, 31 Jan 2006 07:16:22 +0000 (07:16 +0000)]
Toast broken global cache files.
reviewed by: plam
Patrick Lam [Tue, 31 Jan 2006 04:42:20 +0000 (04:42 +0000)]
Actually use the directories that I added to the global cache. Fixes 'make
check'.
Patrick Lam [Tue, 31 Jan 2006 04:07:45 +0000 (04:07 +0000)]
Don't stop scanning if a directory in fonts.conf doesn't exist, because
subsequent directories might exist.
reviewed by: plam
Patrick Lam [Mon, 30 Jan 2006 16:31:56 +0000 (16:31 +0000)]
Make global cache work again after putting dir names into global cache (I
misplaced the recording of a file offset).
Patrick Lam [Mon, 30 Jan 2006 15:59:17 +0000 (15:59 +0000)]
Update fc-cat to handle subdir lists in global cache file.
Another FcCacheReadString return value check.
Patrick Lam [Mon, 30 Jan 2006 15:44:13 +0000 (15:44 +0000)]
Make fccache more resilient to broken cache files by checking return value
of FcCacheReadString all the time.
reviewed by: plam
Patrick Lam [Mon, 30 Jan 2006 14:43:04 +0000 (14:43 +0000)]
Remove references to dead fontconfig(3) manpages in other fontconfig
manpages.
reviewed by: plam
Patrick Lam [Mon, 30 Jan 2006 04:51:22 +0000 (04:51 +0000)]
Fix world's tiniest typo in code example.
reviewed by: plam
Patrick Lam [Mon, 30 Jan 2006 04:47:17 +0000 (04:47 +0000)]
Fix global cache reads of subdirectories.
reviewed by: plam
Patrick Lam [Mon, 30 Jan 2006 04:27:53 +0000 (04:27 +0000)]
Add documentation for FcConfigNormalizeFontDir.
Write directory information to global caches to fix make check (reported by
Ronny V. Vindenes). This changes the global cache format again.
Patrick Lam [Fri, 27 Jan 2006 05:47:59 +0000 (05:47 +0000)]
Move FcConfigNormalizeFontDir call so that it doesn't result in infinite
recursion (reported by Ronny V. Vindenes).
Patrick Lam [Fri, 27 Jan 2006 00:27:37 +0000 (00:27 +0000)]
Add a couple of missing normalizations to make fc-cache work right; only
scan subdirectories once.
Patrick Lam [Thu, 26 Jan 2006 16:11:41 +0000 (16:11 +0000)]
Don't crash on non-existant directories in global cache.
reviewed by: plam
Patrick Lam [Thu, 26 Jan 2006 16:09:12 +0000 (16:09 +0000)]
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.
Patrick Lam [Wed, 25 Jan 2006 14:52:49 +0000 (14:52 +0000)]
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.
Patrick Lam [Wed, 25 Jan 2006 02:54:37 +0000 (02:54 +0000)]
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.
reviewed by: plam
Patrick Lam [Wed, 25 Jan 2006 02:33:46 +0000 (02:33 +0000)]
Fix memory leaks reported by Ronny V. Vindenes.
Patrick Lam [Thu, 19 Jan 2006 19:20:30 +0000 (19:20 +0000)]
Fix for unaligned memory accesses.
reviewed by: plam
Patrick Lam [Wed, 18 Jan 2006 15:41:15 +0000 (15:41 +0000)]
Properly order the FcConfigAddFontDir and FcConfigNormalizeFontDir calls to
avoid crashes.
reviewed by: plam
Patrick Lam [Sun, 15 Jan 2006 05:31:58 +0000 (05:31 +0000)]
Fix segfault when consuming zero-length caches in fc-cat (which has no
config, so FcConfigAddFontDir shouldn't be called.)
Patrick Lam [Sat, 14 Jan 2006 21:23:03 +0000 (21:23 +0000)]
Compare device numbers as well as inodes. Always normalize directory names
before comparing them.
Allocate extra space for appended '/' in directory name.
reviewed by: plam
Patrick Lam [Tue, 10 Jan 2006 13:15:05 +0000 (13:15 +0000)]
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.
Patrick Lam [Mon, 9 Jan 2006 13:58:04 +0000 (13:58 +0000)]
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.
Patrick Lam [Sun, 8 Jan 2006 10:58:30 +0000 (10:58 +0000)]
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).
Patrick Lam [Sun, 8 Jan 2006 10:58:05 +0000 (10:58 +0000)]
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).
Patrick Lam [Sun, 8 Jan 2006 10:50:51 +0000 (10:50 +0000)]
Properly skip past dir caches that contain zero fonts (as occurs in global
caches.) Reported by Mike Fabian.
Patrick Lam [Sat, 7 Jan 2006 06:36:24 +0000 (06:36 +0000)]
Print out full pathname in fc-match -v as well. Reported by Frederic
Crozat.
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)
reviewed by: plam
Patrick Lam [Thu, 5 Jan 2006 15:12:22 +0000 (15:12 +0000)]
Add self to AUTHORS list.
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.
Patrick Lam [Mon, 2 Jan 2006 17:20:23 +0000 (17:20 +0000)]
Fix double-free which occurs because FcValueCanonicalize doesn't create an
extra copy of the returned value, it only canonicalizes it.
reviewed by: plam
Patrick Lam [Mon, 2 Jan 2006 17:18:22 +0000 (17:18 +0000)]
Fix version of .cache file (currently 1 -> currently 2). Reported by Jim
Osborn.
Patrick Lam [Mon, 2 Jan 2006 17:13:48 +0000 (17:13 +0000)]
Fix version of .cache file (currently 1 -> currently 2). Reported by Jim
Osborn.
Patrick Lam [Wed, 21 Dec 2005 20:00:20 +0000 (20:00 +0000)]
Shut up GCC warnings on amd.
reviewed by: plam
Patrick Lam [Wed, 21 Dec 2005 05:37:10 +0000 (05:37 +0000)]
Avoid check on _fcBankId nullness and fix case where it used to crash.
Patrick Lam [Wed, 21 Dec 2005 03:31:19 +0000 (03:31 +0000)]
Bump version to 2.3.93.
Use open instead of fopen (requested by Phil Race for Sun).
src/fccache.c (FcDirCacheWrite);
Fix GCC4 warning and Makefile brokenness for /var/cache/fontconfig dir.
Patrick Lam [Tue, 20 Dec 2005 20:35:47 +0000 (20:35 +0000)]
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.)
Patrick Lam [Mon, 12 Dec 2005 20:45:54 +0000 (20:45 +0000)]
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.
Patrick Lam [Mon, 12 Dec 2005 13:46:45 +0000 (13:46 +0000)]
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.
Patrick Lam [Mon, 12 Dec 2005 13:20:41 +0000 (13:20 +0000)]
Fix crash reported by Frederic Crozat when using libxml2.
reviewed by: plam
Patrick Lam [Fri, 9 Dec 2005 16:36:45 +0000 (16:36 +0000)]
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.
Patrick Lam [Thu, 8 Dec 2005 05:54:27 +0000 (05:54 +0000)]
Because we've changed FcPatternAddString to use FcStrStaticName and not
FcValueSave, explicitly handle the case of a null string.
Patrick Lam [Wed, 7 Dec 2005 03:55:25 +0000 (03:55 +0000)]
Fix warnings.
Patrick Lam [Tue, 6 Dec 2005 18:57:43 +0000 (18:57 +0000)]
Don't assign types to user object names.
Patrick Lam [Mon, 5 Dec 2005 16:08:01 +0000 (16:08 +0000)]
Don't free strings that have been returned from FcStrStaticName.
Patrick Lam [Thu, 1 Dec 2005 07:12:45 +0000 (07:12 +0000)]
Add codepath for reading global cache files as well.
Patrick Lam [Thu, 1 Dec 2005 06:27:07 +0000 (06:27 +0000)]
Add config file for Persian fonts from Sharif FarsiWeb, Inc.
reviewed by: plam
Patrick Lam [Wed, 30 Nov 2005 22:13:21 +0000 (22:13 +0000)]
Only add a config file to the set of config files once.
reviewed by: plam
Patrick Lam [Tue, 29 Nov 2005 15:04:06 +0000 (15:04 +0000)]
src/fcint.h (FcCacheBankToIndex);
Fix segfault by guarding array dereference.
Patrick Lam [Tue, 29 Nov 2005 14:57:10 +0000 (14:57 +0000)]
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.
reviewed by: plam
Patrick Lam [Tue, 29 Nov 2005 06:23:00 +0000 (06:23 +0000)]
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.
Patrick Lam [Tue, 29 Nov 2005 06:09:18 +0000 (06:09 +0000)]
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.
Patrick Lam [Tue, 29 Nov 2005 00:21:05 +0000 (00:21 +0000)]
Fix segfault.
Patrick Lam [Tue, 29 Nov 2005 00:16:02 +0000 (00:16 +0000)]
Update autogenerated config.* files.
Patrick Lam [Tue, 29 Nov 2005 00:14:42 +0000 (00:14 +0000)]
Fix problem dating back at least to 2.3.2 where globs weren't being applied
to patterns loaded from a cache.
Fix some obvious spelling mistakes.
Patrick Lam [Mon, 28 Nov 2005 10:54:11 +0000 (10:54 +0000)]
Stephan Kulow <coolo@suse.de> reviewed by: plam
Don't kill all fonts during match (oops!)
Patrick Lam [Mon, 28 Nov 2005 01:40:53 +0000 (01:40 +0000)]
Stephan Kulow <coolo@suse.de> Michael Matz <matz@suse.de> reviewed by: plam
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.
Patrick Lam [Sat, 26 Nov 2005 05:05:14 +0000 (05:05 +0000)]
Fix incorrect merge.
reviewed by: plam
Patrick Lam [Fri, 25 Nov 2005 16:33:58 +0000 (16:33 +0000)]
Don't do random matching when bad objects are passed into
FcCompareValueList.
Patrick Lam [Fri, 25 Nov 2005 16:04:44 +0000 (16:04 +0000)]
Rename fcpatterns, fcpatternelts, fcvaluelists to _fcPatterns,
_fcPatternElts, _fcValueLists for consistency.
Patrick Lam [Fri, 25 Nov 2005 15:54:24 +0000 (15:54 +0000)]
Pass the FcObjectPtr to FcCompareValueList, not the char * (perf).
reviewed by: plam
Patrick Lam [Fri, 25 Nov 2005 15:50:34 +0000 (15:50 +0000)]
Pass around FcCache *s to the Unserialize functions for extra consistency
(and less overhead, for what that's worth).
Patrick Lam [Fri, 25 Nov 2005 03:00:51 +0000 (03:00 +0000)]
Inline the *PtrU functions to gain perf. Remove unneeded params for the
FcCompare* functions.
reviewed by: plam
Patrick Lam [Fri, 25 Nov 2005 02:16:42 +0000 (02:16 +0000)]
Fix the debian changelog so that debian/rules works again, make it create a
debian package for release 2.3.92-1. Acknowledge change in NMU of
debian package.
Patrick Lam [Thu, 24 Nov 2005 21:40:20 +0000 (21:40 +0000)]
Move FC_BANK_DYNAMIC, FC_BANK_FIRST to internal header.
Check for type validity during FcPatternAddWithBinding, don't verify type
in FcFontMatch, don't call FcCanonicalize here (which always does a
deep copy).
reviewed by: plam
Patrick Lam [Thu, 24 Nov 2005 20:20:26 +0000 (20:20 +0000)]
Make FcCompareString and FcCompareFamily less expensive. Only add a value
for FC_FAMILY if the proposed value is a string.
reviewed by: plam
Patrick Lam [Thu, 24 Nov 2005 19:38:05 +0000 (19:38 +0000)]
Inline FcDebug invocations and only initialize once, in FcInit*. Improve
debug msg in FcPatternPrint.
reviewed by: plam
Patrick Lam [Wed, 23 Nov 2005 17:01:27 +0000 (17:01 +0000)]
Properly apply fcrozat's patch.
Patrick Lam [Wed, 23 Nov 2005 16:36:26 +0000 (16:36 +0000)]
2005-11-23 Frederic Crozat <fcrozat@mandriva.com>: reviewed by: plam
Minor code warning cleanups.
Patrick Lam [Wed, 23 Nov 2005 15:32:36 +0000 (15:32 +0000)]
2005-11-23 Frederic Crozat <fcrozat@mandriva.com>: reviewed by: plam
Make getopt_long accept -s parameter to fc-match as well.
Patrick Lam [Tue, 22 Nov 2005 04:46:55 +0000 (04:46 +0000)]
Manually perform inlining & partial redundancy elimination to reduce calls
to FcValueListPtrU.
Only invoke strlen() when really necessary.
reviewed by: plam
reviewed by: plam
Patrick Lam [Sat, 19 Nov 2005 22:38:39 +0000 (22:38 +0000)]
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.
reviewed by: plam
Patrick Lam [Sat, 19 Nov 2005 22:37:24 +0000 (22:37 +0000)]
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.
reviewed by: plam
Patrick Lam [Sat, 19 Nov 2005 22:32:13 +0000 (22:32 +0000)]
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.
reviewed by: plam
Patrick Lam [Sat, 19 Nov 2005 16:24:53 +0000 (16:24 +0000)]
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.
reviewed by: plam
Patrick Lam [Fri, 18 Nov 2005 20:32:30 +0000 (20:32 +0000)]
Don't crash when fc-cat invoked with no arguments.
Fix invalid read access caused by premature free and GCC4 warnings in
libxml2 codepath.
reviewed by: plam
reviewed by: plam
Patrick Lam [Fri, 18 Nov 2005 04:21:10 +0000 (04:21 +0000)]
List iteration not needed in FcConfigValues, since it's building up the
list itself; we can just strip FcVoid elements during construction.
reviewed by: plam