Commit Graph

1918 Commits

Author SHA1 Message Date
Behdad Esfahbod 355ed50b18 Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361) 2009-02-13 16:54:00 -08:00
Behdad Esfahbod 799691c901 Don't leak FcValues string loaded through fcxml.c (#17661)
Patch from Caolan McNamara.
2009-02-13 16:54:00 -08:00
Chris Wilson 311da2316f 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
2009-02-13 16:54:00 -08:00
Behdad Esfahbod 8072f4b130 Document how to free return value of FcNameUnparse() 2009-02-13 16:54:00 -08:00
Behdad Esfahbod 241fbde1ab Add FcConfigReference() (#17124) 2009-02-13 16:53:59 -08:00
Behdad Esfahbod 03dcaaa08f 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).
2009-02-13 16:53:59 -08:00
Behdad Esfahbod 1439c8f21a 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.
2009-02-13 16:53:59 -08:00
Behdad Esfahbod df243f93be Add WenQuanYi fonts to default conf (#17262, from Mandriva) 2009-02-13 16:53:58 -08:00
Behdad Esfahbod f31d8b1b1a Add Sindhi .orth file. (#17140) 2009-02-13 16:53:58 -08:00
Behdad Esfahbod b9f18922f1 Update sr.orth to actul subset of Cyrillic used by Serbian (#17208) 2009-02-13 16:53:57 -08:00
Behdad Esfahbod 74e16ceeea 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.
2009-02-13 16:53:57 -08:00
Behdad Esfahbod bb65f58f63 [doc] Fix signature of FcConfigHome()
We should write a test to automatically cross-check signatures
from public headers to docs.
2009-02-13 16:53:57 -08:00
Behdad Esfahbod e690fbb20e Get rid of $Id$ tags 2009-02-13 16:53:57 -08:00
Behdad Esfahbod 3042050954 [doc] Document that a zero rescanInterval disables automatic checks (#17103) 2009-02-13 16:53:57 -08:00
Behdad Esfahbod 41fc0fe68d Add FcPatternFilter() (#13016) 2009-02-13 16:53:56 -08:00
Behdad Esfahbod e6f14d3c51 [doc] Add const decorator for FcPatternDuplicate() 2009-02-13 16:53:56 -08:00
Behdad Esfahbod 2987409853 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.
2009-02-13 16:53:56 -08:00
Behdad Esfahbod 77c0d8bce8 Add fc-query (#13019) 2009-02-13 16:53:56 -08:00
Behdad Esfahbod d5b6085c3e Update man pages 2009-02-13 16:53:56 -08:00
Behdad Esfahbod 88261bafff [fc-match] Fix list of getopt options in --help 2009-02-13 16:53:55 -08:00
Behdad Esfahbod 43291847c5 Add ~/.fonts.conf.d to default config (#17100) 2009-02-13 16:53:55 -08:00
Behdad Esfahbod 4f468454d8 Update Thai default families (#16223)
Patch from Theppitak Karoonboonyanan
2009-02-13 16:53:55 -08:00
Behdad Esfahbod 2e08e0f243 [doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272) 2009-02-13 16:53:55 -08:00
Behdad Esfahbod 317b849215 Replace RCS Id tags with the file name 2009-02-13 16:53:55 -08:00
Behdad Esfahbod aef608efed Add orth file for Maithili mai.orth (#15821) 2009-02-13 16:53:54 -08:00
Behdad Esfahbod 1bcf4ae5f2 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.
2009-02-13 16:53:54 -08:00
Behdad Esfahbod b21bea3731 [doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985) 2009-02-13 16:53:54 -08:00
Behdad Esfahbod e04afe83de Avoid C99ism in Win32 code (#16651) 2009-02-13 16:53:54 -08:00
Benjamin Close f7364e6273 Remove build manpage logfile if it exists 2009-02-12 10:23:40 +10:30
Peter 0e21b5a4d5 Make sure alias files are built first (bug 16464)
Signed-off-by: Keith Packard <keithp@keithp.com>
2008-06-22 09:22:04 -07:00
Keith Packard a93b4c2aab Bump version to 2.6.0 2008-05-31 19:24:35 -07:00
Keith Packard d0902ee086 Bump version to 2.5.93 2008-05-24 17:52:41 -07:00
Keith Packard 8ade236923 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.
2008-05-24 17:14:24 -07:00
Keith Packard 83c5c357ab 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.
2008-05-24 17:01:12 -07:00
Keith Packard e91e7efd7b Libs.private needs freetype libraries
To make static linking work, fontconfig.pc needs @FREETYPE_LIBS@ in
Libs.private.
2008-05-24 16:32:27 -07:00
Sayamindu Dasgupta ad3fc66791 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.
2008-05-24 16:15:27 -07:00
Evgeniy Stepanov b808204023 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?
2008-05-24 16:09:17 -07:00
Glen Low c6228a34b0 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)
2008-05-24 15:59:35 -07:00
Neskie Manuel 557f87f733 Add Secwepemctsin Orthography. Bug 15996. 2008-05-24 15:51:41 -07:00
Behdad Esfahbod a572f547fd Persian conf update. (bug 16066). 2008-05-24 15:48:00 -07:00
Alexey Khoroshilov 0faca4ff82 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.
2008-05-24 15:44:18 -07:00
Keith Packard 4dfb4aa1d4 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.
2008-05-05 08:30:44 -07:00
Keith Packard 8d0139b0e6 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.
2008-05-04 19:08:31 -07:00
Keith Packard 3a3f687b75 Add extended, caps, dunhill style mappings.
extended -> expanded.
caps, dunhill -> decorative
2008-05-04 01:27:42 -07:00
Keith Packard 13a14cbf56 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.
2008-05-04 01:26:40 -07:00
Keith Packard c6c9400d67 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.
2008-05-04 01:25:04 -07:00
Keith Packard d33d23ada0 Bump version to 2.5.92 2008-05-03 20:39:07 -07:00
Keith Packard 366887c384 git ignore doltcompile 2008-05-03 20:38:29 -07:00
Keith Packard 0b15b5f38b Allow for RC versions in README update 2008-05-03 20:37:49 -07:00
Keith Packard 19d124dc4f 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.
2008-05-03 20:23:37 -07:00