Commit Graph

1105 Commits

Author SHA1 Message Date
Keith Packard 323ecd0cd3 Correct reference count when sharing cache file objects.
Multiple maps of the same cache file share the same mapped object; bump the
cache object reference count in this case
2006-09-04 23:19:59 -07:00
Keith Packard afe5a67160 Oops, fc-lang broke when I added cache referencing.
Add FcCacheObjectReference/FcCacheObjectDereference stubs to fc-cache.
2006-09-04 22:39:51 -07:00
Keith Packard 17389539a0 Make cache reference counting more efficient.
Eliminate need to reference cache object once per cached font, instead
just count the number of fonts used from the cache and bump the reference
count once by that amount. I think this makes this refernece technique
efficient enough for use.
2006-09-04 22:26:24 -07:00
Keith Packard 9e612141df Reference count cache objects.
Caches contain patterns and character sets which are reference counted and
visible to applications. Reference count the underlying cache object so that
it stays around until all reference objects are no longer in use.

This is less efficient than just leaving all caches around forever, but does
avoid eternal size increases in case applications ever bother to actually
look for changes in the font configuration.
2006-09-04 22:20:25 -07:00
Keith Packard 8fe2104a1e Leave cache files mapped permanently.
Without reference counting on cache objects, there's no way to know when
an application is finished using objects pulled from the cache. Until some
kinf of cache reference counting can be done, leave all cache objects mapped
for the life of the library (until FcFini is called). To mitigate the cost
of this, ensure that each instance of a cache file is mapped only once.
2006-09-04 13:59:58 -07:00
James Cloos 469010c1bd Update Makefile.am files 2006-09-04 15:57:19 -04:00
James Cloos c3425fa671 Move some section from fonts.conf into conf.avail files
URL aliases, AMT aliases, Che globaladvance fixes and Vera <8pt unhinting
sections all moved into conf.avail, to load before user and local confs.
2006-09-04 15:47:52 -04:00
Keith Packard 9a9fd975a1 Can't typecheck values for objects with no known type.
Objects that aren't part of the built-in object list don't have predefined
types, so we can't typecheck them.
2006-09-04 12:46:01 -07:00
James Cloos 6001891589 Re-order old conf.d files
Make sure they continue to load after ~/.fonts.conf and local.conf
2006-09-04 15:45:28 -04:00
James Cloos 31f8061b5d Make room for chunks from fonts.conf in conf.avail 2006-09-04 15:36:46 -04:00
James Cloos d55620c906 Replace load of conf.d in fonts.conf.in 2006-09-04 15:32:37 -04:00
James Cloos f6e645c499 Update Makefile.am to match conf.avail changes 2006-09-04 15:30:10 -04:00
James Cloos cbdd74d656 Number the remaining conf.avail files 2006-09-04 15:27:29 -04:00
Keith Packard a04ac99f0f Hide FreeType glue code from library ABI.
FreeType glue code was escaping the shared library.
2006-09-04 02:13:13 -07:00
Keith Packard 4984242e36 Hide private functions in shared library. Export functionality for utilities.
Borrowing header stuff written for cairo, fontconfig now exposes in the
shared library only the symbols which are included in the public header
files. All private symbols are hidden using suitable compiler directives.

