1. 25 Aug, 2021 1 commit
  2. 24 Aug, 2021 2 commits
    • Akira TAGOH's avatar
      Reflect matching results to binding in FcPattern · c7891755
      Akira TAGOH authored
      This change allows applications to see what property was matched perfectly
      and help to filter out for their needs.
      
      Fixes #294
      c7891755
    • Akira TAGOH's avatar
      Bump the cache version to 8 · 5d84745e
      Akira TAGOH authored
      Bump the cache version to avoid unexpected behavior in
      older version of fontconfig.
      
      There was no real incompatible features introduced in a cache.
      But the older version of fontconfig can't deal with variable fonts
      and then it failed. To avoid this breakage, you may want to choose
      one of options like:
      
      1) Applying this change to fontconfig in host and remove all the
      fontconfig caches and then regenerate them by fc-cache linked with
      older one and new one. or simply run applications.
      You'll see two versions of caches in the cache directories.
      
      2) Remove variable fonts on system and remove all the fontconfig
      caches too. then regenerate caches. You'll still see one version of
      caches there but without the entries of variable fonts.
      
      After that, the problem should be gone.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1981500
      5d84745e
  3. 18 Aug, 2021 1 commit
  4. 20 Jul, 2021 3 commits
    • Akira TAGOH's avatar
      Enable 11-lcdfilter-default.conf by default · e1c7c6d7
      Akira TAGOH authored
      Some applications needs this enabled by default on non-GNOME desktops.
      
      reference: https://bugzilla.redhat.com/show_bug.cgi?id=1965684
      e1c7c6d7
    • Alexander Richardson's avatar
      Add support for C11 stdatomic atomics · 012ffaac
      Alexander Richardson authored
      This fixes deprecation warnings when building for macOS >= 10.12 systems.
      Additionally, using stdatomic.h (or the more modern __atomic_ builtins)
      is required when targeting CHERI-enabled architectures such as
      CHERI-RISC-V or Arm's Morello since the compiler rejects __sync_* atomic
      for pointer types (they only work with integers).
      012ffaac
    • Alexander Richardson's avatar
      fcint: add casts to allow building with stricter compilers · ab4761ff
      Alexander Richardson authored
      When targeting CHERI, casts between pointers and integers must use
      (u)intptr_t. uintptr_t values contains pointer bounds (and additional
      metadata), whereas other integer types do not. This change also adds a
      cast to FcOffsetToPtr() to silence a compiler warning that triggers if
      the compiler cannot statically infer which side of an arithmetic operation
      is the pointer operand and which one is the offset/mask.
      ab4761ff
  5. 19 Jul, 2021 1 commit
    • Ryan Schmidt's avatar
      Restore fcatomic compatibility with Mac OS X 10.4. · 3a7ad1b4
      Ryan Schmidt authored
      Reverts the part of 6def6616 that
      removed the fc_atomic_ptr_cmpexch compatibility code for systems earlier
      than Mac OS X 10.5.
      
      Reverts the part of 447b9ccc that moved
      the definition of fc_atomic_ptr_get into the Mac OS X > 10.4 block. That
      code is still needed on 10.4 and is implemented using functions that are
      available on 10.4.
      
      Compare against MAC_OS_X_VERSION_MIN_REQUIRED using a number not a
      constant because the constant is not available on earlier SDKs.
      3a7ad1b4
  6. 14 Jul, 2021 2 commits
  7. 08 Jul, 2021 2 commits
  8. 06 Jul, 2021 1 commit
  9. 28 Jun, 2021 3 commits
    • Akira TAGOH's avatar
      Bump version to 2.13.94 · e291fda7
      Akira TAGOH authored
      e291fda7
    • Akira TAGOH's avatar
      Fix score evaluation for multiple values in properties · da1c9f7a
      Akira TAGOH authored
      Sometimes fonts has multiple values in family and sub-family in order to unify
      other variants into one. they basically make difference in sub-family though,
      they also still have standalone family and sub-family. in that case, sub-family is
      likely to be Regular.
      
      fontconfig couldn't recognize the difference between :family=Foo:style=Regular
      and :family=Foo Caption:style=Regular for example because fontconfig didn't
      give different score on matching result for the position of multiple values in
      a cache.
      Thus, when querying a font like :family=Foo:style=Regular may results
      :family=Foo Caption:style=Regular. (see the test case for more details)
      
      To fix this situation, giving different score according to the position
      of multiple values in a cache as well as the position of multiple values
      in a query.
      
      Fixes fontconfig/fontconfig#283
      da1c9f7a
    • Akira TAGOH's avatar
      Revert constructing fullname property from family and style properties · d62d984e
      Akira TAGOH authored
      This seems making a regression in Java. we will revisit this issue later.
      
      Fixes #277
      d62d984e
  10. 25 Jun, 2021 1 commit
  11. 09 Apr, 2021 1 commit
  12. 30 Mar, 2021 1 commit
  13. 26 Mar, 2021 1 commit
  14. 25 Mar, 2021 1 commit
  15. 03 Mar, 2021 3 commits
  16. 02 Mar, 2021 1 commit
    • Akira TAGOH's avatar
      Overwrite symlinks for config files · 615e2cb8
      Akira TAGOH authored
      In Makefile, we are trying to remove old symlinks first and then create a symlink.
      do the same thing in meson too.
      
      Also, the line of the exception handling for FileExistsError is meaningless
      as the above line is taking care of it instead and we shouldn't ignore it if
      os.remove and os.symlink doesn't work somehow.
      
      Fixes #275
      615e2cb8
  17. 18 Feb, 2021 1 commit
    • Tim-Philipp Müller's avatar
      meson: fix subproject build regression · dba3287b
      Tim-Philipp Müller authored
      commit ae9ac2a1 from !165 introduced a regression when
      fontconfig is built as a subproject. In that case we
      would fail to correctly construct the path to the root
      build dir where the meson-info subdirectory resides,
      instead looking for it in the fontconfig subproject
      subdir. This would result in
      FAILED: subprojects/fontconfig/src/fcobjshash.gperf
      errors in the cutout.py script.
      
      Instead use the @BUILD_ROOT@ substitution to get
      to the build root which will work correctly in
      either scenario.
      dba3287b
  18. 16 Feb, 2021 1 commit
    • Ben Wagner's avatar
      Fix stack use after scope in FcConfigCompareValue · ba15d41b
      Ben Wagner authored
      Discovered by AddressSanitizer. When left_o and right_o are promoted the
      promoted values are placed on the stack in FcValuePromotionBuffer.
      The FcValuePromotionBuffers must then continue to be in scope while
      left_o and right_o point into their content. In 9d4e5d0f the
      FcValuePromotionBuffers were moved into the incorrect scope, leaving
      left_o and right_o pointing into an object whose lifetime has ended.
      This is similar to left and right which appear to have a smaller scope
      but are actually required to be in the larger scope.
      
      Correct this by moving the FcValuePromotionBuffers to the proper scope.
      Leave the left and right FcValues where they are since they are in the
      correct scope already.
      
      This also adds to test-conf the ability to create charset, langset,
      range, and matrix in patterns. This allows for a simple test which fails
      under AddressSanitizer before this change and passes after.
      ba15d41b
  19. 15 Feb, 2021 2 commits
  20. 30 Jan, 2021 1 commit
  21. 28 Jan, 2021 1 commit
  22. 26 Jan, 2021 1 commit
  23. 20 Jan, 2021 1 commit
  24. 15 Jan, 2021 1 commit
  25. 13 Jan, 2021 1 commit
  26. 08 Jan, 2021 2 commits
    • Tim-Philipp Müller's avatar
      ci: add meson android aarch64 build · 643c3f1e
      Tim-Philipp Müller authored
      Passing -Wno-pointer-bool-conversion in cross file
      to suppress compiler warning:
      
      src/fcfreetype.c:1373:11: address of array 'os2->achVendID' will always evaluate to 'true'
      643c3f1e
    • Tim-Philipp Müller's avatar
      fcformat: fix compiler warnings with clang on Android · 8657c081
      Tim-Philipp Müller authored
      fcformat.c:762:44: warning: expression which evaluates to zero treated as a null pointer constant of type 'FcChar8 *' (aka 'unsigned char *') [-Wnon-literal-null-conversion]
                      if (!FcNameUnparseValue (buf, &l->value, '\0'))
                                                               ^~~~
      fcformat.c:769:38: warning: expression which evaluates to zero treated as a null pointer constant of type 'FcChar8 *' (aka 'unsigned char *') [-Wnon-literal-null-conversion]
                  FcNameUnparseValueList (buf, l, '\0');
                                                  ^~~~
      8657c081
  27. 07 Jan, 2021 2 commits
    • Ben Wagner's avatar
      Clean up test-family-matching test. · bd7123ac
      Ben Wagner authored
      Correct the type of TestMatchPattern's 'ret' from TestResult to
      TestMatchResult to match the actual return type (and values assigned to
      it).
      
      Fix leak of TestMatchPattern's 'xml' and TestFamily's 'pat'.
      
      Simplify TestMatchPattern cleanup and ensure cleanup always happens.
      bd7123ac
    • Tim-Philipp Müller's avatar
      meson: remove unused stdin_wrapper.py script · e2c6b620
      Tim-Philipp Müller authored
      Not needed any more. Used to be used with fc-case and fc-lang,
      but those have since been rewritten in python.
      e2c6b620
  28. 28 Dec, 2020 1 commit
    • Ben Wagner's avatar
      Test all not_eq for family names. · b1e1a875
      Ben Wagner authored
      Any early out checks must give the same answer as FcConfigCompareValue.
      An accelerator was added for family names which treated all ops as if
      they were FcOpEqual, giving the wrong answer for other non-equivalent ops
      (for example FcOpContains or FcOpNotEqual).
      
      This adds a test which passes before the accelerator was introduced,
      fails after, and will pass again after !142 lands. This tests the all
      not_eq case.
      b1e1a875