platform/upstream/fontconfig.git
17 years agoDon't use varargs CPP macros in fccache.c. (bug 8733)
Kean Johnston [Sat, 2 Dec 2006 21:36:56 +0000 (13:36 -0800)]
Don't use varargs CPP macros in fccache.c. (bug 8733)

src/fccache.c uses a trick to try and use a function name that is also a
macro name. It does this using the varargs args() macro. Replace that
with separate macros for each number of formals.

17 years agoAdd FcFreeTypeQueryFace external API. Bug #7311.
Keith Packard [Sat, 2 Dec 2006 21:22:27 +0000 (13:22 -0800)]
Add FcFreeTypeQueryFace external API. Bug #7311.

Expose ability to build an FcPattern directly from an FT_Face
object.

17 years agoFix grep pattern in makealias to work on non-Gnu grep (bug 8368).
Keith Packard [Sat, 2 Dec 2006 21:14:23 +0000 (13:14 -0800)]
Fix grep pattern in makealias to work on non-Gnu grep (bug 8368).

grep -l -w '^foo' doesn't work on Solaris. Replace with
grep -l '^foo\>' instead which does. Also, grep -l will
report the filename more than once (!), so add | head -1
to pick just the first one.

17 years agoAvoid writing uninitialized structure pad bytes to cache files.
Keith Packard [Sat, 2 Dec 2006 21:04:05 +0000 (13:04 -0800)]
Avoid writing uninitialized structure pad bytes to cache files.

The union inside the FcValue structure contains pad bytes. Instead of
copying the whole structure to the cache block, copy only the initialized
fields to avoid writing whichever bytes serve as padding within the
structure.

17 years agoWarn (and recover) from config file without <cachedir> elements.
Keith Packard [Sat, 2 Dec 2006 20:14:49 +0000 (12:14 -0800)]
Warn (and recover) from config file without <cachedir> elements.

When updating from older fontconfig versions, if the config file
is not replaced, it will not contain <cachedir> elements. Lacking these,
fontconfig has no place to store cached font information and cannot operate
reasonably.

Add code to check and see if the loaded configuration has no cache
directories, and if so, warn the user and add both the default system cache
directory and the normal per-user cache directory.

17 years agoUse explicit platform/nameid order when scanning ttf files.
Keith Packard [Sat, 2 Dec 2006 19:47:07 +0000 (11:47 -0800)]
Use explicit platform/nameid order when scanning ttf files.

Instead of accepting whatever order names appear in the font file,
use an explicit ordering for both platform and nameid.

Platforms are high precedence than nameids.

The platform order is:

microsoft, apple unicode, macintosh, (other)

The family nameid order is:

preferred family, font family

The fullname nameid order is:

mac full name, full name

The style nameid order is

preferred subfamily, font subfamily

This will change the names visible to users in various application UIs, but
should not change how existing font names are matched as all names remain
present in the resulting database. The hope is that family names will, in
general, be less ambiguous. Testing here shows that commercial fonts
have longer names now while DejaVu has a shorter family name, and moves more
of the font description to the style name.

17 years agoFcStrCanonAbsoluteFilename should be static.
Keith Packard [Mon, 13 Nov 2006 01:15:55 +0000 (17:15 -0800)]
FcStrCanonAbsoluteFilename should be static.

17 years agoAdd sparc64 architecture string.
Keith Packard [Mon, 13 Nov 2006 01:15:24 +0000 (17:15 -0800)]
Add sparc64 architecture string.

18 years agoDo not clean cache files for different architectures
Mike FABIAN [Fri, 27 Oct 2006 17:26:50 +0000 (10:26 -0700)]
Do not clean cache files for different architectures

Use filenames to clean cache files for current architecture only. This is
sufficient as cache files live in their own directory where filenames are
under fontconfig control.

18 years agoMore fixes for Win32 building (bug 8311)
Han-Wen Nienhuys [Mon, 18 Sep 2006 00:03:33 +0000 (17:03 -0700)]
More fixes for Win32 building (bug 8311)

Our build system barfs on autogen.sh, which ignores --noconfigure. Configure
needs a host of options to make the cross compile work in our case.

Fix typo in fccache.c

18 years agoFcStrCanonFileName buggy for mingw. (bug 8311)
Han-Wen Nienhuys [Sun, 17 Sep 2006 21:34:46 +0000 (14:34 -0700)]
FcStrCanonFileName buggy for mingw. (bug 8311)

FcStrCanonFileName checks whether s[0] == '/', and recurses if not.

This only works on POSIX. On dos, this crashes with a stack overflow.

