What’s Changed

  • Unicode 16.0.0 support.
  • Various documentation fixes.
  • Various build fixes.
  • Add API to allow HarfBuzz client to set what glyph to use when a Unicode Variation Selector is not supported by the font, which would allow the client to customize what happens in this case, by using a different font for example.
  • Add a callback to for “hb_face_t” for getting the list of table tags. This is now used to make calling “hb_face_get_table_tags()” work on a faces created by “hb_face_create_for_tables()” (e.g. faces returned by “hb_subset_or_fail()”).
  • CGJ and Mongolian Variation Selectors are now ignored during glyph positioning, previously they would block both glyph substitution and positioning across them.
  • Support cairo script as an output format for “hb-view” command line tool.
  • Drop an optimization that would cause HarfBuzz not apply pair positioning lookup subtables under certain circumstances, for compatibility with other implementations that do apply these subtables.
  • Subsetting will now fail if source font has no glyphs, so feeding the subsetter invalid data will not silently return an empty face.
  • If after partially instancing a font no variation data is left (the instance is fully static), don’t consider this a failure.
  • Workaround a Firefox bug in displaying SVGs generated be “hb-view” command line tool under certain circumstances.
  • Fix bug in macroman mapping for “cmap” table.
  • Fix difference shaping output when HarfBuzz is built with with “HB_NO_OT_RULESETS_FAST_PATH” enabled.
  • Various subsetting and instancing fixes.
  • Various fuzzing fixes.
  • Add “with_libstdcxx” meson build option.
  • Chaos
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 months ago

    It would very much be helpful and time saving to share a little about what’s this repo about… thank you.

    • Joël de Bruijn
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      Had to look it up:

      HarfBuzz is a text shaping library. Using the HarfBuzz library allows programs to convert a sequence of Unicode input into properly formatted and positioned glyph output—for any writing system and language.

      • Joël de Bruijn
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 months ago

        HarfBuzz is a text-shaping engine. If you give HarfBuzz a font and a string containing a sequence of Unicode codepoints, HarfBuzz selects and positions the corresponding glyphs from the font, applying all of the necessary layout rules and font features. HarfBuzz then returns the string to you in the form that is correctly arranged for the language and writing system.

        HarfBuzz can properly shape all of the world’s major writing systems. It runs on all major operating systems and software platforms and it supports the major font formats in use today. What is text shaping?

        Text shaping is the process of translating a string of character codes (such as Unicode codepoints) into a properly arranged sequence of glyphs that can be rendered onto a screen or into final output form for inclusion in a document.

        The shaping process is dependent on the input string, the active font, the script (or writing system) that the string is in, and the language that the string is in.

        Modern software systems generally only deal with strings in the Unicode encoding scheme (although legacy systems and documents may involve other encodings).

        There are several font formats that a program might encounter, each of which has a set of standard text-shaping rules.

    • Mostafa Ahangarha@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 month ago

      Thanks for your comment. Sure it would be good. But my first objective for now is to maintain posting the updates. I am already missing many releases.

      I think I should gradually add some automation to this process.