Behdad Esfahbod [Fri, 16 Jan 2009 00:12:27 +0000 (19:12 -0500)]
Oops, fix FcPatternFilter
Behdad Esfahbod [Thu, 15 Jan 2009 23:39:48 +0000 (18:39 -0500)]
Add fc-scan too that runs FcFileScan/FcDirScan
This is quite similar to fc-query, but calling FcFileScan/FcDirScan instead
of FcFreeTypeQuery.
Behdad Esfahbod [Thu, 15 Jan 2009 23:35:09 +0000 (18:35 -0500)]
Revive FcConfigScan() (bug #17121)
FcConfigScan() with parameters cache=NULL and force=FcTrue can be used
to scan font dirs without any caching side effect.
Behdad Esfahbod [Thu, 15 Jan 2009 22:34:26 +0000 (17:34 -0500)]
Oops. Fix usage output.
Behdad Esfahbod [Thu, 8 Jan 2009 08:04:34 +0000 (03:04 -0500)]
Don't use FcCharSetCopy in FcCharSetMerge
The Copy function is actually a ref, not real copy.
Behdad Esfahbod [Thu, 8 Jan 2009 01:15:20 +0000 (20:15 -0500)]
Make FcCharSetMerge() public
That's needed for apps to be abled to do pruning themselves without
the performance penalty of recreating new charsets all the time.
Behdad Esfahbod [Thu, 1 Jan 2009 21:29:01 +0000 (16:29 -0500)]
[doc] Note that fontset returned by FcConfigGetFonts should not be modified
Behdad Esfahbod [Thu, 1 Jan 2009 01:16:40 +0000 (20:16 -0500)]
[fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal()
Except for the final FcFontRenderPrepare(). This way we have more
flexibility to do caching in FcFontMatch() while leaving FcFontSetMatch()
intact.
Behdad Esfahbod [Thu, 1 Jan 2009 00:44:32 +0000 (19:44 -0500)]
[fcmatch] When matching, reserve score 0 for when elements don't exist
Previously an index j was added to element score to prefer matches earlier
in the value list to the later ones. This index started from 0, meaning
that the score zero could be generated for the first element. By starting
j from one, scores for when the element exists in both pattern and font
can never be zero. The score zero is reserved for when the element is
NOT available in both font and pattern. We will use this property later.
This shouldn't change matching much. The only difference I can think of
is that if a font family exists both as a bitmap font and a scalable
version, and when requesting it at the size of the bitmap version,
previously the font returned was nondeterministic. Now the scalable
version will always be preferred.
Behdad Esfahbod [Thu, 1 Jan 2009 00:35:27 +0000 (19:35 -0500)]
[fcmatch] Use larger multipliers to enforce order
Previously the matcher multiplied comparison results by 100 and added
index value to it. With long lists of families (lots of aliases),
reaching 100 is not that hard. That could result in a non-match early
in the list to be preferred over a match late in the list. Changing
the multiplier from 100 to 1000 should fix that.
To keep things relatively in order, the lang multiplier is changed
from 1000 to 10000.
Behdad Esfahbod [Wed, 31 Dec 2008 23:10:31 +0000 (18:10 -0500)]
[fcmatch.c] Fix debug formatting
Behdad Esfahbod [Wed, 31 Dec 2008 23:06:07 +0000 (18:06 -0500)]
Fix comparison of family names to ignore leading space properly
Previously fc-match "xxx,nazli" matched Nazli, but "xxx, nazli" didn't.
This was because of a bug in FcCompareFamily's short-circuit check
that forgot to ignore spaces.
Behdad Esfahbod [Tue, 30 Dec 2008 01:00:26 +0000 (20:00 -0500)]
Implement FcPatternFormat and use it in cmdline tools (bug #17107)
Still need to add more features, but the API is there, and used
by cmdline tools with -f or --format.
Behdad Esfahbod [Tue, 30 Dec 2008 00:27:00 +0000 (19:27 -0500)]
[.gitignore] Update
Behdad Esfahbod [Mon, 29 Dec 2008 23:58:29 +0000 (18:58 -0500)]
Remove special-casing of FC_FILE in FcPatternPrint()
I can't understand why the special case is needed. Indeed, removing it
does not make any difference in the "fc-match --verbose" output, and
that's the only time fc-match uses FcPatternPrint.
Behdad Esfahbod [Sun, 28 Dec 2008 21:54:44 +0000 (16:54 -0500)]
Explicitly chmod() directories (bug #18934)
Two changes:
- after mkdir(), we immediately chmod(), such that we are not affected
by stupid umask's.
- if a directory we want to use is not writable but exists, we try a
chmod on it. This is to recover from stupid umask's having affected
us with older versions.
Behdad Esfahbod [Sun, 28 Dec 2008 14:03:29 +0000 (09:03 -0500)]
Don't use identifier named complex
Behdad Esfahbod [Sun, 28 Dec 2008 13:06:07 +0000 (08:06 -0500)]
[65-fonts-persian.conf] Set foundry in target=scan instead of target=font
Harshula Jayasuriya [Sun, 28 Dec 2008 11:13:19 +0000 (06:13 -0500)]
Fix Sinhala coverage (bug #19288)
Alexey Khoroshilov [Sun, 28 Dec 2008 10:15:45 +0000 (05:15 -0500)]
Use human-readable file names in the docs (bug #16278)
Behdad Esfahbod [Sun, 28 Dec 2008 09:58:14 +0000 (04:58 -0500)]
Implement fc-list --quiet ala grep (bug #17141)
Exits 1 if no fonts matched, 0 otherwise.
Behdad Esfahbod [Sun, 28 Dec 2008 09:48:54 +0000 (04:48 -0500)]
Fix compile with old FreeType that doesn't have FT_Select_Size() (bug #17498)
Behdad Esfahbod [Sun, 28 Dec 2008 09:26:26 +0000 (04:26 -0500)]
Use __builtin_popcount() when available (bug #17592)
Rahul Bhalerao [Sun, 28 Dec 2008 09:10:53 +0000 (04:10 -0500)]
Add config for new Indic fonts (bug #17856)
Behdad Esfahbod [Sun, 28 Dec 2008 09:06:01 +0000 (04:06 -0500)]
Consistently use FcStat() over stat() in all places
Behdad Esfahbod [Sun, 28 Dec 2008 09:00:09 +0000 (04:00 -0500)]
[fccache] Consistently use FcStat() over stat() (bug #18195)
Behdad Esfahbod [Sun, 28 Dec 2008 08:40:21 +0000 (03:40 -0500)]
Cleanup symlinks in "make uninstall" (bug #18885)
Harald Fernengel [Sun, 28 Dec 2008 08:23:58 +0000 (03:23 -0500)]
Don't use variables named 'bool' (bug #18851)
Behdad Esfahbod [Sun, 28 Dec 2008 08:08:38 +0000 (03:08 -0500)]
[.gitignore] Update
Behdad Esfahbod [Tue, 2 Dec 2008 11:07:41 +0000 (06:07 -0500)]
Fix two more doc typos
Behdad Esfahbod [Mon, 22 Sep 2008 22:51:11 +0000 (18:51 -0400)]
Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361)
Behdad Esfahbod [Mon, 22 Sep 2008 22:16:30 +0000 (18:16 -0400)]
Don't leak FcValues string loaded through fcxml.c (#17661)
Patch from Caolan McNamara.
Chris Wilson [Wed, 23 Apr 2008 08:07:28 +0000 (09:07 +0100)]
Reduce number of allocations during FcSortWalk().
The current behaviour of FcSortWalk() is to create a new FcCharSet on
each iteration that is the union of the previous iteration with the next
FcCharSet in the font set. This causes the existing FcCharSet to be
reproduced in its entirety and then allocates fresh leaves for the new
FcCharSet. In essence the number of allocations is quadratic wrt the
number of fonts required.
By introducing a new method for merging a new FcCharSet with an existing
one we can change the behaviour to be effectively linear with the number
of fonts - allocating no more leaves than necessary to cover all the
fonts in the set.
For example, profiling 'gedit UTF-8-demo.txt'
Allocator nAllocs nBytes
Before:
FcCharSetFindLeafCreate 62886 2012352
FcCharSetPutLeaf 9361
11441108
After:
FcCharSetFindLeafCreate 1940 62080
FcCharSetPutLeaf 281 190336
The savings are even more significant for applications like firefox-3.0b5
which need to switch between large number of fonts.
Before:
FcCharSetFindLeafCreate 4461192
142758144
FcCharSetPutLeaf 1124536
451574172
After:
FcCharSetFindLeafCreate 80359 2571488
FcCharSetPutLeaf 18940 9720522
Out of interest, the next most frequent allocations are
FcPatternObjectAddWithBinding 526029
10520580
tt_face_load_eblc 42103 2529892
Behdad Esfahbod [Fri, 22 Aug 2008 22:25:22 +0000 (18:25 -0400)]
Document how to free return value of FcNameUnparse()
Behdad Esfahbod [Fri, 22 Aug 2008 22:08:07 +0000 (18:08 -0400)]
Add FcConfigReference() (#17124)
Behdad Esfahbod [Fri, 22 Aug 2008 21:49:02 +0000 (17:49 -0400)]
Document when config can be NULL (#17105)
Note that this also fixes a bug with FcFontList() where previously
it was NOT checking whether the config is up-to-date. May want to
keep the old behavior and document that ScanInterval is essentially
unused internally (FcFontSetList uses it, but we can remove that
too).
Behdad Esfahbod [Fri, 22 Aug 2008 20:51:33 +0000 (16:51 -0400)]
Handle -h and --help according to GNU Coding Standards (#17104)
Added -h instead of -?. And upon -h and --help, write usave to stdout
instead of stdin, and return 0 instead of 1.
-? still works like before as that's what getopt returns upon unknown
arguments.
Behdad Esfahbod [Fri, 22 Aug 2008 17:02:14 +0000 (13:02 -0400)]
Add WenQuanYi fonts to default conf (#17262, from Mandriva)
Behdad Esfahbod [Fri, 22 Aug 2008 07:51:57 +0000 (03:51 -0400)]
Add Sindhi .orth file. (#17140)
Behdad Esfahbod [Thu, 21 Aug 2008 21:17:04 +0000 (17:17 -0400)]
Update sr.orth to actul subset of Cyrillic used by Serbian (#17208)
Behdad Esfahbod [Thu, 14 Aug 2008 19:27:16 +0000 (15:27 -0400)]
Fix docs re 'orig' argument of FcPatternBuild and family
Now call it 'p' or 'pattern', since it's modified in place.
There is no copying.
Behdad Esfahbod [Wed, 13 Aug 2008 20:45:18 +0000 (16:45 -0400)]
[doc] Fix signature of FcConfigHome()
We should write a test to automatically cross-check signatures
from public headers to docs.
Behdad Esfahbod [Wed, 13 Aug 2008 07:30:23 +0000 (03:30 -0400)]
Get rid of $Id$ tags
Behdad Esfahbod [Wed, 13 Aug 2008 07:16:39 +0000 (03:16 -0400)]
[doc] Document that a zero rescanInterval disables automatic checks (#17103)
Behdad Esfahbod [Wed, 13 Aug 2008 06:50:35 +0000 (02:50 -0400)]
Add FcPatternFilter() (#13016)
Behdad Esfahbod [Wed, 13 Aug 2008 06:47:12 +0000 (02:47 -0400)]
[doc] Add const decorator for FcPatternDuplicate()
Behdad Esfahbod [Wed, 13 Aug 2008 06:24:42 +0000 (02:24 -0400)]
Implement fc-list --verbose (#13015)
A private FcObjectGetSet() is implemented that provides an
FcObjectSet of all registered elements. FcFontSetList() is
then modified to use the object set from FcObjectGetSet() if
provided object-set is NULL.
Alternatively FcObjectGetSet() can be made public. In that
case fc-list can use that as a base if --verbose is included,
and also add any elements provided by the user (though that has
no effect, as all elements from the cache are already registered).
Currently fc-list ignores user-provided elements if --verbose
is specified.
Behdad Esfahbod [Wed, 13 Aug 2008 05:31:18 +0000 (01:31 -0400)]
Add fc-query (#13019)
Behdad Esfahbod [Wed, 13 Aug 2008 04:42:12 +0000 (00:42 -0400)]
Update man pages
Behdad Esfahbod [Wed, 13 Aug 2008 03:44:44 +0000 (23:44 -0400)]
[fc-match] Fix list of getopt options in --help
Behdad Esfahbod [Tue, 12 Aug 2008 22:00:35 +0000 (18:00 -0400)]
Add ~/.fonts.conf.d to default config (#17100)
Behdad Esfahbod [Tue, 12 Aug 2008 21:54:45 +0000 (17:54 -0400)]
Update Thai default families (#16223)
Patch from Theppitak Karoonboonyanan
Behdad Esfahbod [Tue, 12 Aug 2008 21:52:02 +0000 (17:52 -0400)]
[doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272)
Behdad Esfahbod [Tue, 12 Aug 2008 20:34:24 +0000 (16:34 -0400)]
Replace RCS Id tags with the file name
Behdad Esfahbod [Tue, 12 Aug 2008 20:11:29 +0000 (16:11 -0400)]
Add orth file for Maithili mai.orth (#15821)
Behdad Esfahbod [Tue, 12 Aug 2008 19:10:04 +0000 (15:10 -0400)]
When canonizing filenames, squash // and remove final / (#bug 16286)
The fact that we now drop final slashes from all filenames without
checking that the file name represents a directory may surprise some,
but it doesn't bother me really.
Behdad Esfahbod [Tue, 12 Aug 2008 18:32:40 +0000 (14:32 -0400)]
[doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985)
Behdad Esfahbod [Tue, 12 Aug 2008 18:10:03 +0000 (14:10 -0400)]
Avoid C99ism in Win32 code (#16651)
Benjamin Close [Wed, 11 Feb 2009 23:53:40 +0000 (10:23 +1030)]
Remove build manpage logfile if it exists
Peter [Sun, 22 Jun 2008 16:21:05 +0000 (09:21 -0700)]
Make sure alias files are built first (bug 16464)
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 1 Jun 2008 02:24:35 +0000 (19:24 -0700)]
Bump version to 2.6.0
Keith Packard [Sun, 25 May 2008 00:52:41 +0000 (17:52 -0700)]
Bump version to 2.5.93
Keith Packard [Sun, 25 May 2008 00:14:24 +0000 (17:14 -0700)]
Ignore empty <dir></dir> elements
An empty element would cause every file starting with the current
directory to be scanned, probably not what the user wanted.
Keith Packard [Sun, 25 May 2008 00:01:12 +0000 (17:01 -0700)]
Oops. Fix for bug 15928 used wrong path for installed fc-cache.
fc-cache lives in $(bindir)/fc-cache, not $(bindir)/fc-cache/fc-cache.
Keith Packard [Sat, 24 May 2008 23:32:27 +0000 (16:32 -0700)]
Libs.private needs freetype libraries
To make static linking work, fontconfig.pc needs @FREETYPE_LIBS@ in
Libs.private.
Sayamindu Dasgupta [Sat, 24 May 2008 23:15:27 +0000 (16:15 -0700)]
FcConfigUptoDate breaks if directory mtime is in the future. Bug 14424.
At OLPC, we came across a bug where the Browse activity (based on xulrunner)
took 100% CPU after an upgrade/. It turns out the Mozilla uses
FcConfigUptoDate() to check if new fonts have been added to the system, and
this function was always returning FcFalse since we have the mtimes of some
font directories set in the future. The attached patch makes
FcConfigUptoDate() print a warning and return FcTrue if mtime of directories
are in the future.
Evgeniy Stepanov [Sat, 24 May 2008 23:09:17 +0000 (16:09 -0700)]
Fix index/offset for 'decorative' matcher. Bug 15890.
It seems indices in _FcMatchers array are slightly mixed up, MATCH_DECORATIVE
should be 10, not 11.
And MATCH_RASTERIZER_INDEX should be 13, not 12, right?
Glen Low [Sat, 24 May 2008 22:59:35 +0000 (15:59 -0700)]
Fix Win32 build error: install tries to run fc-cache locally (bug 15928).
When building in Win32 e.g. with MinGW, the install tries to run fc-cache
locally but the required DLL's are not in the path. I've included a patch for
this to fix Makefile.in to run fc-cache from bindir but obviously this should
be applied to Makefile.am instead.
(the second part of this patch was already in the tree)
Neskie Manuel [Sat, 24 May 2008 22:51:41 +0000 (15:51 -0700)]
Add Secwepemctsin Orthography. Bug 15996.
Behdad Esfahbod [Sat, 24 May 2008 22:48:00 +0000 (15:48 -0700)]
Persian conf update. (bug 16066).
Alexey Khoroshilov [Sat, 24 May 2008 22:44:00 +0000 (15:44 -0700)]
Fix FcStrDirname documentation. (bug 16068)
Description of FcStrDirname is absent in the official documentation of
fontconfig-2.5.92. At the same time the source documentation contains
description of the function.
The problem is a consequence of a misprint in the format of the source
documentation file 'fcstring.fncs'. The finish mark of description of the
previous function is absent.
Keith Packard [Mon, 5 May 2008 15:30:44 +0000 (08:30 -0700)]
Add a copy of dolt.m4 to acinclude.m4.
An ancient version of dolt.m4 was installed on my system leading to a broken
build on non-Linux systems.
Keith Packard [Mon, 5 May 2008 02:08:31 +0000 (19:08 -0700)]
Freetype 2.3.5 (2007-jul-02) fixes indic font hinting. re-enable (bug 15822)
Autohinting for Indic fonts has been disabled since freetype could not handle
it properly. But since freetype-2.3.5, the hinting problems for indic fonts
have been fixed. Thus this is a request to enable the autohinting in
fontconfig again for all the indic fonts.
Keith Packard [Sun, 4 May 2008 08:27:42 +0000 (01:27 -0700)]
Add extended, caps, dunhill style mappings.
extended -> expanded.
caps, dunhill -> decorative
Keith Packard [Sun, 4 May 2008 08:26:40 +0000 (01:26 -0700)]
Fix a few memory tracking mistakes.
The built-in memory tracking code in fontconfig relies on a lot of manual
function call tracking. A pain, but it helps debug leaks.
Keith Packard [Sun, 4 May 2008 08:25:04 +0000 (01:25 -0700)]
Call FcFini to make memory debugging easier
FcFini frees all libary data structures so valgrind should report 0
allocations in use when the program exits.
Keith Packard [Sun, 4 May 2008 03:39:07 +0000 (20:39 -0700)]
Bump version to 2.5.92
Keith Packard [Sun, 4 May 2008 03:38:29 +0000 (20:38 -0700)]
git ignore doltcompile
Keith Packard [Sun, 4 May 2008 03:37:49 +0000 (20:37 -0700)]
Allow for RC versions in README update
Keith Packard [Sun, 4 May 2008 03:23:37 +0000 (20:23 -0700)]
Deal with libtool 2.2 which doesn't let us use LT_ variables. (bug 15692)
Libtool-2.2 introduces new restrictions. So now it does not allow LT_*
variables as it includes marcros:
m4_pattern_forbid([^_?LT_[A-Z_]+$])
Rename the LT_ variables to LIBT_ to work around this restriction.
Carlo Bramini [Sun, 4 May 2008 03:17:16 +0000 (20:17 -0700)]
Add FreeType-dependent functions to fontconfig.def file. (bug 15415)
With PUBLIC_FILES no longer containing the freetype-dependent symbols, those
must be added to the fontconfig.def file build process.
Keith Packard [Sun, 4 May 2008 03:14:07 +0000 (20:14 -0700)]
Make fc-match behave better when style is unknown (bug 15332)
Keith Packard [Sun, 4 May 2008 03:07:35 +0000 (20:07 -0700)]
Use of ":=" in src/Makefile.am is unportable (bug 14420)
Building 2.5.91 on Solaris with the native make(1) yields
...
Making all in src
make: Fatal error in reader: Makefile, line 313: Unexpected end of line seen
Current working directory /tmp/fontconfig-2.5.91/src
*** Error code 1
This is due to the following line (src/Makefile.am:143):
CLEANFILES := $(ALIAS_FILES)
Changing that to a standard assignment ("=") fixes the problem.
I believe the ":=" is a typo. ALIAS_FILES is just a statically assigned
variable; it's not like evaluating it more than once would be a problem.
Keith Packard [Sun, 4 May 2008 03:06:48 +0000 (20:06 -0700)]
Remove doltcompile in distclean
Ryan Schmidt [Sun, 4 May 2008 02:49:07 +0000 (19:49 -0700)]
fontconfig build fails if "head" is missing or unusable (bug 14304)
If the /usr/bin/head program is missing or unusable, or if an unusable head
program is listed first in the PATH, fontconfig fails to build
using "sed -n 1p" instead of "head -1" would be a suitable workaround.
Dennis Schridde [Sun, 4 May 2008 02:45:31 +0000 (19:45 -0700)]
Proper config path for static libraries in win32
Since fontconfig didn't have special handling for paths in static Windows
libraries, I've created a patch which should fix this.
Basically it does this:
fccfg.c:
If fontconfig_path was uninitialised it tries to get the directory the exe is
in and uses a fonts/ dir inside that.
fcxml.c:
In case the fonts.conf lists a <dir>CUSTOMFONTDIR</dir>, it searches for a
fonts/ directory where the exe is located.
Changwoo Ryu [Sun, 4 May 2008 02:39:56 +0000 (19:39 -0700)]
Korean font in the default config - replacing baekmuk with un (bug 13569)
I propose to replace the default Baekmuk Korean fonts with Un fonts.
Some people don't agree but most Korean people prefer Un fonts to Baekmuk
ones. Un fonts just look better, at least in the most common Linux desktops
(antialiased, GNOME or KDE, high resolution).
Sylvain Pasche [Sun, 4 May 2008 02:33:45 +0000 (19:33 -0700)]
Fontconfig options for freetype sub-pixel filter configuration
David Turner has modified FreeType to be able to render sub-pixel decimated
glyphs using different methods of filtering. Fontconfig needs new
configurables to support selecting these new filtering options. A patch
follows that would correspond to one available for Cairo in bug 10301.
Frederic Crozat [Sun, 4 May 2008 02:26:09 +0000 (19:26 -0700)]
Merge some of Mandriva configuration into upstream configuration. Bug 13247
This is merging some parts of Mandriva fontconfig changes, mostly adding and
documenting fonts to common aliases.
Keith Packard [Sun, 4 May 2008 02:09:57 +0000 (19:09 -0700)]
Add --all flag to fc-match to show the untrimmed list. Bug 13018.
Keith Packard [Sun, 4 May 2008 01:04:32 +0000 (18:04 -0700)]
Add some sample cursive and fantasy families.
Keith Packard [Sun, 4 May 2008 00:43:39 +0000 (17:43 -0700)]
Remove size and dpi values from bitmap fonts. Bug 8765.
The only relevant information is the pixel size; don't report anything else.
Keith Packard [Sun, 4 May 2008 00:19:43 +0000 (17:19 -0700)]
Work around for bitmap-only TrueType fonts that are missing the glyf table.
Bitmap-only TrueType fonts without a glyf table will not load a glyph when
FT_LOAD_NO_SCALE is set. Work around this by identifying TrueType fonts that have no
glyphs and select a single strike to measure the glyph map with.
Keith Packard [Sun, 4 May 2008 00:18:01 +0000 (17:18 -0700)]
Use DOLT if available
Eric Anholt [Fri, 18 Apr 2008 18:52:41 +0000 (11:52 -0700)]
Fix build with !ENABLE_DOCS and no built manpages.
Keith Packard [Thu, 10 Jan 2008 18:58:25 +0000 (10:58 -0800)]
Bump version to 2.5.91
Keith Packard [Thu, 10 Jan 2008 18:58:22 +0000 (10:58 -0800)]
git-tag requires space after -m flag
Keith Packard [Thu, 10 Jan 2008 18:56:52 +0000 (10:56 -0800)]
new-version.sh was mis-editing files
Keith Packard [Thu, 10 Jan 2008 18:48:00 +0000 (10:48 -0800)]
Add more files to .gitignore
Keith Packard [Thu, 10 Jan 2008 18:43:33 +0000 (10:43 -0800)]
Distribute khmer font aliases