diff options
| author | Eli Zaretskii | 2019-06-18 20:21:40 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2019-06-18 20:21:40 +0300 |
| commit | 922121e7ddbc107da14ea9c1280d15c828e85063 (patch) | |
| tree | c44f63b0535fd8c19c719f2844319b06aefdf241 /src | |
| parent | 4956e7610c782cace51943ee41f4c357703bdae1 (diff) | |
| download | emacs-922121e7ddbc107da14ea9c1280d15c828e85063.tar.gz emacs-922121e7ddbc107da14ea9c1280d15c828e85063.zip | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/w32fns.c | 6 | ||||
| -rw-r--r-- | src/w32font.c | 2 | ||||
| -rw-r--r-- | src/w32uniscribe.c | 1 |
3 files changed, 5 insertions, 4 deletions
diff --git a/src/w32fns.c b/src/w32fns.c index 83830c616e5..acd9c80528a 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -5845,7 +5845,8 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, | |||
| 5845 | } | 5845 | } |
| 5846 | 5846 | ||
| 5847 | #ifdef HAVE_HARFBUZZ | 5847 | #ifdef HAVE_HARFBUZZ |
| 5848 | register_font_driver (&harfbuzz_font_driver, f); | 5848 | if (harfbuzz_available) |
| 5849 | register_font_driver (&harfbuzz_font_driver, f); | ||
| 5849 | #endif | 5850 | #endif |
| 5850 | register_font_driver (&uniscribe_font_driver, f); | 5851 | register_font_driver (&uniscribe_font_driver, f); |
| 5851 | register_font_driver (&w32font_driver, f); | 5852 | register_font_driver (&w32font_driver, f); |
| @@ -6900,7 +6901,8 @@ w32_create_tip_frame (struct w32_display_info *dpyinfo, Lisp_Object parms) | |||
| 6900 | } | 6901 | } |
| 6901 | 6902 | ||
| 6902 | #ifdef HAVE_HARFBUZZ | 6903 | #ifdef HAVE_HARFBUZZ |
| 6903 | register_font_driver (&harfbuzz_font_driver, f); | 6904 | if (harfbuzz_available) |
| 6905 | register_font_driver (&harfbuzz_font_driver, f); | ||
| 6904 | #endif | 6906 | #endif |
| 6905 | register_font_driver (&uniscribe_font_driver, f); | 6907 | register_font_driver (&uniscribe_font_driver, f); |
| 6906 | register_font_driver (&w32font_driver, f); | 6908 | register_font_driver (&w32font_driver, f); |
diff --git a/src/w32font.c b/src/w32font.c index 5d54f048fb5..14d49b24d9b 100644 --- a/src/w32font.c +++ b/src/w32font.c | |||
| @@ -2821,8 +2821,6 @@ versions of Windows) characters. */); | |||
| 2821 | 2821 | ||
| 2822 | defsubr (&Sx_select_font); | 2822 | defsubr (&Sx_select_font); |
| 2823 | 2823 | ||
| 2824 | Fput (Quniscribe, Qfont_driver_superseded_by, Qharfbuzz); | ||
| 2825 | |||
| 2826 | pdumper_do_now_and_after_load (syms_of_w32font_for_pdumper); | 2824 | pdumper_do_now_and_after_load (syms_of_w32font_for_pdumper); |
| 2827 | } | 2825 | } |
| 2828 | 2826 | ||
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c index caf346a5ec2..d59d564abb4 100644 --- a/src/w32uniscribe.c +++ b/src/w32uniscribe.c | |||
| @@ -1533,6 +1533,7 @@ syms_of_w32uniscribe_for_pdumper (void) | |||
| 1533 | if (!load_harfbuzz_funcs (harfbuzz)) | 1533 | if (!load_harfbuzz_funcs (harfbuzz)) |
| 1534 | return; | 1534 | return; |
| 1535 | 1535 | ||
| 1536 | Fput (Quniscribe, Qfont_driver_superseded_by, Qharfbuzz); | ||
| 1536 | harfbuzz_available = 1; | 1537 | harfbuzz_available = 1; |
| 1537 | harfbuzz_font_driver = uniscribe_font_driver; | 1538 | harfbuzz_font_driver = uniscribe_font_driver; |
| 1538 | harfbuzz_font_driver.type = Qharfbuzz; | 1539 | harfbuzz_font_driver.type = Qharfbuzz; |