diff options
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 2019-06-18 10:19:40 +0900 |
---|---|---|
committer | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 2019-06-18 10:21:06 +0900 |
commit | 64767008f70af88d193d36eb6d2c27e4bc95ea8e (patch) | |
tree | 6bb91be06a2c8e09b2b4b07450dede39dd59a659 /src/w32fns.c | |
parent | 56a90c4234afb41b6d41a356ab4a35e71923552c (diff) | |
download | emacs-64767008f70af88d193d36eb6d2c27e4bc95ea8e.tar.gz emacs-64767008f70af88d193d36eb6d2c27e4bc95ea8e.tar.bz2 emacs-64767008f70af88d193d36eb6d2c27e4bc95ea8e.zip |
Support font driver supersession
* src/font.c (font_update_drivers): If argument NEW_DRIVERS is t, then don't
use superseded drivers.
(syms_of_font) <Qfont_driver_superseded_by>: New DEFSYM.
* src/ftfont.c (syms_of_ftfont) [HAVE_HARFBUZZ]:
* src/ftcrfont.c (syms_of_ftcrfont) [HAVE_HARFBUZZ]:
* src/w32font.c (syms_of_w32font) [HAVE_HARFBUZZ]:
* src/xftfont.c (syms_of_xftfont) [HAVE_HARFBUZZ]: Make Harfbuzz variants
supersede non-Harfbuzz ones.
* src/w32fns.c (Fx_create_frame, w32_create_tip_frame): Remove font backend
determination code.
Diffstat (limited to 'src/w32fns.c')
-rw-r--r-- | src/w32fns.c | 80 |
1 files changed, 4 insertions, 76 deletions
diff --git a/src/w32fns.c b/src/w32fns.c index 8ebfc119521..83830c616e5 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -5844,46 +5844,10 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, specbind (Qx_resource_name, name); } - bool register_uniscribe = uniscribe_available; #ifdef HAVE_HARFBUZZ - /* Register Uniscribe only if HarfBuzz is not available or if - explicitly requested. If Uniscribe is registered, register - HarfBuzz only if explicitly requested. */ - bool register_harfbuzz = harfbuzz_available; - if (register_harfbuzz) - register_uniscribe = false; - Lisp_Object dflt_backends - = gui_display_get_arg (dpyinfo, parameters, Qfont_backend, - "fontBackend", "FontBackend", RES_TYPE_STRING); - if (!EQ (dflt_backends, Qunbound)) - { - bool harfbuzz_requested = false, uniscribe_requested = false; - if (CONSP (dflt_backends)) - { - if (!NILP (Fmemq (Quniscribe, dflt_backends))) - uniscribe_requested = true; - if (!NILP (Fmemq (Qharfbuzz, dflt_backends))) - harfbuzz_requested = true; - } - else if (STRINGP (dflt_backends)) - { - if (strcmp (SSDATA (dflt_backends), "uniscribe") == 0) - uniscribe_requested = true; - else if (strcmp (SSDATA (dflt_backends), "harfbuzz") == 0) - harfbuzz_requested = true; - } - if (uniscribe_requested) - { - register_uniscribe = uniscribe_available; - if (!harfbuzz_requested) - register_harfbuzz = false; - } - } - if (register_harfbuzz) - register_font_driver (&harfbuzz_font_driver, f); + register_font_driver (&harfbuzz_font_driver, f); #endif - if (register_uniscribe) - register_font_driver (&uniscribe_font_driver, f); + register_font_driver (&uniscribe_font_driver, f); register_font_driver (&w32font_driver, f); gui_default_parameter (f, parameters, Qfont_backend, Qnil, @@ -6935,46 +6899,10 @@ w32_create_tip_frame (struct w32_display_info *dpyinfo, Lisp_Object parms) specbind (Qx_resource_name, name); } - bool register_uniscribe = uniscribe_available; #ifdef HAVE_HARFBUZZ - /* Register Uniscribe only if HarfBuzz is not available or if - explicitly requested. If Uniscribe is registered, register - HarfBuzz only if explicitly requested. */ - bool register_harfbuzz = harfbuzz_available; - if (register_harfbuzz) - register_uniscribe = false; - Lisp_Object dflt_backends - = gui_display_get_arg (dpyinfo, parms, Qfont_backend, - "fontBackend", "FontBackend", RES_TYPE_STRING); - if (!EQ (dflt_backends, Qunbound)) - { - bool harfbuzz_requested = false, uniscribe_requested = false; - if (CONSP (dflt_backends)) - { - if (!NILP (Fmemq (Quniscribe, dflt_backends))) - uniscribe_requested = true; - if (!NILP (Fmemq (Qharfbuzz, dflt_backends))) - harfbuzz_requested = true; - } - else if (STRINGP (dflt_backends)) - { - if (strcmp (SSDATA (dflt_backends), "uniscribe") == 0) - uniscribe_requested = true; - else if (strcmp (SSDATA (dflt_backends), "harfbuzz") == 0) - harfbuzz_requested = true; - } - if (uniscribe_requested) - { - register_uniscribe = uniscribe_available; - if (!harfbuzz_requested) - register_harfbuzz = false; - } - } - if (register_harfbuzz) - register_font_driver (&harfbuzz_font_driver, f); + register_font_driver (&harfbuzz_font_driver, f); #endif - if (register_uniscribe) - register_font_driver (&uniscribe_font_driver, f); + register_font_driver (&uniscribe_font_driver, f); register_font_driver (&w32font_driver, f); gui_default_parameter (f, parms, Qfont_backend, Qnil, |