Commit Graph

1129 Commits

Author SHA1 Message Date
Akira TAGOH 34b5c949d5 Do not mix up font dirs into the list of config dirs 2018-02-05 12:47:01 +09:00
Olivier Crête 5710377301 Fix cross-compilation by passing CPPFLAGS to CPP 2018-02-01 20:11:19 +09:00
Akira TAGOH ef748b39e0 Take effects on dir, cachedir, acceptfont, and rejectfont only when loading
Those elements takes effects immediately during parsing config files so makes them conditional to ignore on scanning.
2018-01-23 22:27:17 +09:00
Alexander Larsson 4ff7155f5c FcHashTableAddInternal: Compare against the right key
We were comparing the passed in key with the ready-to-insert key
rather than the key in the hashtable, so if you ever had a hash
conflicts we'll never insert the new item.

https://bugs.freedesktop.org/show_bug.cgi?id=101889
2018-01-14 15:33:00 +09:00
Behdad Esfahbod fd2ad1147a Fix undefined-behavior signed shifts 2018-01-09 11:03:31 +01:00
Behdad Esfahbod 94683a1255 Use FT_Done_MM_Var if available 2018-01-08 09:55:41 +00:00
Akira TAGOH 97488fd725 export GETTEXTDATADIR to refer the local .its/.loc file instead of using --its option 2018-01-06 18:55:00 +09:00
Behdad Esfahbod 030e2e4e94 Fix leak 2018-01-05 14:33:41 +00:00
Akira TAGOH a2e0ebf392 Add files to enable ITS support in gettext 2018-01-05 18:23:08 +09:00
Tom Anderson b8a225b3c3 Allow overriding symbol visibility.
Fontconfig symbols were hardcoded to be either hidden or exported.  This patch
adds configurable symbol visibility.  This is useful for projects that want to
do in-tree fontconfig builds and not export any symbols, otherwise they would
conflict with the system library's symbols

