Commit Graph

1734 Commits

Author SHA1 Message Date
Akira TAGOH 96a3f6879c Improve the performance on searching blanks
After the change of d6a5cc665a
we have a lot of code points in FcBlanks. doing the linear search
on the array isn't comfortable anymore.
So re-implementing FcBlanksIsMember() to use the binary search.

Figuring out how much improved after this change depends on
how many fonts proceed with fc-cache say though, it's about 20 times
faster here on testing. which sounds good enough for
improvement.
2015-03-05 17:52:04 +09:00
Behdad Esfahbod d997d7c770 Simplify some more 2015-03-03 16:00:39 -08:00
Behdad Esfahbod 9c99baba66 Remove dead code after previous commit 2015-03-03 16:00:39 -08:00
Akira TAGOH 2f311c562d Fix the array allocation 2015-03-03 11:30:12 +09:00
Akira TAGOH f18f2f88f2 Don't add FC_LANG when it has "und"
to avoid the situation to find the better fallback font.

https://code.google.com/p/chromium/issues/detail?id=392724 has
more words to explain the details.

https://bugs.freedesktop.org/show_bug.cgi?id=81185
2015-03-02 11:35:42 +09:00
Akira TAGOH 724664e3fd Fix a build issue when $(srcdir) != $(builddir) 2015-03-02 11:34:53 +09:00
Akira TAGOH a9d4dba749 Update the script to recognize the escaped space 2015-02-27 15:48:54 +09:00
Akira TAGOH d6a5cc665a Hardcode the blanks in the library
https://bugs.freedesktop.org/show_bug.cgi?id=79956
2015-02-27 14:18:32 +09:00
Akira TAGOH 97cf7ec4d7 Rework again to copy the struct dirent
Assuming that d_name is the last member of struct dirent.
In POSIX, the maximum length of d_name is defined as NAME_MAX
or FILENAME_MAX though, that assumption may be wrong on some
platforms where defines d_name as the flexible array member
and allocate the minimum memory to store d_name.

Patch from Raimund Steger
2015-02-27 12:04:44 +09:00
Michael Haubenwallner 1add10bfbc Ensure config.h is included first, bug#89336.
config.h may define ABI-specific macros, especially for AIX,
so has to be included before any system header - via fcint.h.

https://bugs.freedesktop.org/show_bug.cgi?id=89336
2015-02-26 21:06:16 +09:00
Akira TAGOH 8809d1b73b Copy the real size of struct dirent
In some platforms, d_name is defined as the flexible array member.
We may need to compute the real size for that case.
2015-02-26 14:09:33 +09:00
Akira TAGOH dd427253cc filter can be null 2015-02-25 17:36:50 +09:00
Akira TAGOH 45018e6979 Fix pointer cast warning on win32 2015-02-24 15:25:16 +09:00
Akira TAGOH f43c58189b ifdef'd the unnecessary code for win32 2015-02-24 15:01:14 +09:00
Akira TAGOH ed0d705e22 Fix a build fail on some non-POSIX platforms
Use own scandir function. according to this change,
we don't need -Werror things in configure anymore.
2015-02-23 15:21:08 +09:00
Behdad Esfahbod d6d5adeb79 Fix symbol cmap handling
A while back we removed Apple Roman encoding support.  This broke
symbol fonts (Wingdings, etc) because those fonts come with two
cmaps:

  1) platform=1,encoding=0, aka Apple Roman, which maps identity,
  2) platform=3,encoding=0, aka MS Symbol font

Now, the reason the Apple Roman removal "broke" these fonts is
obvious, and for the better: these fonts were mapping ASCII and
other Latin chars to symbols.

The reason the fonts didn't work anymore, however, is that we were
mishandling the MS symbol-font cmaps.  In their modern incarnation
they are like regular non-symbol-font cmap that map PUA codepoints
to symbols.  We want to expose those as such.  Hence, this change
just removes the special-handling for that.

Now, the reason this confusion happened, if I was to guess, is either
that FreeType docs are wrong saying that FT_ENCODING_MS_SYMBOL is
the "Microsoft Symbol encoding, used to encode mathematical symbols":

  http://www.kostis.net/charsets/symbol.htm

or maybe it started that way, but turned into also mapping MS symbol-
font cmaps, which is a completely different thing.  At any rate, I
don't know if there are any fonts that use this thing these days, but
the code here didn't seem to produce charset for any font.  By now I'm
convinced that this change is the Right Thing to do.  The MS Symbol
thing was called AdobeSymbol in our code by the way.

