summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2018-05-16Ensure cache checksums are deterministicHEADmasterChris Lamb1-6/+53
Whilst working on the Reproducible Builds[0] effort, we noticed that fontconfig generates unreproducible cache files. This is due to fc-cache uses the modification timestamps of each directory in the "checksum" and "checksum_nano" members of the _FcCache struct. This is so that it can identify which cache files are valid and/or require regeneration. This patch changes the behaviour of the checksum calculations to prefer the value of the SOURCE_DATE_EPOCH[1] environment variable over the directory's own mtime. This variable can then be exported by build systems to ensure reproducible output. If SOURCE_DATE_EPOCH is not set or is newer than the mtime of the directory, the existing behaviour is unchanged. This work was sponsored by Tails[2]. [0] https://reproducible-builds.org/ [1] https://reproducible-builds.org/specs/source-date-epoch/ [2] https://tails.boum.org/
2018-05-13Bug 106459 - fc-cache doesn't use -y option for .uuid filesAkira TAGOH1-11/+37
https://bugs.freedesktop.org/show_bug.cgi?id=106459
2018-05-13Bug 106497 - better error description when problem reading font configurationAkira TAGOH1-1/+19
https://bugs.freedesktop.org/show_bug.cgi?id=106497
2018-05-11Bug 43367 - RFE: iterator to peek objects in FcPatternAkira TAGOH5-82/+229
Add various APIs to obtain things in FcPattern through the iterator https://bugs.freedesktop.org/show_bug.cgi?id=43367
2018-05-05Add FONTCONFIG_SYSROOT environment variableTom Anderson1-1/+4
2018-04-17Use realfilename for FcOpen in _FcConfigParseTom Anderson1-1/+1
realfilename is the file name after sysroot adjustments. It should be used instead of filename in the call to FcOpen() which forwards the name directly to open(). Though I don't explicitly request a sysroot, I was getting error messages saying "failed reading config file". This CL fixes the error spam.
2018-04-16Fix undefined-shift UBSAN errorsTom Anderson3-11/+11
The expression "1 << 31" will cause UBSAN to complain with this error message: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' The same operation on unsigned types is fine, however. This CL replaces the strings "1 <<" with "1U <<".
2018-03-31Share name-mapping across instancesBehdad Esfahbod1-6/+16
Continuation of previous commit. Makes scanning Voto Serif GX fast again.
2018-03-31Fix name scanningBehdad Esfahbod1-108/+185
In 161c738 I switched from linear name scanning to binary searching. That, however, ignored the fact that there might be more than one name table entry for each pair we want to query. To fix that and retain bsearch, I now get all name entries first, sort them, and use for bsearching. This fixes https://bugs.freedesktop.org/show_bug.cgi?id=105756 This makes scaning Voto Serif GX twice slower though, since we are creating and sorting the list for each instance. In the next commit, I'll share this list across different instances to fix this.
2018-03-28Do not ship fcobjshash.hAkira TAGOH1-5/+7
2018-03-15Leave the locale setting to applicationsAkira TAGOH1-20/+2
https://bugs.freedesktop.org/show_bug.cgi?id=105492
2018-03-14Add the value of the constant name to the implicit object in the patternAkira TAGOH1-0/+4
For objects which has been changed the object type to FcTypeRange. https://bugs.freedesktop.org/show_bug.cgi?id=105415
2018-03-14Do not override locale if already set by appAkira TAGOH1-1/+6
https://bugs.freedesktop.org/show_bug.cgi?id=105492
2018-03-12Allow the constant names in the rangeAkira TAGOH1-5/+29
https://bugs.freedesktop.org/show_bug.cgi?id=105415
2018-03-09Fix the build issue again on MinGW with enabling nlsAkira TAGOH1-2/+2
2018-03-02Initialize an array explicitlyAkira TAGOH1-1/+1
Patch from Kurt Kartaltepe
2018-03-02Fix a build issue on MinGW with enabling nlsAkira TAGOH1-1/+2
2018-02-05Ensure the user config dir is available in the list of config dirs on the ↵Akira TAGOH1-3/+11
fallback config
2018-02-05Do not mix up font dirs into the list of config dirsAkira TAGOH4-15/+6
2018-02-01Fix cross-compilation by passing CPPFLAGS to CPPOlivier Crête1-1/+1
2018-01-23Take effects on dir, cachedir, acceptfont, and rejectfont only when loadingAkira TAGOH1-13/+17
Those elements takes effects immediately during parsing config files so makes them conditional to ignore on scanning.
2018-01-14FcHashTableAddInternal: Compare against the right keyAlexander Larsson1-1/+1
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-09Fix undefined-behavior signed shiftsBehdad Esfahbod3-11/+11
2018-01-08Use FT_Done_MM_Var if availableBehdad Esfahbod1-0/+4
2018-01-06export GETTEXTDATADIR to refer the local .its/.loc file instead of using ↵Akira TAGOH3-15/+0
--its option
2018-01-05Fix leakBehdad Esfahbod1-0/+1
2018-01-05Add files to enable ITS support in gettextAkira TAGOH3-0/+15
2018-01-04Allow overriding symbol visibility.Tom Anderson1-2/+2
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-04Support FC_WIDTH as double as wellBehdad Esfahbod1-9/+7
2018-01-04Remove hack for OS/2 weights 1..9Behdad Esfahbod2-26/+2
2018-01-04Add FcReadLink to wrap up readlink impl.Akira TAGOH3-2/+26
2018-01-04Fix compiler warningsAkira TAGOH3-3/+7
2018-01-03Add FcWeightTo/FromOpenTypeDouble()Behdad Esfahbod2-14/+26
No idea why I didn't add these as double to begin with.
2018-01-03Fix the mis-ordering of ruleset evaluation in a file with include elementAkira TAGOH2-2/+28
2017-12-20Put back accidentally removed codeBehdad Esfahbod1-0/+2
2017-12-19Let pattern FC_FONT_VARIATIONS override standard axis variationsBehdad Esfahbod1-9/+11
Ie. flip the merge order.
2017-12-19Set font-variations settings for standard axes in variable fontsBehdad Esfahbod2-4/+60
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-18Remove a debug abort()Behdad Esfahbod1-1/+0
Ouch!
2017-12-19Try to get current instance of FcConfig as far as possibleAkira TAGOH1-0/+2
2017-12-19fchash: Fix replaceAlexander Larsson1-0/+2
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-18Don't crashBehdad Esfahbod1-1/+1
Not proper fix necessarily. But fixes this crash: https://bugs.freedesktop.org/show_bug.cgi?id=101889#c81
2017-12-18Disable uuid related code on Win32Akira TAGOH2-1/+22
2017-12-18Do not update mtime with creating .uuidAkira TAGOH1-0/+26
2017-12-18Replace uuid in the table properly when -rAkira TAGOH3-6/+42
2017-12-18Returns false if key is already available in the tableAkira TAGOH1-1/+1
2017-12-18Update .uuid only when -r is given but not -f.Akira TAGOH2-6/+1
2017-11-24thread-safe functions in fchash.cAkira TAGOH1-2/+4
2017-11-20Use smaller prime for hash sizeAkira TAGOH1-1/+1
2017-11-20Don't call FcStat when the alias has already been addedAkira TAGOH2-52/+44
Similar changes to 3a3d6ea applies to fclist and fcmatch.
2017-11-20Fix a typoAkira TAGOH1-1/+1