proposition for patch in CommonSalLayout.cxx

Stanisław Jeśmanowicz stan at
Tue Mar 9 13:04:08 UTC 2021

Hello Miklos,

On 3/9/21 9:14 AM, Miklos Vajna wrote:
> Hi Stan,
> On Mon, Mar 08, 2021 at 03:50:21PM +0100, Stanisław Jeśmanowicz <stan at> wrote:
>> Dear all,
>> I noticed that LibreOffice is using the hard coded harfbuzz shapers list in
>> CommonSalLayout.cxx file (line 470).
>> I recommend the patch attached to be more flexible.
>> This take all possible shapers in a given HarfBuzz implementation.
>> This also allows the use of newly created shapers.
>> Just repleces line:
>> -  const char*const pHbShapers[] = { "dt", "graphite2", "coretext_aat", "ot", "fallback", nullptr };
>> with:
>> +  const char **pHbShapers = hb_shape_list_shapers();
> Are you more or less reverting 7854d35cd8172b201f1f3ad247860f242e5cb06b?
> Can you describe what is the practical benefit of doing so?

The benefits of applying this patch are:
1. HarfBuzz allows the development of external shapers, like graphite2.
    This way, if a LibreOffice is build with system HarfBuzz (--with-system-harfbuzz),
    then any new developed shaper would work without recompiling LibreOffice.
2. Also in case of using system HarfBuzz, a particular HarfBuzz implementation can decide
    which shaper to use out of currently existing list: graphite2, uniscribe, directwrite (so far).
3. Last, but not least, I have developed a HarfBuzz shaper and I would like that it work on systems
    that have implemented it.

I have send a similar patch request to Scribus people, because thy use also hard coded shapers list.
But open source distribution of Chromium works with new shapers out of box.

> Regards,
> Miklos
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at


Stanislaw Jesmanowicz      stan <at> mail2 <dot> jesmanowicz <dot> com
Amsterdam                  voice : + 31 20 6126193
The Netherlands            mobile: + 31  653380520

More information about the LibreOffice mailing list