This fixes the much-reported bug that windings, etc are not usable
with recent fontconfig:
https://bugs.freedesktop.org/show_bug.cgi?id=58641

Now I see PUA mappings reported for Wingdings.

This also fixes:
Bug 48947 - Drop the non-Unicode cmap support gradually
https://bugs.freedesktop.org/show_bug.cgi?id=48947
since the AdobeSymbol was the last non-Unicode cmap we were
trying to parse (very incorrectly).

Lots of code around this change can be simplified.  I'll push those
out (including removing the table itself) in subsequent changes.
2015-01-21 14:13:36 -08:00
Akira TAGOH eb5e89f817 Add pkg.m4 to git 2015-01-20 20:34:47 +09:00
Akira TAGOH 78ed920e2b Fix a typo in docs 2015-01-19 19:48:50 +09:00
Alan Coopersmith 694368667a Fix configure to work with Solaris Studio compilers
Passing -Werror in the scandir() checks caused Studio cc to report
"Unrecognized option errors", confusing configure into thinking that
scandir() was not available.   Use Studio equivalent flags instead.

Leaves -Werror as the default for all other compilers, including
unknown ones, to flag to them that they need to update their flags
as well if -Werror is not correct for them.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2015-01-19 13:47:47 +09:00
Akira TAGOH 4d739d13f4 Bump version to 2.11.92 2015-01-13 12:40:40 +09:00
Akira TAGOH 4c60fabf66 Add missing docs 2015-01-06 16:37:18 +09:00
Akira TAGOH fff4086e15 Bump version to 2.11.91 2014-12-25 13:49:25 +09:00
Akira TAGOH 4420b27c07 Fix a typo
missing a terminator caused a document generation fail.
2014-12-25 13:48:57 +09:00
Akira TAGOH 365809938e Bump the cache version to 5
FcPattern isn't compatible to the older.
2014-12-25 13:11:21 +09:00
Akira TAGOH 456937cd15 fc-cache: Add an option to raise an error if no fonts found
and get back the behavior.
2014-12-24 18:53:41 +09:00
Akira TAGOH db64c71408 fc-cache: make a fail if no fonts processed on a given path 2014-12-16 20:43:02 +09:00
Nick Alcock af58644194 Generate documentation for FcWeight* functions.
The SGML for these functions exists, and they are named as manpages,
but because they are not mentioned in fontconfig-devel.sgml, no
documentation is ever generated, and installation under --enable-docs
fails.

