1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-05-03 11:41:41 -07:00

Fix the handling of font backend supersedence on MS-Windows

* src/w32font.c (syms_of_w32font): Don't make the Uniscribe
font backend "superceded" here, ...
* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper):
... make it "superceded" here, only if the HarfBuzz DLL was
successfully loaded.  This is because Emacs compiled with
HarfBuzz support might run on a system without the DLL.
* src/w32fns.c (Fx_create_frame, w32_create_tip_frame):
Register the HarfBuzz font backend only if it is available.
This commit is contained in:
Eli Zaretskii 2019-06-18 20:21:40 +03:00
parent 4956e7610c
commit 922121e7dd
3 changed files with 5 additions and 4 deletions

View file

@ -5845,7 +5845,8 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
}
#ifdef HAVE_HARFBUZZ
register_font_driver (&harfbuzz_font_driver, f);
if (harfbuzz_available)
register_font_driver (&harfbuzz_font_driver, f);
#endif
register_font_driver (&uniscribe_font_driver, f);
register_font_driver (&w32font_driver, f);
@ -6900,7 +6901,8 @@ w32_create_tip_frame (struct w32_display_info *dpyinfo, Lisp_Object parms)
}
#ifdef HAVE_HARFBUZZ
register_font_driver (&harfbuzz_font_driver, f);
if (harfbuzz_available)
register_font_driver (&harfbuzz_font_driver, f);
#endif
register_font_driver (&uniscribe_font_driver, f);
register_font_driver (&w32font_driver, f);

View file

@ -2821,8 +2821,6 @@ versions of Windows) characters. */);
defsubr (&Sx_select_font);
Fput (Quniscribe, Qfont_driver_superseded_by, Qharfbuzz);
pdumper_do_now_and_after_load (syms_of_w32font_for_pdumper);
}

View file

@ -1533,6 +1533,7 @@ syms_of_w32uniscribe_for_pdumper (void)
if (!load_harfbuzz_funcs (harfbuzz))
return;
Fput (Quniscribe, Qfont_driver_superseded_by, Qharfbuzz);
harfbuzz_available = 1;
harfbuzz_font_driver = uniscribe_font_driver;
harfbuzz_font_driver.type = Qharfbuzz;