Keith Packard [Fri, 1 Sep 2006 19:45:43 +0000 (12:45 -0700)]
Chinese/Macau needs the Hong Kong orthography instead of Taiwan (bug 7884)
From Abel Cheung:
Currently zh_mo.orth includes zh_tw.orth, which means it is assumed Macau
only uses traditional Chinese characters used in Taiwan; however that is
wrong, as a majority of Macau people speaks Cantonese too, and also uses
additional traditional Chinese chars from Hong Kong (there are already some
place names that can't be represented in just chars used in Taiwan). So it
should include zh_hk.orth instead.
Keith Packard [Fri, 1 Sep 2006 19:36:31 +0000 (12:36 -0700)]
Avoid #warning directives on non-GCC compilers. (bug 7683)
Detect GCC and use #warning only on GCC systems.
Keith Packard [Fri, 1 Sep 2006 19:26:15 +0000 (12:26 -0700)]
Add @EXPAT_LIBS@ to Libs.private in fontconfig.pc (bug 7683)
Linking against fontconfig requires expat on systems without chained shared
library dependencies.
Keith Packard [Fri, 1 Sep 2006 19:07:10 +0000 (12:07 -0700)]
Fix memory leaks in fc-cache directory cleaning code.
valgrind found a few leaks in the new cache cleaning code.
Keith Packard [Fri, 1 Sep 2006 19:05:04 +0000 (12:05 -0700)]
Only rebuild caches for system fonts at make install time.
Rebuilding user-specific fonts will stick those cache files in the system
font cache directory.
Keith Packard [Fri, 1 Sep 2006 09:27:45 +0000 (02:27 -0700)]
Add some ignores
Keith Packard [Fri, 1 Sep 2006 09:22:59 +0000 (02:22 -0700)]
Fontset pattern references are relative to fontset, not array.
Within a fontset, the patterns are stored as pointers in an array.
When stored as offsets, the offsets are relative to the fontset object
itself, not the base of the array of pointers.
Keith Packard [Fri, 1 Sep 2006 08:49:47 +0000 (01:49 -0700)]
Fix fc-lang to use new charset freezer API.
Charset freezer api now uses allocated object. Also required minor fixes to
charset freezer code to remove assumption that all input charsets are
persistant.
Keith Packard [Fri, 1 Sep 2006 08:15:14 +0000 (01:15 -0700)]
Pass directory information around in FcCache structure. Freeze charsets.
Instead of passing directory information around in separate variables,
collect it all in an FcCache structure. Numerous internal and tool
interfaces changed as a result of this.
Charsets are now pre-frozen before being serialized. This causes them to
share across multiple fonts in the same cache.
Keith Packard [Fri, 1 Sep 2006 08:12:13 +0000 (01:12 -0700)]
Remove stale architecture signatures.
All but x86 are known to be wrong.
Keith Packard [Fri, 1 Sep 2006 01:16:00 +0000 (18:16 -0700)]
Allow FcTypeLangSet to match either FcTypeLangSet or FcTypeString.
Applications explicitly setting FC_LANG with string would fail due
to typechecking disallowing this case.
Keith Packard [Fri, 1 Sep 2006 01:14:45 +0000 (18:14 -0700)]
Change $(pkgcachedir) to $(fc_cachedir) in fc-cat and fc-cache Makefile.am
make distcheck caught this bug; the effect of 'make uninstall'
would have been to execute 'rm -rf /', somewhat less that desirable.
Keith Packard [Thu, 31 Aug 2006 21:38:18 +0000 (14:38 -0700)]
Revert ABI changes from version 2.3
Accidental ABI changes and additions were discovered by looking at the
differences in fontconfig.h. All of those have been reverted.
Keith Packard [Thu, 31 Aug 2006 18:56:43 +0000 (11:56 -0700)]
With no args, fc-cat now dumps all directories.
Automatically list all font directories when no arguments are given to
fc-cat. Also add -r option to recurse from specified cache directories.
fc-cat also now prints the cache filename in verbose mode, along with the
related directory name.
Keith Packard [Thu, 31 Aug 2006 16:42:49 +0000 (09:42 -0700)]
Automatically remove invalid cache files.
Cache files for missing or more recently modified directories are
automatically removed at the end of every fc-cache run.
Keith Packard [Thu, 31 Aug 2006 16:07:32 +0000 (09:07 -0700)]
Serialized value lists were only including one value.
The next pointer in the serialized value list wasn't getting set, so they
were truncated at a single value.
Keith Packard [Thu, 31 Aug 2006 06:09:39 +0000 (23:09 -0700)]
Use intptr_t instead of off_t inside FcCache structure.
This avoids OS-dependencies in the cache file structure.
Keith Packard [Thu, 31 Aug 2006 05:23:25 +0000 (22:23 -0700)]
Fix fc-cat again. Sigh.
Internal interfaces in cache management changed again...
Keith Packard [Thu, 31 Aug 2006 04:59:53 +0000 (21:59 -0700)]
Skip broken caches. Cache files are auto-written, don't rewrite in fc-cache.
Validate cache contents and skip broken caches, looking down cache path for
valid ones.
Every time a directory is scanned, it will be written to a cache file if
possible, so fc-cache doesn't need to re-write the cache file. This makes
detecting when the cache was generated a bit tricky, so we guess that if the
cache wasn't valid before running and is valid afterwards, the cache file
was written.
Also, allow empty charsets to be serialized with null leaves/numbers.
Eliminate a leak in FcEdit by switching to FcObject sooner.
Call FcFini from fc-match to make valgrind happy.
Keith Packard [Thu, 31 Aug 2006 01:50:58 +0000 (18:50 -0700)]
Rework Object name database to unify typechecking and object lookup.
Eliminate ancient list of object name databases and load names into single
hash table that includes type information. Typecheck all pattern values to
avoid mis-typed pattern elements.
Keith Packard [Wed, 30 Aug 2006 20:51:03 +0000 (13:51 -0700)]
FcCharSetSerialize was using wrong offset for leaves. Make fc-cat work.
FcCharSetSerialize was computing the offset to the unserialized leaf,
which left it pointing at random data when the cache was reloaded.
fc-cat has been updated to work with the new cache structure.
Various debug messages extended to help diagnose serialization errors.
Keith Packard [Wed, 30 Aug 2006 11:24:03 +0000 (04:24 -0700)]
Fix build problems caused by cache rework.
Pagesize no longer matters in architecture decisions, the entire cache file
is mmaped into the library. However, lots of intptr_t values are in use now,
so that value is important.
fc-lang now requires fcserialize.c, which has been added to the repository.
Keith Packard [Wed, 30 Aug 2006 11:16:22 +0000 (04:16 -0700)]
Rework cache files to use offsets for all data structures.
Replace all of the bank/id pairs with simple offsets, recode several
data structures to always use offsets inside the library to avoid
conditional paths. Exposed data structures use pointers to hold offsets,
setting the low bit to distinguish between offset and pointer.
Use offset-based data structures for lang charset encodings; eliminates
separate data structure format for that file.
Much testing will be needed; offsets are likely not detected everywhere in
the library yet.
Keith Packard [Mon, 28 Aug 2006 18:51:12 +0000 (11:51 -0700)]
Revert to original FcFontSetMatch algorithm to avoid losing fonts.
The fancy new FcFontSetMatch algorithm would discard fonts for the
wrong reasons; fc-match sans:lang=en,ja would discard all fonts without
Japanese support. This commit reverts to the original algorithm which
ensure that FcFontSetMatch always matches the first font in the
FcFontSetSort return list.
Keith Packard [Mon, 28 Aug 2006 17:38:27 +0000 (10:38 -0700)]
Add ppc architecture
Keith Packard [Mon, 28 Aug 2006 17:30:22 +0000 (10:30 -0700)]
During test run, remove cache directory to avoid stale cache usage.
As file timestamps have only one second granularity, an old cache
file could easily be used when a test took less than 1 second to run.
Just remove the cache directory and its contents before each test is run.
Also, remove mention of the old cache file from the test config file.
Keith Packard [Mon, 28 Aug 2006 17:07:43 +0000 (10:07 -0700)]
Add x86-64 architecture and signature.
Keith Packard [Mon, 28 Aug 2006 16:43:12 +0000 (09:43 -0700)]
Regenerate x86 line in fcarch.tmpl.h to match change in cache data.
Also remove spurious printf of directory names.
Keith Packard [Mon, 28 Aug 2006 06:40:51 +0000 (23:40 -0700)]
Eliminate ./ and ../ elements from font directory names when scanning.
FcStrCanonFilename eliminates ./ and ../ elements from pathnames through
simple string editing. Also, relative path names are fixed by prepending the
current working directory.
Keith Packard [Mon, 28 Aug 2006 05:24:39 +0000 (22:24 -0700)]
Fix up fc-cache and fc-cat for no global cache changes.
fc-cache and fc-cat use internal (fcint.h) APIs that have
changed with the elimination of the global cache.
Keith Packard [Mon, 28 Aug 2006 04:53:48 +0000 (21:53 -0700)]
Eliminate global cache. Eliminate multi-arch cache code.
With the removal of the in-directory cache files, and the addition of
per-user cache directories, there is no longer any reason to preserve the
giant global cache file. Eliminating of this unifies the cache structure
and simplifies the overall caching strategies greatly.
Keith Packard [Mon, 28 Aug 2006 01:29:51 +0000 (18:29 -0700)]
Add architecture to cache filename.
Make cache filenames unique by inserting the architecture name into the
filename.
Keith Packard [Mon, 28 Aug 2006 01:19:39 +0000 (18:19 -0700)]
Eliminate NormalizeDir. Eliminate gratuitous stat/access calls per dir.
Normalized directory names offer protection against looped directory trees
but cost enormous numbers of system calls (stat per file in the hierarchy).
Also, cache file directory name contents are validated each time the
directory is modified, don't re-validate every time the cache file is loaded
with an access and stat call.
Keith Packard [Mon, 28 Aug 2006 00:04:01 +0000 (17:04 -0700)]
Write caches to first directory with permission. Valid cache in FcDirCacheOpen.
Previous policy was to attempt to update the cache in place and bail if that
didn't work. Now, search for the first writable directory and place the
cache file there instead. Furthermore, on startup, search directory list for
valid cache files instead of bailing if the first found cache file wasn't
valid.
Keith Packard [Sun, 27 Aug 2006 23:25:07 +0000 (16:25 -0700)]
Construct short architecture name from architecture signature.
Map existing architecture signature to short architecture name
at build time. This architecture name is (as yet) unused, but will be used
to build per-architecture cache files with names made unique by including
the architecture name. The auto-detected architecture name can be overridden
with the --with-arch=ARCH configure option.
Keith Packard [Sun, 27 Aug 2006 23:21:16 +0000 (16:21 -0700)]
Add .gitignore
Patrick Lam [Fri, 4 Aug 2006 16:13:00 +0000 (16:13 +0000)]
2006-08-04 Keith Packard (keithp@keithp.com) reviewed by: plam
Make cache directories configurable. Simplify and correct some code which
deals with per-directory caches.
Patrick Lam [Wed, 19 Jul 2006 02:14:28 +0000 (02:14 +0000)]
2006-07-19 Jon Burgess (jburgess@uklinux.net) reviewed by: plam
Fix file-descriptor leak in FcGlobalCacheDestroy.
Patrick Lam [Fri, 2 Jun 2006 18:48:30 +0000 (18:48 +0000)]
2006-05-31 Yong Li (rigel863@gmail.com) reviewed by: plam, Bedhad Esfahbod
TrueType Collection table offsets are absolute, not relative.
Patrick Lam [Fri, 28 Apr 2006 07:00:25 +0000 (07:00 +0000)]
2006-04-27 Paolo Borelli (pborelli@katamail.com) reviewed by: plam
Make FcStrCopy slightly more efficient.
Patrick Lam [Thu, 27 Apr 2006 08:13:45 +0000 (08:13 +0000)]
Keith Packard <keithp@keithp.com>
Reduce transient memory usage during config file parsing by allocating
smaller buffers (64 seems to be a magic number).
Keith Packard [Thu, 27 Apr 2006 07:54:07 +0000 (07:54 +0000)]
Eliminate pattern freezing
Keith Packard [Thu, 27 Apr 2006 07:11:44 +0000 (07:11 +0000)]
Make path names in cache files absolute (NB, cache format change) Stop
permitting cache files to be stored in font dirs. Bump cache magic.
Don't include /fonts.cache-2 in cache hash construction.
reviewed by: Patrick Lam <plam@mit.edu>
Patrick Lam [Wed, 26 Apr 2006 14:50:41 +0000 (14:50 +0000)]
Really update for 2.3.95.
Patrick Lam [Tue, 25 Apr 2006 15:33:07 +0000 (15:33 +0000)]
Fix the issues with GNU libiconv vs. libc iconv (which especially appear on
Solarii). Approach suggested by Tim Mooney.
reviewed by: plam
Patrick Lam [Tue, 25 Apr 2006 06:12:06 +0000 (06:12 +0000)]
Include $(top_srcdir), $(top_srcdir)/src before anything else.
Shuffle order of includes for building out of srcdir on win32.
reviewed by: plam
Patrick Lam [Tue, 25 Apr 2006 05:57:41 +0000 (05:57 +0000)]
Include $(top_srcdir), $(top_srcdir)/src before anything else.
Shuffle order of includes for building out of srcdir on win32.
reviewed by: plam
Patrick Lam [Thu, 20 Apr 2006 16:57:50 +0000 (16:57 +0000)]
Prevent terrible perf regression by getting the if-condition right
(reported by Wouter Bolsterlee).
Patrick Lam [Wed, 19 Apr 2006 16:53:50 +0000 (16:53 +0000)]
Dominic Lachowicz <cinamod@hotmail.com>
Implement mmap-like code for Windows using MapViewOfFile.
Patrick Lam [Wed, 19 Apr 2006 16:17:46 +0000 (16:17 +0000)]
Bump version to 2.3.95.
Patrick Lam [Wed, 19 Apr 2006 16:17:19 +0000 (16:17 +0000)]
Bail gracefully if the cache file does not contain enough data.
Patrick Lam [Sat, 15 Apr 2006 00:25:20 +0000 (00:25 +0000)]
Give the 'Standard Symbols L' match a strong (vs. weak) binding.
Patrick Lam [Fri, 14 Apr 2006 18:35:16 +0000 (18:35 +0000)]
Fix Gecko-exposed segfault from my last hack to FcObjectToPtrLookup.
Simplify code and get things straight.
Patrick Lam [Fri, 14 Apr 2006 15:40:58 +0000 (15:40 +0000)]
Actually, just add URW fonts as aliases for all of the PostScript fonts.
(reported by Miguel Rodriguez).
Patrick Lam [Fri, 14 Apr 2006 14:51:22 +0000 (14:51 +0000)]
Add an alias 'Standard Symbols L' for 'Symbol'.
Patrick Lam [Wed, 12 Apr 2006 14:36:36 +0000 (14:36 +0000)]
Fix memory leak (Coverity defect #2089).
Ignore script if subtable is missing (Coverity defect #2088).
Fix possible null pointer dereference (Coverity defect #784) and memory
leak (Coverity defects #785, #786).
Don't copy FcCharSet if we're going to throw it away anyway. (Reported by
Kenichi Handa).
reviewed by: plam
Patrick Lam [Wed, 12 Apr 2006 03:02:57 +0000 (03:02 +0000)]
Fix bad behaviour on realloc resulting in crash.
reviewed by: plam
Patrick Lam [Wed, 12 Apr 2006 02:38:28 +0000 (02:38 +0000)]
Don't crash if config is null (Coverity defect #984).
Patrick Lam [Tue, 11 Apr 2006 16:54:24 +0000 (16:54 +0000)]
Missing bits from previous patches.
Remove extra semi-colon.
Fix memory leak in error case (Coverity defects #776, #985).
Fix memory leaks (Coverity defects #779, #781) and memory use after free
(Coverity defect #780).
reviewed by: plam
Patrick Lam [Tue, 11 Apr 2006 14:20:59 +0000 (14:20 +0000)]
Properly convert static charsets to dynamic charsets.
Fix memory leak in error case (Coverity defects #1820, #1821, #1822).
Fix memory leak (Coverity defect #1819).
prevent crash when invalid include line is parsed (Coverity defect #763).
Fix potential null pointer access (Coverity defect #1804).
Remove dead code (Coverity defect #1194).
Prevent potential null pointer access (Coverity defect #767), ensure error
value is read (Coverity defect #1195).
reviewed by: plam
Patrick Lam [Tue, 11 Apr 2006 05:08:26 +0000 (05:08 +0000)]
Survive missing docbook2pdf.
reviewed by: plam
Patrick Lam [Mon, 10 Apr 2006 22:08:35 +0000 (22:08 +0000)]
Include more stub definitions to make HP-UX's C compiler happy.
Patrick Lam [Mon, 10 Apr 2006 21:04:54 +0000 (21:04 +0000)]
Swap typo in order of ALIGN and dereferencing, fixing bug 6529.
Patrick Lam [Mon, 10 Apr 2006 19:33:03 +0000 (19:33 +0000)]
Fix string memory leak (Coverity defect #1823).
Fix memory leak with hash collision (Coverity defect #1824).
reviewed by: plam
Patrick Lam [Mon, 10 Apr 2006 16:12:55 +0000 (16:12 +0000)]
Don't leak header in non-error case (Coverity defect #1825).
reviewed by: plam
Patrick Lam [Mon, 10 Apr 2006 16:06:42 +0000 (16:06 +0000)]
src/fcdir.c (FcDirScanConfig) Don't leak in error cases (Coverity defects
#777, #1826)
reviewed by: plam
Patrick Lam [Mon, 10 Apr 2006 15:46:34 +0000 (15:46 +0000)]
Fix double free (spotted by Coverity, CID #1965).
Check if pattern is not null before using it (Coverity defect #1883).
Fix memory leak with hash collision (Coverity defect #1829).
Fix memory leak when bail cases (Coverity defect #1828).
Don't leak directory name (Coverity defect #1827).
reviewed by: plam
Patrick Lam [Fri, 7 Apr 2006 18:07:51 +0000 (18:07 +0000)]
LD_ADD missing dependencies for binaries. Reported by Edson Alves Pereira.
reviewed by: plam
Patrick Lam [Fri, 7 Apr 2006 17:37:09 +0000 (17:37 +0000)]
SGI compilation fixes (reported by Christoph Bauer):
1) reorder union definition of _FcChar;
2) omit .stats =.
Patrick Lam [Fri, 7 Apr 2006 17:27:39 +0000 (17:27 +0000)]
Portability fixes for HP-UX (reported by Christoph Bauer). Replace
'__inline__' by AC_C_INLINE and 'inline'. Replace '__alignof__' by
'fc_alignof'.
reviewed by: plam
Patrick Lam [Fri, 7 Apr 2006 17:06:55 +0000 (17:06 +0000)]
Move up #include of config.h. Fail if neither inttypes.h nor stdint.h is
available. Fixes bug 6171.
reviewed by: plam
Patrick Lam [Fri, 7 Apr 2006 04:42:32 +0000 (04:42 +0000)]
Patrick Lam <plam@mit.edu>
Make fontconfig compile under MinGW:
1) remove unneeded #includes;
2) make use of mmap and sysconf conditional;
3) replace rand_r by srand/rand if needed;
4) use chsize instead of ftruncate; and
5) update libtool exports file
Patrick Lam [Fri, 7 Apr 2006 04:19:49 +0000 (04:19 +0000)]
Eliminate warning.
Patrick Lam [Thu, 6 Apr 2006 05:15:08 +0000 (05:15 +0000)]
Update documentation for fc-match (SGML-ize it). (reported by Ilya
Konstantinov)
Patrick Lam [Thu, 6 Apr 2006 04:52:21 +0000 (04:52 +0000)]
Reduce amount of dirty rss by const'ing some data structures.
Don't fail if we can't create or remove $(pkgcachedir) i.e.
/var/cache/fontconfig. (reported by Quanah Gibson-Mount).
reviewed by: plam
Patrick Lam [Thu, 6 Apr 2006 04:33:11 +0000 (04:33 +0000)]
Fix intel compiler warnings: make many variables static, eliminate
duplicate names, reduce variable scopes, unsigned/signed printf
formatting.
reviewed by: plam
Patrick Lam [Fri, 24 Mar 2006 15:21:10 +0000 (15:21 +0000)]
Fix multiarch support (don't destroy multiarch files!)
Require pkg-config. (Thanks Behdad; better solution wanted for libxml2
detection!)
reviewed by: plam
Patrick Lam [Thu, 23 Mar 2006 04:21:10 +0000 (04:21 +0000)]
On Windows, unlink before rename. Reported by Tim Evans.
Patrick Lam [Wed, 15 Mar 2006 15:58:59 +0000 (15:58 +0000)]
Fix typos in orth files. Reported by Denis Jacquerye.
Patrick Lam [Wed, 8 Mar 2006 20:57:39 +0000 (20:57 +0000)]
Fix Makefile.am for removal of debian/ directory.
Patrick Lam [Wed, 8 Mar 2006 20:38:39 +0000 (20:38 +0000)]
.cvsignore
Ignore debian/ directory for CVS.
Patrick Lam [Wed, 8 Mar 2006 20:33:42 +0000 (20:33 +0000)]
debian/*
Now remove debian/ directory.
Patrick Lam [Wed, 8 Mar 2006 20:32:56 +0000 (20:32 +0000)]
debian/po/*
.cvsignore
Remove debian/ directory from sources. See Debian's subversion server at
svn://svn.debian.org/pkg-freedesktop/trunk/fontconfig instead.
Patrick Lam [Wed, 8 Mar 2006 19:27:25 +0000 (19:27 +0000)]
Add orthography for Lingala.
reviewed by: plam
Patrick Lam [Wed, 8 Mar 2006 19:16:10 +0000 (19:16 +0000)]
Add a configuration file that disables hinting for the Lohit Gujarati font
(since the hinting distort some glyphs quite badly).
reviewed by: keithp
Patrick Lam [Wed, 8 Mar 2006 19:10:57 +0000 (19:10 +0000)]
Sort directory entries while scanning them from disk; prevents Heisenbugs
due to file ordering in a directory.
reviewed by: plam
Patrick Lam [Wed, 8 Mar 2006 02:30:43 +0000 (02:30 +0000)]
Remove stuff we don't use, make get_{char,short,long} functions of ftglue
macros to be inlined.
Code cleanups (excess prototype, old-style function definition).
reviewed by: plam
Patrick Lam [Sun, 5 Mar 2006 15:33:46 +0000 (15:33 +0000)]
Because we hacked FcPatternGet, we don't really need to expand the filename
again in FcPatternGetString.
Patrick Lam [Sun, 5 Mar 2006 06:05:50 +0000 (06:05 +0000)]
Ok, so some people (wine!) use FcPatternGet to fetch FC_FILE. Make that
work. Reported by Bernhard Rosenkraenzer.
Patrick Lam [Fri, 3 Mar 2006 18:35:42 +0000 (18:35 +0000)]
Include inttypes.h instead of stdint.h if appropriate.
Patrick Lam [Fri, 3 Mar 2006 18:19:04 +0000 (18:19 +0000)]
More stub definitions and remove FcFileIsDir from fc-cat.
Patrick Lam [Fri, 3 Mar 2006 15:12:12 +0000 (15:12 +0000)]
Fix compilation on AIX with stub definitions (bug 6097).
Patrick Lam [Fri, 3 Mar 2006 06:35:53 +0000 (06:35 +0000)]
Get rid of C++-style comments.
Patrick Lam [Fri, 3 Mar 2006 06:12:55 +0000 (06:12 +0000)]
debian/changelog
Enable creation of 2.3.94 Debian packages.
Patrick Lam [Fri, 3 Mar 2006 06:11:31 +0000 (06:11 +0000)]
Fix suspicious return expression which causes junk to be returned.
reviewed by: plam
Patrick Lam [Fri, 24 Feb 2006 19:32:58 +0000 (19:32 +0000)]
Fix placement of @s.
Patrick Lam [Fri, 24 Feb 2006 19:19:09 +0000 (19:19 +0000)]
Bump version to 2.3.94.
Patrick Lam [Fri, 24 Feb 2006 18:52:17 +0000 (18:52 +0000)]
Remove unconditional emboldening (per Behdad's instructions).
Add @s to hide some echos.
Patrick Lam [Fri, 24 Feb 2006 16:41:34 +0000 (16:41 +0000)]
Takashi Iwai <tiwai@suse.de> reviewed by: plam
Fix double-free on error case.
Patrick Lam [Wed, 22 Feb 2006 04:50:16 +0000 (04:50 +0000)]
Strip \r and whitespace from input; fixes bug 3454.