Chromium is a project that does in-tree fontconfig builds, and the workaround
currently used is "#define visibility(x) // nothing" [1] and building with
"-fvisibility=hidden".
[1] https://cs.chromium.org/chromium/src/third_party/fontconfig/BUILD.gn?rcl=ce146f1f300988c960e1eecf8a61b238d6fd7f7f&l=62
2018-01-04 15:24:16 +00:00
Behdad Esfahbod 37fb4a989e Support FC_WIDTH as double as well 2018-01-04 15:22:06 +00:00
Behdad Esfahbod 1fa9cb78c1 Remove hack for OS/2 weights 1..9 2018-01-04 15:22:06 +00:00
Akira TAGOH 3642d71724 Add FcReadLink to wrap up readlink impl. 2018-01-04 20:39:14 +09:00
Akira TAGOH 767e3aa7c5 Fix compiler warnings 2018-01-04 20:37:26 +09:00
Behdad Esfahbod 706535e107 Add FcWeightTo/FromOpenTypeDouble()
No idea why I didn't add these as double to begin with.
2018-01-03 15:59:56 +00:00
Akira TAGOH 97898b1158 Fix the mis-ordering of ruleset evaluation in a file with include element 2018-01-03 22:15:11 +09:00
Behdad Esfahbod f8e22fd646 Put back accidentally removed code 2017-12-20 12:21:20 -05:00
Behdad Esfahbod 6d1d44d5ec Let pattern FC_FONT_VARIATIONS override standard axis variations
Ie. flip the merge order.
2017-12-19 15:51:16 -05:00
Behdad Esfahbod 650b051a25 Set font-variations settings for standard axes in variable fonts
This is the last piece of the puzzle for variable-font support in
fontconfig.  This takes care of automatically setting the variation
settings when user requests a weight / width / size that has variation
in the matched font.
2017-12-19 15:04:25 -05:00
Behdad Esfahbod 57ff677b1b Remove a debug abort()
Ouch!
2017-12-18 22:18:03 -05:00
Akira TAGOH aa85a2b3b6 Try to get current instance of FcConfig as far as possible 2017-12-19 12:16:48 +09:00
Alexander Larsson 0b59a65a71 fchash: Fix replace
When we replace a bucket in the hashtable we have to update the
next pointer too, or we lose all the other elements that hashed to
this key.
2017-12-19 12:07:50 +09:00
Behdad Esfahbod 7ca28c2fed Don't crash
Not proper fix necessarily. But fixes this crash:
https://bugs.freedesktop.org/show_bug.cgi?id=101889#c81
2017-12-18 21:22:21 -05:00
Akira TAGOH e83f8777d5 Disable uuid related code on Win32 2017-12-18 21:45:13 +09:00
Akira TAGOH 182186e53a Do not update mtime with creating .uuid 2017-12-18 21:26:29 +09:00
Akira TAGOH 8ab4d67995 Replace uuid in the table properly when -r 2017-12-18 20:05:14 +09:00
Akira TAGOH 57eaf0ba7e Returns false if key is already available in the table 2017-12-18 16:41:04 +09:00
Akira TAGOH dd21876e64 Update .uuid only when -r is given but not -f. 2017-12-18 12:11:21 +09:00
Akira TAGOH 1b2279d6b5 thread-safe functions in fchash.c 2017-11-24 10:53:39 +05:30
Akira TAGOH abe91a1694 Use smaller prime for hash size 2017-11-20 17:37:23 +05:30
Akira TAGOH 2f486f6584 Don't call FcStat when the alias has already been added
Similar changes to 3a3d6ea applies to fclist and fcmatch.
2017-11-20 17:37:23 +05:30
Akira TAGOH 665a5d3044 Fix a typo 2017-11-20 17:37:23 +05:30
Akira TAGOH 6b82c70835 Fix memory leak 2017-11-20 17:37:22 +05:30
Akira TAGOH 8f88b1c47c abstract hash table functions 2017-11-20 17:37:22 +05:30
Akira TAGOH 68ff99c414 cleanup 2017-11-20 17:37:22 +05:30
Akira TAGOH b01bf646f1 Destroy the alias and UUID tables when all of caches is unloaded
When a cache contains no fonts, it will be unloaded immediately.
Previously the certain alias and UUID entries will be purged at that time though,
this doesn't work when the targeted directory has sub-directories.
To avoid the unnecessary cache creation with the md5-based naming, try to keep them
as far as possible.
Although this way seems not perfectly working if the first directory to look up is like that
2017-11-20 17:37:22 +05:30
Akira TAGOH d7133f4ed7 Don't call FcStat when the alias has already been added
We could assume that the targeted location is mapped at the different place
when there are in the alias table.
2017-11-20 17:37:22 +05:30
Akira TAGOH cf5acaed96 Replace the path of subdirs in caches as well 2017-11-20 17:37:22 +05:30
Akira TAGOH 6d3b306cbe Replace the original path to the new one 2017-11-20 17:37:22 +05:30
Akira TAGOH 6f226ad67e Replace the font path in FcPattern to what it is actually located. 2017-11-20 17:37:22 +05:30
Akira TAGOH 85d9de58ed Add new API to find out a font from current search path 2017-11-20 17:37:22 +05:30
Akira TAGOH 7b48fd3dd4 Use uuid-based cache filename if uuid is assigned to dirs 2017-11-20 17:37:22 +05:30
Akira TAGOH e73b5dcbf2 Correct debugging messages to load/scan config 2017-11-16 11:37:36 +09:00
Akira TAGOH 2ed243f323 Validate cache more carefully
Reject caches when FcPattern isn't a constant.
This is usually unlikely to happen but reported.
I've decided to add more validation since this isn't reproducible
and easy to have a workaround rather than investigating 'why'.

https://bugs.freedesktop.org/show_bug.cgi?id=103237
2017-11-14 20:55:24 +09:00
Akira TAGOH 9a0fcb948f Add the ruleset description support
Trying to address what these configuration files really do.
This change allows to see the short description that mention
the purpose of the content in the config file and obtain
them through API.

This change also encourage one who want to make some UI for
the user-specific configuration management. it is the main
purpose of this change for me though.

Aside from that, I've also made programs translatable. so
we see more dependencies on the build time for gettext,
and itstool to generate PO from xml.
2017-11-07 15:24:54 +09:00
Alexander Kanavin 90271ae079 src/fcxml.c: avoid double free() of filename
It's also freed after bail1, so no need to do it here.
2017-10-12 11:27:07 +09:00
Behdad Esfahbod f4a2a1e577 Remove assert 2017-10-11 17:27:02 +02:00
Akira TAGOH 9fde3461e3 Fix a compiler warning 2017-09-29 14:33:17 +09:00
Behdad Esfahbod f504b2d6a1 Require freetype >= 2.8.1
2.8.0 had a bad bug with loading 'avar' table.  Let's update requirement and cleanup
fifteen years of ifdefs!
2017-09-28 19:49:05 -04:00
Behdad Esfahbod 1580593ecc Merge branch 'varfonts2'
https://lists.freedesktop.org/archives/fontconfig/2017-September/006048.html
2017-09-28 14:52:41 -04:00