platform/upstream/fontconfig.git
17 years agoRemove fcprivate.h, move the remaining macros to fcint.h.
Keith Packard [Sat, 3 Nov 2007 20:09:01 +0000 (13:09 -0700)]
Remove fcprivate.h, move the remaining macros to fcint.h.

fcprivate.h was supposed to extend the fontconfig API for the various
fontconfig utilities. Instead, just have those utilities use the internal
fcint.h header file (which they already do), removing fcprivate.h from the
installation and hence from the defacto public API.

17 years agoCorrect documentation for FcAtomicLock (Bug 12947).
Keith Packard [Sat, 3 Nov 2007 20:05:25 +0000 (13:05 -0700)]
Correct documentation for FcAtomicLock (Bug 12947).

FcAtomicLock can only be called once from any process.

17 years agoPort fonts-persian.conf to new alias syntax with binding="same"
Behdad Esfahbod [Fri, 26 Oct 2007 06:02:19 +0000 (02:02 -0400)]
Port fonts-persian.conf to new alias syntax with binding="same"

Signed-off-by: Keith Packard <keithp@koto.keithp.com>
17 years agoRespect "binding" attribute in <alias> entries.
Keith Packard [Fri, 26 Oct 2007 05:30:49 +0000 (22:30 -0700)]
Respect "binding" attribute in <alias> entries.

This makes creating "same" aliases for renamed font families far easier.

17 years agoMake fc-match --sort call FcFontRenderPrepare.
Behdad Esfahbod [Fri, 26 Oct 2007 04:35:45 +0000 (21:35 -0700)]
Make fc-match --sort call FcFontRenderPrepare.

This makes the --sort and regular output the same for each font.

17 years agoAlso check configDirs mtimes in FcConfigUptoDate
Keith Packard [Fri, 26 Oct 2007 04:23:36 +0000 (21:23 -0700)]
Also check configDirs mtimes in FcConfigUptoDate

Checking only config files and font directories can miss changes which
affect only a configuration directory. Check those to catch any changes.

17 years agoA few fixups for make distcheck 2.4.91
Keith Packard [Thu, 25 Oct 2007 22:19:14 +0000 (15:19 -0700)]
A few fixups for make distcheck

17 years agoSet version numbers to 2.4.91 (2.5 RC1)
Keith Packard [Thu, 25 Oct 2007 22:07:54 +0000 (15:07 -0700)]
Set version numbers to 2.4.91 (2.5 RC1)

17 years agoBuild fix for Solaris 10 with GCC.
Keith Packard [Thu, 25 Oct 2007 21:36:24 +0000 (14:36 -0700)]
Build fix for Solaris 10 with GCC.

Solaris 10 with GCC doesn't appear capable of supporting the symbol
visibility stuff, so disable it.

17 years agoUpdate CaseFolding.txt to Unicode 5.1.0
Behdad Esfahbod [Thu, 25 Oct 2007 21:20:06 +0000 (14:20 -0700)]
Update CaseFolding.txt to Unicode 5.1.0

17 years agoMatch 'ultra' on word boundaries to detect ultra bold fonts. (bug 2511)
Keith Packard [Sat, 2 Sep 2006 03:25:21 +0000 (20:25 -0700)]
Match 'ultra' on word boundaries to detect ultra bold fonts. (bug 2511)

Added FcStrContainsWord to detect strings on word boundaries.

17 years agofontconfig needs configure option to use gnu iconv (bug 4083).
Keith Packard [Thu, 25 Oct 2007 08:51:38 +0000 (01:51 -0700)]
fontconfig needs configure option to use gnu iconv (bug 4083).

Existing Solaris workaround was broken; mis-matching values caused the test
for libiconv to always fail.

17 years agoEnsure weight/slant values present even when style is supplied (bug 9313).
Keith Packard [Thu, 25 Oct 2007 08:35:32 +0000 (01:35 -0700)]
Ensure weight/slant values present even when style is supplied (bug 9313).

If the provided style value doesn't match any available font, fall back to
using the weight and slant values by ensuring that those are in the pattern.

17 years agoDistribute man source files for command line programs (bug 9678).
Keith Packard [Thu, 25 Oct 2007 08:26:09 +0000 (01:26 -0700)]
Distribute man source files for command line programs (bug 9678).

For systems on whch DOCBOOK is unavailable, distribute command line program
manual pages in .man format.

17 years agoAdd/fix *.orth files for South African languages
Dwayne Bailey [Thu, 25 Oct 2007 08:16:06 +0000 (01:16 -0700)]
Add/fix *.orth files for South African languages