The patch attached splits this functionality in two functions
(FcStrCanonAbsoluteFilename) and uses GetFullPathName on windows to get an
absolute path.  It also fixes a number of other issues. With this patch,
LilyPond actually produces output on Windows.

18 years agoDetect and use available random number generator (bug 8308)
Keith Packard [Sun, 17 Sep 2006 21:20:18 +0000 (14:20 -0700)]
Detect and use available random number generator (bug 8308)

Prefer random over lrand48 over rand

18 years agoBuild fontconfig.def from header files when needed.
Keith Packard [Sun, 17 Sep 2006 21:09:12 +0000 (14:09 -0700)]
Build fontconfig.def from header files when needed.

Instead of attempting to track exported symbols manually in
fontconfig.def.in, build it directly from the public fontconfig header files
to ensure it exports the public API.

18 years agoRemove documentation for non-existant FcConfigNormalizeFontDir.
Keith Packard [Sun, 17 Sep 2006 20:50:31 +0000 (13:50 -0700)]
Remove documentation for non-existant FcConfigNormalizeFontDir.

FcConfigNormalizeFontDir was present in some of the 2.3.9x release but not
in the final 2.4 release. However, the documentation persisted.

18 years agoUpdate for version 2.4.1 2.4.1
Keith Packard [Fri, 15 Sep 2006 17:12:15 +0000 (10:12 -0700)]
Update for version 2.4.1

18 years agoReimplement FcConfigAppFontAddDir; function was lost in 2.4.0.
Keith Packard [Fri, 15 Sep 2006 07:23:40 +0000 (00:23 -0700)]
Reimplement FcConfigAppFontAddDir; function was lost in 2.4.0.

With the cache restructuring of 2.4.0, the ability to add
application-specific font files and directories was accidentally lost.
Reimplement this using by sharing the logic used to load configured font
directories.

18 years agoAdd warning flags to fc-cache build. Clean up warnings in fc-cache.
Keith Packard [Thu, 14 Sep 2006 01:55:45 +0000 (18:55 -0700)]
Add warning flags to fc-cache build. Clean up warnings in fc-cache.

Looks like the last directory in the project which didn't use $(WARN_CFLAGS)
for some reason. Adding that found the usual collection of char * vs FcChar8
* issues (why, oh why is FcChar8 not just char...)

18 years agoAdd signatures for m68k and mipsel (thanks debian buildd)
Keith Packard [Thu, 14 Sep 2006 01:51:11 +0000 (18:51 -0700)]
Add signatures for m68k and mipsel (thanks debian buildd)

18 years agoAdd ppc64 signature. Bug 8227
Keith Packard [Mon, 11 Sep 2006 18:10:48 +0000 (11:10 -0700)]
Add ppc64 signature. Bug 8227

18 years agoUpdate installation notes for 2.4 base.
Keith Packard [Mon, 11 Sep 2006 18:09:26 +0000 (11:09 -0700)]
Update installation notes for 2.4 base.

18 years agoUpdate to version 2.4.0 2.4.0
Keith Packard [Sun, 10 Sep 2006 05:08:40 +0000 (22:08 -0700)]
Update to version 2.4.0

18 years agoSplit much of the configuration into separate files. Renumber files
Keith Packard [Sun, 10 Sep 2006 04:32:14 +0000 (21:32 -0700)]
Split much of the configuration into separate files. Renumber files

Most of the remaining elements in fonts.conf have been moved to separate
files. The numbering scheme for conf.d files has been documented in the
README and the files have been renumbered. Config files have been
validated against the DTD and a few minor errors fixed.

18 years agoDon't display tests for DESTDIR on make install.
Keith Packard [Sun, 10 Sep 2006 04:30:06 +0000 (21:30 -0700)]
Don't display tests for DESTDIR on make install.

Make install output quieter by eliding the shell commands
used to test for DESTDIR being set during make install.

18 years agoInclude cachedir in fonts.dtd.
Keith Packard [Sun, 10 Sep 2006 04:29:08 +0000 (21:29 -0700)]
Include cachedir in fonts.dtd.

Fonts.dtd <fontconfig> element was missing the new cachedir element.

18 years agoFix conf.d directory sorting.
Keith Packard [Sun, 10 Sep 2006 04:21:01 +0000 (21:21 -0700)]
Fix conf.d directory sorting.

Sort was using broken comparison function.

18 years agoRename conf.avail to conf.d
Keith Packard [Sun, 10 Sep 2006 02:37:22 +0000 (19:37 -0700)]
Rename conf.avail to conf.d

