Commit Graph

1263 Commits

Author SHA1 Message Date
David Turner 31e0f03210 Replace character discovery loop with simpler, faster version.
The existing loop for discovering which characters map to glyphs is ugly and
inefficient. The replacement is functionally identical, but far cleaner and
faster.
2006-09-07 14:29:35 -07:00
Keith Packard 8d779ce4b3 Reference patterns in FcCacheCopySet.
As patterns are put into the font set copy, mark them as referenced so the
cache stays around while the font set is in use.
2006-09-07 14:22:16 -07:00
Keith Packard 4c34c0c52a Create fc_cachedir at install time. Bug 8157. 2006-09-07 10:37:24 -07:00
Keith Packard 88b6bebc3d Update for version 2.3.97. 2006-09-06 23:58:14 -07:00
Keith Packard c3796ac606 Charset hashing depended on uniqueness of leaves.
Charset hashing actually use the value of the leaf pointers, which is
clearly wrong, especially now that charsets are not shared across multiple
font directories.
2006-09-06 17:45:40 -07:00
Keith Packard 08bef68701 Parallel build fix for fcalias.h and fcaliastail.h
These are built from the same script, but creating a single dependency rule
caused parallel make to run the script twice.
2006-09-06 17:43:08 -07:00
Keith Packard 8e0b03f550 Update architecture signatures for x86-64 and ppc.
I think the cache file data types are stable for now; add-back the
signatures for x86-64 and ppc.
2006-09-06 17:14:46 -07:00
Keith Packard 23816bf9ac Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven)
Using a simple shell script that processes the public headers, two header
files are constructed that map public symbols to hidden internal aliases
avoiding the assocated PLT entry for referring to a public symbol.

A few mistakes in the FcPrivate/FcPublic annotations were also discovered
through this process
2006-09-05 02:24:01 -07:00
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