summaryrefslogtreecommitdiff
path: root/src/w32fns.c
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2019-06-18 10:19:40 +0900
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2019-06-18 10:21:06 +0900
commit64767008f70af88d193d36eb6d2c27e4bc95ea8e (patch)
tree6bb91be06a2c8e09b2b4b07450dede39dd59a659 /src/w32fns.c
parent56a90c4234afb41b6d41a356ab4a35e71923552c (diff)
downloademacs-64767008f70af88d193d36eb6d2c27e4bc95ea8e.tar.gz
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.c80
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,