- Oct 02, 2020
-
-
Chun-wei Fan authored
Some systems build FreeType using CMake rather than autotools (such as Visual Studio), which will give us CMake config files rather than pkg-config files, so if we can't find FreeType using pkg-config, try again using CMake. Please note that according to FreeType's docs/VERSIONS.TXT, the version we want when checking with CMake is 2.8.1 or later.
-
- Sep 29, 2020
-
-
Akira TAGOH authored
Add missing copyright notice. Fixes fontconfig/fontconfig#219
-
Akira TAGOH authored
to show up easier in COPYING. it was originally merged from separate file by 2e2121f9 though.
-
- Sep 21, 2020
-
-
Akira TAGOH authored
-
Akira TAGOH authored
This makes sure that fullname can be constructed at least even if a style is missing and "Regular" is omitted for fullname so this change won't affect in that case. Fixes fontconfig/fontconfig#259
-
- Sep 16, 2020
-
-
Akira TAGOH authored
-
Akira TAGOH authored
So user's changes in family and style will be reflected into fullname.
-
Akira TAGOH authored
OpenType spec says that the Regular descriptor would generally be omitted from fullname. but some fonts doesn't follow on it. So decided to construct a fullname from family and style instead of relying on the meta data in a font. Fixes fontconfig/fontconfig#208
-
- Sep 15, 2020
-
-
Akira TAGOH authored
and fix scanning to get things work with sysroot Fixes fontconfig/fontconfig#225
-
Akira TAGOH authored
-
- Sep 03, 2020
-
-
Akira TAGOH authored
COPYING is missing non-expat license terms for some files and some files is also missing license terms. This is changes to makes it clearer and update. Fixes fontconfig/fontconfig#219
-
- Aug 30, 2020
-
-
Matthias Clasen authored
We were using the family names from the pattern without copying, and this was leading to a valgrind warning: ==53167== Invalid read of size 1 ==53167== at 0x58B0238: FcStrCaseWalkerNextNonBlank (fcstr.c:198) ==53167== by 0x58B0238: FcStrCaseWalkerNextNonBlank (fcstr.c:186) ==53167== by 0x58B02C7: FcStrCmpIgnoreBlanksAndCase (fcstr.c:281) ==53167== by 0x58A4D44: FcHashTableFind (fchash.c:109) ==53167== by 0x5895E76: FamilyTableAdd (fccfg.c:1634) ==53167== by 0x589646A: FcConfigAdd.isra.0 (fccfg.c:1823) ==53167== by 0x58988CF: IA__FcConfigSubstituteWithPat.part.0 (fccfg.c:2228) ==53167== by 0x55F4F1A: pango_cairo_fc_font_map_fontset_key_substitute (pangocairo-fcfontmap.c:106) ==53167== by 0x5B88AF6: pango_fc_default_substitute (pangofc-fontmap.c:1795) ==53167== by 0x5B88D15: pango_fc_font_map_get_patterns (pangofc-fontmap.c:1850) ==53167== by 0x5B88FC7: pango_fc_font_map_load_fontset (pangofc-fontmap.c:1952) ==53167== by 0x5623627: pango_font_map_load_fontset (pango-fontmap.c:161) ==53167== by 0x5621743: pango_context_get_metrics (pango-context.c:1782) ==53167== Address 0x150d3450 is 0 bytes inside a block of size 10 free'd ==53167== at 0x483B9F5: free (vg_replace_malloc.c:538) ==53167== by 0x58ABE70: FcValueListDestroy (fcpat.c:147) ==53167== by 0x5898A08: IA__FcConfigSubstituteWithPat.part.0 (fccfg.c:2203) ==53167== by 0x55F4F1A: pango_cairo_fc_font_map_fontset_key_substitute (pangocairo-fcfontmap.c:106) ==53167== by 0x5B88AF6: pango_fc_default_substitute (pangofc-fontmap.c:1795) ==53167== by 0x5B88D15: pango_fc_font_map_get_patterns (pangofc-fontmap.c:1850) ==53167== by 0x5B88FC7: pango_fc_font_map_load_fontset (pangofc-fontmap.c:1952) ==53167== by 0x5623627: pango_font_map_load_fontset (pango-fontmap.c:161) ==53167== by 0x5621743: pango_context_get_metrics (pango-context.c:1782) Use copies of the strings as keys in the hash table to avoid this.
-
- Aug 27, 2020
-
-
Akira TAGOH authored
-
- Aug 26, 2020
-
-
Akira TAGOH authored
Recently some python scripts has been added to the build toolchain for meson build support. but we don't want to maintain multiple files for one purpose. since autotools build support will be guradually discontinued, integrating those scripts into autotools would be better.
-
- Aug 25, 2020
-
-
Matthias Clasen authored
__builtin_expect returns the same type as the expression, so enforce that we pass in a boolean expression. Pointed out by Emmanuele Bassi.
-
Matthias Clasen authored
Pointed out by Akira Tagoh.
-
Matthias Clasen authored
-
Matthias Clasen authored
These wrap __builtin_expect where it exists.
-
Matthias Clasen authored
Pointed out by Akira Tagoh.
-
Matthias Clasen authored
utf8 is extremely rare in the strings we see in font configuration, so this seems to be a good case for __builtin_expect.
-
Matthias Clasen authored
Use the same approach we used for FcFontMatch, and keep a hash table of family names. We only speed up the no-match case, for now.
-
Matthias Clasen authored
Avoid FcCanonicalize here too.
-
Matthias Clasen authored
Avoid FcValueCanonicalize when we can, to avoid unnecessary copying of FcValue structs.
-
Matthias Clasen authored
Make FcConfigPromote use a switch instead of an if-else cascade, and avoid calling it when we can. Note that we need to add a case for integers in FcConfigCompareValue, since we are no longer promoting integers to doubles unconditionally.
-
Matthias Clasen authored
When we don't need to differentiate between weak and strong, we can exit the loop in FcCompareValueList once we found a best match. This change helps reducing the amount of list walking we do for fonthashint, where careless config files end up creating lists with ~100 booleans :( We don't want to walk all those to the end, over and over again. We are already special-casing family, and the only other case where weak != strong, PostScript names, doesn't have long lists of values, so the limitation to weak == strong doesn't matter much in practice.
-
Matthias Clasen authored
When checking whether a test matches a pattern, we cut the loop short for FcQualAll when we see the first non-matching value, but for FcQualAny we were always walking the full list. This patch cuts the loop short for FcQualAny when we see the first matching value.
-
Matthias Clasen authored
With the way typical font configurations look, matching the lists of families is the bottleneck for both FcFontMatch and FcFontSort. After installing the Noto fonts on my system, an innocent match pattern like "Cantarell 14" turns into a monster with a list of 300 family names after calling FcConfigSubstitute(). With this setup, every FcFontSort call takes 80-100 ms, which is entirely incompatible with using FcFontSort for anything interactive. And many font choosers render every font in itself, causing on average one FcFontSort call per font. On my system, it takes more than 20 seconds to open the GTK font chooser dialog, with frequent stalls when scrolling. This patch special-cases font families and replaces the list walking for comparison with a hash table lookup. With this patch, the FcFontSort time goes to ~10ms per call. Which is still not good enough for calling it dozens of times when scrolling, but a significant improvement.
-
Matthias Clasen authored
Add a hash function that behaves like family comparison: ignoring case and blanks. This will be used to replace the list walking for finding family matches with a hash table.
-
Matthias Clasen authored
Make variants of FcStrCaseWalkerNext for the two common cases, delim == NULL and delim == " ", to speed things up. These are inner loops, and having the conditions as simple as possible helps.
-
Akira TAGOH authored
-
- Aug 23, 2020
-
-
Matthias Clasen authored
When a cached pattern contains a range, FcPatternHash will crash. Fixes #254.
-
- Aug 18, 2020
-
-
As far as I can tell, fontconfig can recover from encountering an unknown attribute. And unknown elements already print a warning instead of an error, so let's make this a warning too.
-
- Aug 06, 2020
-
-
Akira TAGOH authored
Fixes #248
-
- Jul 31, 2020
-
-
Tim-Philipp Müller authored
Fixes #249
-
- Jul 27, 2020
-
-
Tim-Philipp Müller authored
Might not be available on Windows.
-
- Jul 22, 2020
-
-
Alan Coopersmith authored
Signed-off-by:
Alan Coopersmith <alan.coopersmith@oracle.com>
-
- Jul 14, 2020
-
-
Akira TAGOH authored
Use the default $HOME/.cache one for empty XDG_CACHE_HOME. Fixes #243
-
- Jul 07, 2020
-
-
Ben Wagner authored
FreeType is trying to hide FT_UNUSED, so use FC_UNUSED instead.
-