This adds the missing orth files for Ndebele (South) (nr), Northern Sotho
(nso), Swati (ss) and Southern Sotho (st).  It also fixes the Tswana (tn)
orth file.

17 years agoFix parallel build in fontconfig/docs (bug 10481).
Keith Packard [Thu, 25 Oct 2007 08:09:11 +0000 (01:09 -0700)]
Fix parallel build in fontconfig/docs (bug 10481).

17 years agoHandle UltraBlack weight.
Keith Packard [Thu, 25 Oct 2007 08:03:40 +0000 (01:03 -0700)]
Handle UltraBlack weight.

UltraBlack is weight 950 on the CSS scale; handle this by name and value
encoding it as fontconfig weight 215.

17 years agoOops. Left debugging printf in previous commit.
Keith Packard [Thu, 25 Oct 2007 08:02:58 +0000 (01:02 -0700)]
Oops. Left debugging printf in previous commit.

17 years agoSpelling errors in documentation. (bug 10879).
Keith Packard [Thu, 25 Oct 2007 07:49:19 +0000 (00:49 -0700)]
Spelling errors in documentation. (bug 10879).

Thanks to David <ssdk@ispras.ru> for spotting these.

17 years agoThere is no U+1257 (bug 10899).
Keith Packard [Thu, 25 Oct 2007 07:46:41 +0000 (00:46 -0700)]
There is no U+1257 (bug 10899).

The Eritrean Tigrinya orthography mistakenly included this unicode value.

17 years agoFcInit should return FcFalse when FcInitLoadConfigAndFonts fails. (bug 10976)
Keith Packard [Thu, 25 Oct 2007 07:41:28 +0000 (00:41 -0700)]
FcInit should return FcFalse when FcInitLoadConfigAndFonts fails. (bug 10976)

Thanks to David <ssdk@ispras.ru> for spotting this error.

17 years agoStore FcVendorFoundries in read-only memory.
Tilman Sauerbeck [Thu, 25 Oct 2007 07:38:44 +0000 (00:38 -0700)]
Store FcVendorFoundries in read-only memory.

Create fixed size strings for vendor and foundry.

17 years agoStore FcNoticeFoundries in read-only memory.
Tilman Sauerbeck [Thu, 25 Oct 2007 07:36:37 +0000 (00:36 -0700)]
Store FcNoticeFoundries in read-only memory.

Use a single character array and a separate table of integer indices.

17 years agoReplace makealias pattern with something supported by POSIX grep (bug 11083)
Keith Packard [Thu, 25 Oct 2007 07:22:04 +0000 (00:22 -0700)]
Replace makealias pattern with something supported by POSIX grep (bug 11083)

The suggested replacement in the bug was not supported by GNU grep, so I
created something that should be supported everywhere (famous last words).

17 years agoAdd BRAILLE PATTERN BLANK to list of blank glyphs.
Keith Packard [Thu, 25 Oct 2007 04:59:33 +0000 (21:59 -0700)]
Add BRAILLE PATTERN BLANK to list of blank glyphs.

Braille pattern blank is often imaged as a blank glyph.

17 years agoMove <cachedir> elements to the end of fonts.conf.
Keith Packard [Thu, 25 Oct 2007 04:52:56 +0000 (21:52 -0700)]
Move <cachedir> elements to the end of fonts.conf.

This allows users to select alternate directories for cache files, ahead of
the 'standard' directories.

17 years agoLeave generated headers out of distribution (bug 12734).
Keith Packard [Thu, 25 Oct 2007 04:47:40 +0000 (21:47 -0700)]
Leave generated headers out of distribution (bug 12734).

If the generated header files are included in the distribution, a build
outside of the source directory will use them. For machine-specific files,
this generates the wrong result (fcarch.h). Leaving them out of the
distribution forces them to be built.

17 years agoEliminate relocations from FcCodePageRange structure (bug 10982).
Keith Packard [Thu, 18 Oct 2007 16:48:31 +0000 (09:48 -0700)]
Eliminate relocations from FcCodePageRange structure (bug 10982).

FcCodePageRange was using char pointers; replace them with char arrays.

17 years agoEliminate relocations for glyph name table.
Keith Packard [Thu, 18 Oct 2007 16:43:22 +0000 (09:43 -0700)]
Eliminate relocations for glyph name table.

Glyph names (now used only for dingbats) were using many relocations,
causing startup latency plus per-process memory usage. Replace pointers with
table indices, shrinking table size and elimninating relocations.