A few new public functions were required for the fontconfig utility programs
(fc-cat and fc-cache) so those were added, bumping the .so minor version number
in the process.
2006-09-04 00:47:07 -07:00
James Cloos 57b42cef2a Move user and local conf file loading into conf.avail files 2006-09-04 01:33:09 -04:00
James Cloos 04ceb322c8 Support all five possibilities for sub-pixel
Make sub-pixel.conf be sub-pixel-rgb.conf and add the
three other possibilites: bgr, vrgb and vbgr.
2006-09-04 01:28:07 -04:00
James Cloos 085d12cd4b Standardize conf.avail number prefixing convention
Always use \d- rather than just \d as prefix
2006-09-04 01:24:02 -04:00
James Cloos 709f32438d Move files from conf.d to conf.avail
All of the files in conf.d are now in conf.avail
Makefile.am is updated to reflect the change
2006-09-04 01:21:55 -04:00
Keith Packard 34227592c2 Remove all .cvsignore files 2006-09-03 16:27:09 -07:00
Keith Packard 822ec78c54 Merge branch 'fc-2_4_branch' to master
Moving development back to master.
2006-09-03 16:07:11 -07:00
Keith Packard fb2092c18f Finish INSTALL changes. .gitignore ChangeLog 2006-09-03 15:20:46 -07:00
Keith Packard 2ec3ed0806 Update instructions for doing a release. Autogen ChangeLog from git-log. 2006-09-03 14:58:49 -07:00
Keith Packard d3c392b669 Remove ChangeLog 2006-09-03 14:46:17 -07:00
Keith Packard 0945cbe730 Change version to 2.3.96 2006-09-03 14:42:48 -07:00
Keith Packard 2a5ea80023 Oops; missed the 60-delicious.conf file.
This file fixes Delicious Heavy fonts to have the correct weight value.
2006-09-02 23:10:59 -07:00
Keith Packard e3b771a63e Using uninitialized (and wrong) variable in FcStrCopyFilename.
A typo from the change in where filename canonicalization occurs.
2006-09-02 23:09:44 -07:00
Keith Packard 04cedae0d5 Don't segfault when string values can't be parsed as charsets or langsets.
If parsing charsets or langsets fails, return a FcTypeVoid value instead of
a charset/langset value with a NULL pointer in it (which is invalid).
2006-09-02 20:23:31 -07:00
Keith Packard fb6e30ab3e Fix missing initialization/destruction of new 'scan' target subst list.
Forgot to initialize and destroy the new substitution list for the 'scan'
match target.
2006-09-02 20:07:29 -07:00
Keith Packard c2c6976d1a Add FcMatchScan to resolve Delicious font matching issues (bug #6769)
The Delicious family includes one named Delicious Heavy, a bold variant
which is unfortunately marked as having normal weight. Because the family
name is 'Delicious', fontconfig accidentally selects this font instead of
the normal weight variant. The fix here rewrites the scanned data by running
the scanned pattern through a new substitution sequence tagged with
<match target=scan>; a sample for the Delicious family is included to
demonstrate how it works (and fix Delicious at the same time).

Also added was a new match predicate -- the 'decorative' predicate which is
automatically detected in fonts by searching style names for key decorative
phrases like SmallCaps, Shadow, Embosed and Antiqua. Suggestions for
additional decorative key words are welcome. This should have little effect
on font matching except when two fonts share the same characteristics except
for this value.
2006-09-02 17:52:12 -07:00
Keith Packard 3b8a03c09d Allow font caches to contain newer version numbers
Use the version number inside the cache file to mark backward compatible
changes while continuing to reserve the filename number for incompatible
changes.
2006-09-02 14:54:14 -07:00
Keith Packard 9b511b2905 Unify directory canonicalization into FcStrAddFilename.
Instead of making filename canonicalization occur in multiple places, it
occurs only in FcStrAddFilename now, as all filenames pass through that
function at one point.
2006-09-02 14:52:37 -07:00
Keith Packard 813258dc8e Move Free family names to bottom of respective aliases. (bug 7429)
The FreeSans, FreeSerif and FreeMono fonts cover a large number of
languages, but are of generally poor quality. Moving these after fonts which
cover specific languages but which have higher quality glyphs should improve
font selection.
2006-09-01 22:08:41 -07:00
Keith Packard 5cafbd4da0 Document FC_DEBUG values (bug 6393). Document name \ escape syntax.
Limited FC_DEBUG documentation (just shows values and vague idea of what
they're related to). Also document \ escape syntax for font names, including
how family name and values have different escape requirements.
2006-09-01 22:04:52 -07:00
Keith Packard 7295c6f5fa Guess that mac roman names with lots of high bits are actually SJIS.
Many Japanese fonts incorrectly include names tagged as Roman encoding and
English language which are actually Japanese names in the SJIS encoding.
Guess that names with a large number of high bits set are SJIS encoded
Japanese names rather than English names.
2006-09-01 21:30:54 -07:00
Keith Packard db970d3596 Prefer Bitstream Vera to DejaVu families.
DejaVu is a modified version of Bitstream Vera that covers significantly
more languages, but does so with spotty quality, lacking hinting for many
glyphs, especially for the synthesized serif oblique face. Use Bitstream
Vera (where installed).
2006-09-01 21:12:44 -07:00
Keith Packard 3bb1812f0d Fonts matching lang not territory should satisfy sort pattern lang.
A pattern specifying 'Chinese' (:lang=zh) without a territory should be
satisfied by any font supporting any Chinese lang. The code was requiring
that the lang tags match exactly, causing this sort to fail.
2006-09-01 15:33:27 -07:00
Keith Packard cfccd4873a Really only rebuild caches for system fonts at make install time.
Oops. Fix actual fc-cache command line instead of just the displayed version.
2006-09-01 13:22:45 -07:00
Keith Packard caf996342b Add Assamese orthography (as.orth). Bug #8050
Behdad Esfahbod says Assamese is the same as Bengali, so this just uses
bn.orth.
2006-09-01 12:59:09 -07:00
Keith Packard c9e6d2c8cc 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.
2006-09-01 12:45:43 -07:00
Keith Packard 5b8e43a48e Avoid #warning directives on non-GCC compilers. (bug 7683)
Detect GCC and use #warning only on GCC systems.
2006-09-01 12:36:31 -07:00
Keith Packard ab2cb932b2 Add @EXPAT_LIBS@ to Libs.private in fontconfig.pc (bug 7683)
Linking against fontconfig requires expat on systems without chained shared
library dependencies.
2006-09-01 12:26:15 -07:00
Keith Packard 1741499e23 Fix memory leaks in fc-cache directory cleaning code.
valgrind found a few leaks in the new cache cleaning code.
2006-09-01 12:07:10 -07:00
Keith Packard fd7223c770 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.
2006-09-01 12:05:04 -07:00
Keith Packard 8587d77ce6 Add some ignores 2006-09-01 02:27:45 -07:00
Keith Packard 09bd9ae2be 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.
2006-09-01 02:22:59 -07:00
Keith Packard 18b6857c64 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.
2006-09-01 01:49:47 -07:00
Keith Packard bc5e487f2a 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.
2006-09-01 01:15:14 -07:00
Keith Packard aec8c90b45 Remove stale architecture signatures.
All but x86 are known to be wrong.
2006-09-01 01:12:13 -07:00
Keith Packard 551b6b2cd7 Allow FcTypeLangSet to match either FcTypeLangSet or FcTypeString.
Applications explicitly setting FC_LANG with string would fail due
to typechecking disallowing this case.
2006-08-31 18:16:00 -07:00