18 years agoAdd XML headers to new conf files. Move link make commands to conf.avail dir
Keith Packard [Sat, 9 Sep 2006 23:52:21 +0000 (16:52 -0700)]
Add XML headers to new conf files. Move link make commands to conf.avail dir

Fix up new config fragments to include XML headers as required.
Move symbolic link installation to conf.avail directory to centralize both
steps.

18 years agoInsert newly created caches into reference data structure.
Keith Packard [Sat, 9 Sep 2006 23:41:58 +0000 (16:41 -0700)]
Insert newly created caches into reference data structure.

All caches used in the application must be in the cache reference list so
internal references can be tracked correctly. Failing to have newly created
caches in the list would cause the cache to be deallocated while references
were still present.

18 years agoMerge branch 'jhcloos'
Keith Packard [Sat, 9 Sep 2006 22:49:24 +0000 (15:49 -0700)]
Merge branch 'jhcloos'

18 years agoAccept locale environment variables that do not contain territory.
Keith Packard [Sat, 9 Sep 2006 17:04:42 +0000 (10:04 -0700)]
Accept locale environment variables that do not contain territory.

Locale environment variables (LC_ALL, LC_CTYPE, LANG) must contain language,
and may contain territory and encoding. Don't accidentally require territory
as that will cause fontconfig to fall back to 'en'.

18 years agoMake conf.avail and conf.d work
James Cloos [Sat, 9 Sep 2006 05:24:08 +0000 (01:24 -0400)]
Make conf.avail and conf.d work

Add conf.avail to configure.in

Add install: target to conf.d/Makefile.am to
create the initial symlinks to conf.avail

18 years agoAttempt to fix makealias usage for build on Mac OS X.
Keith Packard [Thu, 7 Sep 2006 22:17:10 +0000 (15:17 -0700)]
Attempt to fix makealias usage for build on Mac OS X.

Avoid using fcalias.h or fcaliastail.h on systems which don't support it.
Provided solution still generates these files, but does not use them.

18 years agoReplace gnu-specific sed command with simple grep.
Keith Packard [Thu, 7 Sep 2006 21:37:52 +0000 (14:37 -0700)]
Replace gnu-specific sed command with simple grep.

makealias was using a gnu-extension to sed addressing, replace that with a
simple (and more robuse) grep command. Also, found a bug in the public
header file that was leaving one symbol out of the process.

18 years agoReplace character discovery loop with simpler, faster version.
David Turner [Thu, 7 Sep 2006 21:29:35 +0000 (14:29 -0700)]
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.

18 years agoReference patterns in FcCacheCopySet.
Keith Packard [Thu, 7 Sep 2006 21:22:16 +0000 (14:22 -0700)]
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.

18 years agoCreate fc_cachedir at install time. Bug 8157.
Keith Packard [Thu, 7 Sep 2006 17:37:24 +0000 (10:37 -0700)]
Create fc_cachedir at install time. Bug 8157.

18 years agoUpdate for version 2.3.97. 2.3.97
Keith Packard [Thu, 7 Sep 2006 06:58:14 +0000 (23:58 -0700)]
Update for version 2.3.97.

18 years agoCharset hashing depended on uniqueness of leaves.
Keith Packard [Thu, 7 Sep 2006 00:45:40 +0000 (17:45 -0700)]
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.

18 years agoParallel build fix for fcalias.h and fcaliastail.h
Keith Packard [Thu, 7 Sep 2006 00:43:08 +0000 (17:43 -0700)]
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.

18 years agoUpdate architecture signatures for x86-64 and ppc.
Keith Packard [Thu, 7 Sep 2006 00:14:46 +0000 (17:14 -0700)]
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.

18 years agoEliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven)
Keith Packard [Tue, 5 Sep 2006 09:24:01 +0000 (02:24 -0700)]
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

18 years agoCorrect reference count when sharing cache file objects.
Keith Packard [Tue, 5 Sep 2006 06:19:59 +0000 (23:19 -0700)]
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

18 years agoOops, fc-lang broke when I added cache referencing.
Keith Packard [Tue, 5 Sep 2006 05:39:51 +0000 (22:39 -0700)]
Oops, fc-lang broke when I added cache referencing.

Add FcCacheObjectReference/FcCacheObjectDereference stubs to fc-cache.

18 years agoMake cache reference counting more efficient.
Keith Packard [Tue, 5 Sep 2006 05:26:24 +0000 (22:26 -0700)]
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.

18 years agoReference count cache objects.
Keith Packard [Tue, 5 Sep 2006 05:20:25 +0000 (22:20 -0700)]
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.