17 years agoMust not insert cache into hash table before completely validating.
Keith Packard [Thu, 18 Oct 2007 16:41:00 +0000 (09:41 -0700)]
Must not insert cache into hash table before completely validating.

The cache was inserted into the hash table before the timestamps in the
cache were verified; if that verification failed, an extra pointer to the
now freed cache would be left in the hash table. FcFini would fail an
assertion as a result.

17 years agoPlace language name in constant array instead of pointer.
Keith Packard [Thu, 18 Oct 2007 15:58:14 +0000 (08:58 -0700)]
Place language name in constant array instead of pointer.

Constant char array of 8 bytes is the same size as a pointer plus a short
string, so this actually saves memory and eliminates a pile of relocations.

17 years agoFcConfigParseAndLoad doc was missing the last param.
Keith Packard [Thu, 18 Oct 2007 15:56:42 +0000 (08:56 -0700)]
FcConfigParseAndLoad doc was missing the last param.

Typo lost the last param to this function.

17 years agoAvoid crashes if config files contain junk.
Mike FABIAN [Thu, 18 Oct 2007 12:44:28 +0000 (05:44 -0700)]
Avoid crashes if config files contain junk.

If ~/.fonts.conf contains:

  <edit mode="assign_replace" name="spacing">
     <int>mono</int>
       </edit>

fontconfig crashes:

    mfabian@magellan:~$ fc-match sans
        Fontconfig error: "~/.fonts.conf", line 46: "mono": not a valid
integer
    セグメンテーション違反です (core dumped)
        mfabian@magellan:~$

Of course the above is nonsense, “mono” is no valid integer indeed.

But I think nevertheless fontconfig should not crash in that case.

The problem was caused by partially truncated expression trees caused by
parse errors -- typechecking these walked the tree without verifying the
integrity of the structure. Of course, the whole tree will be discarded
shortly after being loaded as it contained an error.