(The documentation I have written in fontconfig-devel.sgml is boilerplate
so I can get the manpages generated. It's probably wrong.)
2014-12-15 19:22:07 +09:00
Behdad Esfahbod 66db69a6d9 Treat color fonts as scalable
All color fonts are designed to be scaled, even if they only have
bitmap strikes.  Client is responsible to scale the bitmaps.  This
is in constrast to non-color strikes...

Clients can still use FC_OUTLINE to distinguish bitmap vs outline
fonts.  Previously FC_OUTLINE and FC_SCALABLE always had the same
value.  Now FC_SCALABLE is set to (FC_OUTLINE || FC_COLOR).

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=87122
2014-12-14 13:57:24 -08:00
Behdad Esfahbod dbc7c4a2cf Add FC_COLOR
Only adds "color" to pattern if FreeType version supports color.

Based on patch from Jungshik Shin.
2014-12-14 13:40:02 -08:00
Behdad Esfahbod fc7e1a9497 Fix buffer overflow in copying PS name
As reported on the mailing list by Tanel Liiv.  Found using American Fuzzy Lop.
2014-12-12 21:42:35 -08:00
Akira TAGOH 32ac7c75e8 Returns False if no fonts found
https://bugs.freedesktop.org/show_bug.cgi?id=86950
2014-12-09 19:06:46 +09:00
Akira TAGOH b732bf057f Update aliases for new URW fonts
Patch from Tom Yan

https://bugs.freedesktop.org/show_bug.cgi?id=85225
2014-11-06 13:15:09 +09:00
Akira TAGOH e7121de237 Revert "Bug 73291 - poppler does not show fl ligature"
This reverts commit c6aa4d4bfc.

This issue has been fixed in poppler and we no longer need to patch it out in fontconfig.
2014-10-03 12:26:42 +09:00
Akira TAGOH 1082161ea3 Add FcRangeGetDouble()
https://bugs.freedesktop.org/show_bug.cgi?id=82876
2014-09-25 17:03:27 +09:00
Behdad Esfahbod 286cdc9c10 Revert "[fcmatch] When matching, reserve score 0 for when elements don't exist"
This reverts commit a5a384c5ff.

I don't remember what I had in mind for "We will use this property later.", but
the change was wrong.  If a font pattern doesn't have any value for element,
it must be interpretted as "it matches any value perfectly.  And "perfectly"
must have a score of 0 for that to happen.

This was actually affecting bitmap fonts (in a bad way), as the change made
an outline font to always be preferred over a (otherwise equal) bitmap font,
even for the exact size of the bitmap font.  That probably was never noticed
by anyone, but with the font range support this has become clear (and worked
around by Akira).  To clean that up, I'm reverting this so I can land the
rest of patches for bug 80873.

https://bugs.freedesktop.org/show_bug.cgi?id=80873#c10
2014-08-20 15:23:04 -04:00
Akira TAGOH f094539687 Note FcConfigSetCurrent() increases the refcount in document 2014-08-13 11:39:29 +09:00
Akira TAGOH eb2689c67b Fix the memory leak in fc-cat 2014-08-12 18:53:04 +09:00
Akira TAGOH 23e88d8c6a Increase the refcount in FcConfigSetCurrent()
https://bugs.freedesktop.org/show_bug.cgi?id=82432
2014-08-12 18:48:00 +09:00
Akira TAGOH 841753a93f fallback to the another method to lock when link() failed
Bug 82358 - FcAtomicLock fails on OS X on network mounts
https://bugs.freedesktop.org/show_bug.cgi?id=82358
2014-08-11 12:14:54 +09:00
Behdad Esfahbod 748a2ce9d4 Fix previous commit
Ouch!
2014-08-06 14:45:02 -04:00
Behdad Esfahbod 3d2627bba6 Trebuchet MS is a sans-serif font, not serif
https://bugs.freedesktop.org/show_bug.cgi?id=82099
2014-08-06 14:28:18 -04:00
Behdad Esfahbod 80edaccc3c If OS/2 table says weight is 1 to 9, multiply by 100
https://bugs.freedesktop.org/show_bug.cgi?id=82228
2014-08-06 12:29:35 -04:00
Behdad Esfahbod 01bb6978b6 Fix assertion failure
https://bugs.freedesktop.org/show_bug.cgi?id=82220
https://bugs.freedesktop.org/show_bug.cgi?id=82228
2014-08-06 12:23:24 -04:00
Behdad Esfahbod 37e501ed0a Remove unneeded FcPublic 2014-07-27 16:53:28 -04:00
Behdad Esfahbod a9e7b0494e Export recently added API
We should remove this alias mess.
2014-07-26 16:17:02 -04:00
Behdad Esfahbod ffda7c0e81 Linearly interpolate weight values
Rest of Part of https://bugs.freedesktop.org/show_bug.cgi?id=81453

Adds new API:

	FcWeightFromOpenType()
	FcWeightToOpenType()
2014-07-25 18:07:59 -04:00
Behdad Esfahbod bf9df5ada7 Change DemiLight from 65 to 55
Such that Regular is closer to Medium than to DemiLight
2014-07-25 18:07:59 -04:00
Behdad Esfahbod be6506ca04 Add FC_WEIGHT_DEMILIGHT
Part of https://bugs.freedesktop.org/show_bug.cgi?id=81453
Also hooks up FC_WEIGHT_BOOK to fcfreetype.c.
2014-07-25 16:24:26 -04:00
Behdad Esfahbod 9839d0112c Improve / cleanup namelang matching
Previously, if the patten didn't request, eg, style, then the style
and stylelang were fully copied from the font, even though the pattern
had a stylelang.  Eg:

$ fc-match 'Apple Color Emoji:stylelang=en'
Apple Color Emoji.ttf: "Apple Color Emoji" "標準體"

This change both fixes that and makes the code much more readable.  Now:

$ fc-match 'Apple Color Emoji:stylelang=en'
Apple Color Emoji.ttf: "Apple Color Emoji" "Regular"
2014-07-24 16:07:13 -04:00
Behdad Esfahbod 874a549164 Remove unused regex code
Regex matching was disabled in f6244d2cf2
2014-07-24 15:42:54 -04:00