18 years agoLeave cache files mapped permanently.
Keith Packard [Mon, 4 Sep 2006 20:59:58 +0000 (13:59 -0700)]
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.

18 years agoUpdate Makefile.am files
James Cloos [Mon, 4 Sep 2006 19:57:19 +0000 (15:57 -0400)]
Update Makefile.am files

18 years agoMove some section from fonts.conf into conf.avail files
James Cloos [Mon, 4 Sep 2006 19:47:52 +0000 (15:47 -0400)]
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.

18 years agoCan't typecheck values for objects with no known type.
Keith Packard [Mon, 4 Sep 2006 19:46:01 +0000 (12:46 -0700)]
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.

18 years agoRe-order old conf.d files
James Cloos [Mon, 4 Sep 2006 19:45:28 +0000 (15:45 -0400)]
Re-order old conf.d files

Make sure they continue to load after ~/.fonts.conf and local.conf

18 years agoMake room for chunks from fonts.conf in conf.avail
James Cloos [Mon, 4 Sep 2006 19:36:46 +0000 (15:36 -0400)]
Make room for chunks from fonts.conf in conf.avail

18 years agoReplace load of conf.d in fonts.conf.in
James Cloos [Mon, 4 Sep 2006 19:32:37 +0000 (15:32 -0400)]
Replace load of conf.d in fonts.conf.in

18 years agoUpdate Makefile.am to match conf.avail changes
James Cloos [Mon, 4 Sep 2006 19:30:10 +0000 (15:30 -0400)]
Update Makefile.am to match conf.avail changes

18 years agoNumber the remaining conf.avail files
James Cloos [Mon, 4 Sep 2006 19:27:29 +0000 (15:27 -0400)]
Number the remaining conf.avail files

18 years agoHide FreeType glue code from library ABI.
Keith Packard [Mon, 4 Sep 2006 09:13:13 +0000 (02:13 -0700)]
Hide FreeType glue code from library ABI.

FreeType glue code was escaping the shared library.

18 years agoHide private functions in shared library. Export functionality for utilities.
Keith Packard [Mon, 4 Sep 2006 07:47:07 +0000 (00:47 -0700)]
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.

18 years agoMove user and local conf file loading into conf.avail files
James Cloos [Mon, 4 Sep 2006 05:33:09 +0000 (01:33 -0400)]
Move user and local conf file loading into conf.avail files

18 years agoSupport all five possibilities for sub-pixel
James Cloos [Mon, 4 Sep 2006 05:28:07 +0000 (01:28 -0400)]
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.

18 years agoStandardize conf.avail number prefixing convention
James Cloos [Mon, 4 Sep 2006 05:24:02 +0000 (01:24 -0400)]
Standardize conf.avail number prefixing convention

Always use \d- rather than just \d as prefix

18 years agoMove files from conf.d to conf.avail
James Cloos [Mon, 4 Sep 2006 05:21:55 +0000 (01:21 -0400)]
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

18 years agoRemove all .cvsignore files
Keith Packard [Sun, 3 Sep 2006 23:27:09 +0000 (16:27 -0700)]
Remove all .cvsignore files

18 years agoMerge branch 'fc-2_4_branch' to master
Keith Packard [Sun, 3 Sep 2006 23:07:11 +0000 (16:07 -0700)]
Merge branch 'fc-2_4_branch' to master

Moving development back to master.

18 years agoFinish INSTALL changes. .gitignore ChangeLog
Keith Packard [Sun, 3 Sep 2006 22:20:46 +0000 (15:20 -0700)]
Finish INSTALL changes. .gitignore ChangeLog

18 years agoUpdate instructions for doing a release. Autogen ChangeLog from git-log. 2.3.96
Keith Packard [Sun, 3 Sep 2006 21:58:49 +0000 (14:58 -0700)]
Update instructions for doing a release. Autogen ChangeLog from git-log.

18 years agoRemove ChangeLog
Keith Packard [Sun, 3 Sep 2006 21:46:17 +0000 (14:46 -0700)]
Remove ChangeLog

18 years agoChange version to 2.3.96
Keith Packard [Sun, 3 Sep 2006 21:42:48 +0000 (14:42 -0700)]
Change version to 2.3.96

18 years agoOops; missed the 60-delicious.conf file.
Keith Packard [Sun, 3 Sep 2006 06:10:59 +0000 (23:10 -0700)]
Oops; missed the 60-delicious.conf file.

This file fixes Delicious Heavy fonts to have the correct weight value.