17 years agoHandle Japanese fonts better. (debian bug #435971)
Hideki Yamane [Thu, 18 Oct 2007 12:17:36 +0000 (05:17 -0700)]
Handle Japanese fonts better. (debian bug #435971)

Add some commonly available Japanese fonts to the standard aliases.

17 years agoHave fc-cache remove invalid cache files from cache directories.
Keith Packard [Thu, 18 Oct 2007 12:05:59 +0000 (05:05 -0700)]
Have fc-cache remove invalid cache files from cache directories.

Old cache file versions, or corrupted cache files should be removed when
cleaning cache directories with fc-cache. This only affects filenames which
match the fontconfig cache file format, so other files will be left alone.

17 years agoDon't use X_OK bit when checking for writable directories (bug 12438)
Keith Packard [Thu, 18 Oct 2007 12:04:39 +0000 (05:04 -0700)]
Don't use X_OK bit when checking for writable directories (bug 12438)

Some mingw versions have broken X_OK checking; instead of trying to work
around this in a system-depedent manner, simply don't bother checking for
X_OK along with W_OK as such cases are expected to be mistakes, and not
sensible access control.

17 years agoVerbose message about cleaning directories was imprecise
Keith Packard [Thu, 18 Oct 2007 12:01:41 +0000 (05:01 -0700)]
Verbose message about cleaning directories was imprecise

Non-existent directories are now described as 'non-existent' instead of
'unwritable'.

17 years agoImprove verbose messages from fc-cache.
Keith Packard [Thu, 18 Oct 2007 11:58:31 +0000 (04:58 -0700)]
Improve verbose messages from fc-cache.

fc-cache would say 'skipping: %d fonts, %d dirs' or 'caching: %d fonts, %d
dirs', which could easily mislead the user. Add 'existing cache is valid' or
'new cache contents' to these messages to explain what it is doing.

17 years agoRemove unneeded call to access(2) in fc-cache.
Keith Packard [Thu, 18 Oct 2007 11:54:51 +0000 (04:54 -0700)]
Remove unneeded call to access(2) in fc-cache.

This call was followed by a call to stat(2) which provided the necessary
information. This call to access(2) was necessary when cache files were
stored in the font directory as that would check for write permission
correctly.

17 years agoMake FC_FULLNAME include all fullname entries, elide nothing. [bug 12827]
Keith Packard [Thu, 18 Oct 2007 11:31:33 +0000 (04:31 -0700)]
Make FC_FULLNAME include all fullname entries, elide nothing. [bug 12827]

The old policy of eliding fullname entries which matched FC_FAMILY or
FC_FAMILY + FC_STYLE meant that applications could not know what the
font foundry set as the fullname of the font. Hiding information is not
helpful.

17 years agoComment about mmaping cache files was misleading.
Keith Packard [Thu, 18 Oct 2007 11:29:13 +0000 (04:29 -0700)]
Comment about mmaping cache files was misleading.

17 years agoStore font directory mtime in cache file.
Keith Packard [Thu, 18 Oct 2007 11:13:51 +0000 (04:13 -0700)]
Store font directory mtime in cache file.

Instead of relying on mtime ordering between a directory and its associated
cache file, write the directory mtime into the cache file itself. This makes
cache file checks more reliable across file systems.

This change is made in a way that old programs can use new cache files, but
new programs will need new cache files.

17 years agoFix ChangeLog generation to avoid circular make dependency
Keith Packard [Thu, 18 Oct 2007 10:52:29 +0000 (03:52 -0700)]
Fix ChangeLog generation to avoid circular make dependency

17 years agoFree temporary string in FcDirCacheUnlink (Bug #11758)
Keith Packard [Sun, 5 Aug 2007 19:31:03 +0000 (12:31 -0700)]
Free temporary string in FcDirCacheUnlink (Bug #11758)

In FcDirCacheUnlink(), the line

  cache_hashed = FcStrPlus (cache_dir, cache_base);

allocates memory in cache_hashed that is never free()'d before the function
exits.

Reported by Ben Combee.

17 years agoWork around FreeType bug when glyph name buffer is too small.
Keith Packard [Mon, 12 Mar 2007 17:32:23 +0000 (10:32 -0700)]
Work around FreeType bug when glyph name buffer is too small.

Recent versions of FreeType do not correctly deal with glyph name buffers
that are too small; work around this by declaring a buffer that can hold any
PS name (127 bytes).

17 years agorehash increment could be zero, causing rehash infinite loop.
Keith Packard [Mon, 12 Mar 2007 17:30:51 +0000 (10:30 -0700)]
rehash increment could be zero, causing rehash infinite loop.

Bump the rehash value by one so that it is always positive.

17 years agoMake FcPatternDuplicate copy the binding instead of always using Strong.
Stephan Kulow [Mon, 12 Mar 2007 17:21:35 +0000 (10:21 -0700)]
Make FcPatternDuplicate copy the binding instead of always using Strong.

I noticed that Qt always uses a different font than fc-match advertises.
Debugging the issue, I found that a call that looks pretty innocent is
changing all weak bindings to strong bindings and as such changes the
semantic of the match: FcPatternDuplicate.

17 years agoUpdate for version 2.4.2 2.4.2
Keith Packard [Sun, 3 Dec 2006 00:09:47 +0000 (16:09 -0800)]
Update for version 2.4.2

17 years agoFix fc-cat documentation (bug 8935).
Peter Breitenlohner [Sat, 2 Dec 2006 23:09:57 +0000 (15:09 -0800)]
Fix fc-cat documentation (bug 8935).

Adapt documentation to reality.

(1) The fc-cat usage message should reflect the
options accepted by the program.

(2) The fc-cat.1 manpage was fairly broken (unreadable).

17 years agoAdd space between type and formal in devel man pages (bug 8935)
Keith Packard [Sat, 2 Dec 2006 23:06:13 +0000 (15:06 -0800)]
Add space between type and formal in devel man pages (bug 8935)

Most parameters are pointers and have '*' in the type; for those
which do not, use '%' to mark where a space needs to be inserted.

17 years agoUse <literal> instead of <sgmltag> when documenting fonts.conf. Bug 8935.
Peter Breitenlohner [Sat, 2 Dec 2006 22:28:03 +0000 (14:28 -0800)]
Use <literal> instead of <sgmltag> when documenting fonts.conf. Bug 8935.

17 years agoA VPATH build of fontconfig-2.4.1 fails for various reasons. Bug 8933.
Peter Breitenlohner [Sat, 2 Dec 2006 22:18:11 +0000 (14:18 -0800)]
A VPATH build of fontconfig-2.4.1 fails for various reasons. Bug 8933.

VPATH builds without doctools breaks as it cannot find the distributed
pre-formatted documentation.

17 years agoSegfault scanning non-font files. Disallow scan edit of user vars. (#8767)
Keith Packard [Sat, 2 Dec 2006 21:57:45 +0000 (13:57 -0800)]
Segfault scanning non-font files. Disallow scan edit of user vars. (#8767)

Missing NULL font check before attempting to edit scanned pattern.
Also, <match target="scan"> rules are now checked to ensure all
edited variables are in the predefined set; otherwise, the resulting
cache files will not be stable.

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