--- Begin Message ---
Subject: |
30.0.60; HarfBuzz is not used in the Cygwin-w32 build |
Date: |
Mon, 24 Jun 2024 21:18:31 -0400 |
User-agent: |
Mozilla Thunderbird |
The HarfBuzz library is hard-coded as libharfbuzz-0.dll in
w32uniscribe.c, but this is only valid on MS-Windows. On Cygwin the
library is cygharfbuzz-0.dll. As a result, HarfBuzz is not used in the
Cygwin-w32 build. The obvious fix is
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index b3112912c767..dacd6dd766ed 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -1527,12 +1527,17 @@ syms_of_w32uniscribe_for_pdumper (void)
uniscribe_new_apis = false;
#ifdef HAVE_HARFBUZZ
- /* Currently, HarfBuzz DLLs are always named libharfbuzz-0.dll, as
+ /* Currently, HarfBuzz DLLs are always named libharfbuzz-0.dll on
+ MS-Windows and cygharfbuzz-0.dll on Cygwin, as
the project keeps the ABI backward-compatible. So we can
hard-code the name of the library here, for now. If they ever
break ABI compatibility, we may need to load the DLL that
corresponds to the HarfBuzz version for which Emacs was built. */
+# ifdef WINDOWSNT
HMODULE harfbuzz = LoadLibrary ("libharfbuzz-0.dll");
+# else /* CYGWIN */
+ HMODULE harfbuzz = LoadLibrary ("cygharfbuzz-0.dll");
+# endif /* CYGWIN */
/* Don't register if HarfBuzz is not available. */
if (!harfbuzz)
return;
Before pushing this, I'd like to test it, but I don't know enough about
HarfBuzz to do that. Can someone tell me how to test that HarfBuzz is
actually being used as intended? All I've done so far is to start emacs
and note that the display looks reasonable.
Ken
P.S. I had a problem sending this email the first time I tried. I
apologize in advance if I ended up sending it twice.
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#71766: 30.0.60; HarfBuzz is not used in the Cygwin-w32 build |
Date: |
Tue, 25 Jun 2024 11:36:43 -0400 |
User-agent: |
Mozilla Thunderbird |
On 6/24/2024 10:34 PM, Eli Zaretskii wrote:
Date: Mon, 24 Jun 2024 21:18:31 -0400
From: Ken Brown <kbrown@cornell.edu>
The HarfBuzz library is hard-coded as libharfbuzz-0.dll in
w32uniscribe.c, but this is only valid on MS-Windows. On Cygwin the
library is cygharfbuzz-0.dll. As a result, HarfBuzz is not used in the
Cygwin-w32 build. The obvious fix is
Please install this on the emacs-30 branch if it's all that is needed.
Done.
Before pushing this, I'd like to test it, but I don't know enough about
HarfBuzz to do that. Can someone tell me how to test that HarfBuzz is
actually being used as intended? All I've done so far is to start emacs
and note that the display looks reasonable.
Type "C-u C-x =" on some character, it should tell you what is the
backend (at the beginning of the font name). I would also use "C-h h"
to compare the display with another configuration where you know
HarfBuzz is being used.
Thanks, it looks good. Closing.
Ken
--- End Message ---