18 years agoUsing uninitialized (and wrong) variable in FcStrCopyFilename.
Keith Packard [Sun, 3 Sep 2006 06:09:44 +0000 (23:09 -0700)]
Using uninitialized (and wrong) variable in FcStrCopyFilename.

A typo from the change in where filename canonicalization occurs.

18 years agoDon't segfault when string values can't be parsed as charsets or langsets.
Keith Packard [Sun, 3 Sep 2006 03:23:31 +0000 (20:23 -0700)]
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).

18 years agoFix missing initialization/destruction of new 'scan' target subst list.
Keith Packard [Sun, 3 Sep 2006 03:07:29 +0000 (20:07 -0700)]
Fix missing initialization/destruction of new 'scan' target subst list.

Forgot to initialize and destroy the new substitution list for the 'scan'
match target.

18 years agoAdd FcMatchScan to resolve Delicious font matching issues (bug #6769)
Keith Packard [Sun, 3 Sep 2006 00:52:12 +0000 (17:52 -0700)]
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.

18 years agoAllow font caches to contain newer version numbers
Keith Packard [Sat, 2 Sep 2006 21:54:14 +0000 (14:54 -0700)]
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.

18 years agoUnify directory canonicalization into FcStrAddFilename.
Keith Packard [Sat, 2 Sep 2006 21:52:37 +0000 (14:52 -0700)]
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.

18 years agoMove Free family names to bottom of respective aliases. (bug 7429)
Keith Packard [Sat, 2 Sep 2006 05:08:41 +0000 (22:08 -0700)]
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.

18 years agoDocument FC_DEBUG values (bug 6393). Document name \ escape syntax.
Keith Packard [Sat, 2 Sep 2006 05:04:52 +0000 (22:04 -0700)]
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.

18 years agoGuess that mac roman names with lots of high bits are actually SJIS.
Keith Packard [Sat, 2 Sep 2006 04:30:54 +0000 (21:30 -0700)]
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.

18 years agoPrefer Bitstream Vera to DejaVu families.
Keith Packard [Sat, 2 Sep 2006 04:12:44 +0000 (21:12 -0700)]
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).

18 years agoFonts matching lang not territory should satisfy sort pattern lang.
Keith Packard [Fri, 1 Sep 2006 22:33:27 +0000 (15:33 -0700)]
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.

18 years agoReally only rebuild caches for system fonts at make install time.
Keith Packard [Fri, 1 Sep 2006 20:22:45 +0000 (13:22 -0700)]
Really only rebuild caches for system fonts at make install time.

Oops. Fix actual fc-cache command line instead of just the displayed version.

18 years agoAdd Assamese orthography (as.orth). Bug #8050
Keith Packard [Fri, 1 Sep 2006 19:59:09 +0000 (12:59 -0700)]
Add Assamese orthography (as.orth). Bug #8050

Behdad Esfahbod says Assamese is the same as Bengali, so this just uses
bn.orth.

18 years agoChinese/Macau needs the Hong Kong orthography instead of Taiwan (bug 7884)
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.

18 years agoAvoid #warning directives on non-GCC compilers. (bug 7683)
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.

18 years agoAdd @EXPAT_LIBS@ to Libs.private in fontconfig.pc (bug 7683)
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.

18 years agoFix memory leaks in fc-cache directory cleaning code.
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.

18 years agoOnly rebuild caches for system fonts at make install time.
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.

18 years agoAdd some ignores
Keith Packard [Fri, 1 Sep 2006 09:27:45 +0000 (02:27 -0700)]
Add some ignores

18 years agoFontset pattern references are relative to fontset, not array.
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.

18 years agoFix fc-lang to use new charset freezer API.
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.

18 years agoPass directory information around in FcCache structure. Freeze charsets.
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.

18 years agoRemove stale architecture signatures.
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.

18 years agoAllow FcTypeLangSet to match either FcTypeLangSet or FcTypeString.
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.

18 years agoChange $(pkgcachedir) to $(fc_cachedir) in fc-cat and fc-cache Makefile.am
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.

18 years agoRevert ABI changes from version 2.3
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.

18 years agoWith no args, fc-cat now dumps all directories.
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.

18 years agoAutomatically remove invalid cache files.
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.

18 years agoSerialized value lists were only including one value.
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.

18 years agoUse intptr_t instead of off_t inside FcCache structure.
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.

18 years agoFix fc-cat again. Sigh.
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...

18 years agoSkip broken caches. Cache files are auto-written, don't rewrite in fc-cache.
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.

18 years agoRework Object name database to unify typechecking and object lookup.
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.