Commit Graph

2240 Commits

Author SHA1 Message Date
Nicolas Mailhot 9c46ef4aac Use an URN for DTD ID
XML tools interpret “fonts.dtd” as a relative path.

Unfortunately, that can not work now that the configuration is spread over
multiple system-dependant directories, without a common relative path to this
file. And, an absolute path can not be defined in a system-independant way.
System independance is a requirement to share config files between systems.

Therefore, replace the broken relative path by a formal URN, that will work the
same way on all systems, without network access.

This makes the DTD registerable with commands like:
$ xmlcatalog --noout --add system \
                           "urn:fontconfig:fonts.dtd" \
                           "file:///usr/share/xml/fontconfig/fonts.dtd" \
                           /etc/xml/catalog

That enables easy config file checking:
$ xmllint --loaddtd ${config_file} >/dev/null
2020-03-28 15:01:35 +01:00
Akira TAGOH 6f6b397802 Fix assertion in FcCacheFini() again
The previous fix in fbc05949ef was wrong. reverting.

When reading older caches, FcDirCacheMapHelper() returns FcFalse and
it became the return value from FcDirCacheProcess() too, which is wrong.
Actually one of calls for FcDirCacheMapHelper() should be successfully
finished and closure should have a valid pointer for cache.

Due to this, the proper finalization process wasn't running against
cache in closure.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/227
2020-03-23 14:08:55 +09:00
Nirbheek Chauhan 6def66164a fcatomic: Fix EXC_BAD_ACCESS on iOS ARM64
iPhone 2.1 was released a long time ago, and the macro for checking
the target iOS SDK version has changed. We can simplify everything and
do a very basic check.
2020-03-19 18:44:36 +09:00
Akira TAGOH d3bfbea7dc Set exact boolean value to color property
This is a regression since 48e9e5f4
2020-02-27 14:25:10 +09:00
Akira TAGOH fbc05949ef Fix assertion in FcFini()
Due to the unproper initialization of `latest_mtime', the duplicate caches
was still in fcCacheChains with no references. which means no one frees
them. thus, the memory leak was happened.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/227
2020-02-26 15:42:21 +09:00
Akira TAGOH 61573ad5f7 Fix memory leaks 2020-02-19 17:05:20 +09:00
Akira TAGOH 71d6866d38 Fix the process substitution doesn't work with FONTCONFIG_FILE
Don't address the real filename when a named pipe is given in FONTCONFIG_FILE.
2020-02-19 14:02:31 +09:00
Akira TAGOH 452be8125f Add proper fullname for named-instances
Try to build a fullname from a family and a style name for a named-instance.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/185
2019-12-09 20:13:38 +09:00
Akira TAGOH 8bddcb1137 Fix a test fail when no bwrap was available
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/201
2019-12-05 19:55:06 +09:00
Akira TAGOH 8249f871b3 Don't add a value for FC_FULLNAME in meta face
FC_FULLNAME is affected by variables and could be different
against it. FC_FULLNAME should be dropped from meta face.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/185
2019-11-28 18:08:07 +09:00
Jan Tojnar a4aa66a858 Correct reset-dirs in DTD
Empty elements need to be declared as such in well-formed DTDs.
2019-11-20 02:13:58 +00:00
Akira TAGOH 23ab038281 Fix gcc warnings with -Wpointer-sign
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/184
2019-11-06 20:28:58 +09:00
Akira TAGOH aa8c8cfa9f Fix potential race condition in FcConfigSetCurrent and FcConfigReference 2019-11-06 14:21:34 +09:00
Akira TAGOH b5bcf61fe7 Use FcConfigReference/Destroy appropriately instead of FcConfigGetCurrent
This may improves to be MT-safe.

Reported at https://bugs.chromium.org/p/chromium/issues/detail?id=1004254
2019-11-01 14:44:47 +09:00
Akira TAGOH a45fc8a332 Fix a memory leak caused by the previous commit 2019-10-31 16:15:25 +09:00
Akira TAGOH c9862b6ea7 Read latest cache in paths
Right now fontconfig uses a cache found first in a path and
cachedirs are the order of the system-wide path and then the user path.
this is due to avoid writing caches into the user path when running as root.

However, changing caches by certain config only, e.g. using <match target="scan">
may not take effect by this behavior, because it may be stored into the user path.

Thus, needing to find the latest cache out from paths.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/182
2019-10-28 17:15:07 +09:00
Akira TAGOH cd51cb241a Take effect sysroot functionality to the default config file
When loading the default config file with FONTCONFIG_SYSROOT,
it fails if no /etc/fonts/fonts.conf is available, even if it is
there where is based on sysroot.

To address this, FcConfig is required to determine the sysroot.
therefore, this change makes FcConfigFilename() deprecated,
use FcConfigGetFilename() instead.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/181
2019-10-21 20:46:09 +09:00
Akira TAGOH 75eadca266 Warn as well if no directory name for cachedir provided
cachedir is used to determine where cache files are stored.
the empty directory will ends up to put them under the top of
directory of XDG_CACHE_HOME. that messes it up and must be avoided.

As a note, if you want to read/write something from the top of
XDG_DATA_HOME (dir) and/or XDG_CACHE_HOME (cachedir),
put "." instead of the empty.

https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/180
2019-10-08 20:12:12 +09:00
Jan Tojnar 65087ac7ce
conf: Add JoyPixels emoji font
It is a successor of EmojiOne.

https://www.joypixels.com/
2019-08-29 12:51:43 +02:00
Akira TAGOH fcada52291 Do not return FcFalse from FcConfigParseAndLoad*() if complain is set to false
https://bugzilla.redhat.com/show_bug.cgi?id=1744377
2019-08-28 17:48:29 +09:00
Szunti 7172f08d42 Add missing return type for FcFontSet* functions 2019-08-21 11:45:23 +02:00
Akira TAGOH cb1036a7c7 Affect FC_FONT_HAS_HINT property to score on matcher 2019-08-09 12:22:59 +00:00
Akira TAGOH 505c7c46a5 Improve the performance a bit
This change reduces the call cost of strcmp 1.5 % less.
2019-08-07 12:39:14 +00:00
Akira TAGOH 01e4f088bf Fix the fails of make check when SOURCE_DATE_EPOCH is set
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/172
2019-07-31 13:18:51 +00:00
Akira TAGOH 8c44becd45 Fix failing the check of prep table in some fonts 2019-07-30 11:06:19 +00:00
Akira TAGOH 80047ed8e8 Add FC_FONT_HAS_HINT property to see if font has hinting or not.
This may helps to enable autohint only when font doesn't have any hinting
2019-07-29 10:19:26 +00:00
Akira TAGOH f555f50a20 Add 35-lang-normalize.conf
This avoids a situation where the score of lang becomes lower or equal to others
and then figures out the best font according to other properties and the order
of family names.

This typically happens only when our orthography files are the subset of lang
in patterns. i.e. fc-match :lang=en-us to match on en.orth.
In this case, the score is lower than the exact match (en to en) and the partial
match (en to en-us). thus, the result of 'fc-match :lang=en-us' isn't necessarily
same to 'fc-match :lang=en'.

So 35-lang-normalize.conf contains languages only which is available as orth
without countries and tries to update properties to match on orth exactly like:

  <match>
    <test name="lang" compare="contains">
      <string>en</string>
    </test>
    <edit name="lang" mode="assign" binding="same">
      <string>en</string>
    </edit>
  </match>

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/155
2019-07-26 07:42:36 +00:00
Akira TAGOH e2f9f28aed Fix a memory leak in FcFreeTypeQuery*()
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/170
2019-07-26 04:59:54 +00:00
Akira TAGOH 1a0391c099 Fix memory leaks 2019-07-23 10:54:36 +00:00
Akira TAGOH 957625bafa Fix the fail on fc-cache
Fallback code to UUID-based cache name was broken.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/169
2019-07-23 10:53:16 +00:00
Akira TAGOH dce6ed92f2 Add docs for missing properties 2019-07-23 07:00:43 +00:00
Akira TAGOH e261e31731 Clean up temporary directory for tests 2019-07-23 04:18:59 +00:00
Akira TAGOH 36f46ba720 FcConfigParseAndLoad*() should returns false on config errors
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/168

Reported by Lawrence D'Oliveiro
2019-07-22 05:35:21 +00:00
Akira TAGOH 2960391699 Add English name first into a cache
In some cases, non-English languages might appears first in current order.
and when having English name with non-English language ID like Google Noto CJK TC,
English name with English language ID will be dropped due to duplicate.

This fixes that issue.
2019-07-09 06:40:29 +00:00
Akira TAGOH a57f22bf6d Fix a typo 2019-07-09 05:54:32 +00:00
Akira TAGOH cb3e6ff4d7 Improve the performance a bit 2019-07-08 13:26:49 +00:00
Akira TAGOH 322131f433 Fix a crash when running with FC_DEBUG=256
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/167
2019-07-02 04:59:52 +00:00
Akira TAGOH 83840fd1fa Fix obtaining real path from pre-defined names for Win32
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/166
2019-06-26 15:28:41 +09:00
Akira TAGOH 189685365a Don't clean up pre-built docs if no docbook installed.
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/165
2019-06-21 09:56:03 +00:00
Egmont Koblinger f2d4291d12 Fix the linear interpolation during weight mapping
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/164
2019-06-19 11:55:06 +02:00
Akira TAGOH c0dc76268b Fix a typo on masking face id
Most of functionality should be moved to FcFreeTypeQueryAll()
for varfonts now though, if doing the same to FcFreeTypeQuery()
returns Null pattern because of inappropriate masking.

This might be not that big deal for varfonts support. but

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/162

Reported by Kevin Scott
2019-06-18 05:58:17 +00:00
Akira TAGOH a919700fbd Bump version to 2.13.91 2019-06-10 20:37:03 +09:00
Akira TAGOH 66b0af41b8 Fix endianness on generating MD5 cache name 2019-06-10 10:57:05 +00:00
Akira TAGOH f729bc63d8 Fix a typo in the description of FcWeightFromOpenTypeDouble 2019-06-06 10:50:31 +00:00
Akira TAGOH f40b203b3e Correct the comment for FC_LANG in fontconfig.h 2019-06-03 07:08:44 +00:00
Akira TAGOH c336b84718 fc-validate: returns an error code when missing some glyphs
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/154
2019-05-09 07:38:48 +00:00
Akira TAGOH a305e988b7 Update CaseFolding.txt to Unicode 12.1 2019-05-08 05:18:43 +00:00
Jon Turney fd2e155665
Only use test wrapper-script if host is MinGW
Currently it fails if the executable extension is .exe, but wine isn't
available (e.g. on Cygwin)

Possibly the check to use this wrapper should be even more restrictive
e.g. checking if cross-building and/or if wine is available.
2019-04-15 20:42:48 +01:00
Akira TAGOH d28681af2a Distribute archive in xz instead of bz2
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/151
2019-04-15 09:03:57 +00:00
Akira TAGOH faa11fb642 Update the test case that is looking for uuid based on host 2019-04-04 12:14:20 +00:00