changeset 90547:51be6e7b3881

(Qfont_backend): New variable. (frame_parms): New element for font-backend. (x_set_font_backend): New function.
author Kenichi Handa <handa@m17n.org>
date Wed, 26 Jul 2006 01:16:27 +0000
parents 5fd517758629
children 7cc05972a79e
files src/frame.c
diffstat 1 files changed, 39 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/frame.c	Wed Jul 26 01:15:30 2006 +0000
+++ b/src/frame.c	Wed Jul 26 01:16:27 2006 +0000
@@ -112,6 +112,9 @@
 Lisp_Object Qtty_color_mode;
 
 Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth;
+#ifdef USE_FONT_BACKEND
+Lisp_Object Qfont_backend;
+#endif	/* USE_FONT_BACKEND */
 
 Lisp_Object Qface_set_after_frame_default;
 
@@ -2587,6 +2590,9 @@
   {"right-fringe",		&Qright_fringe},
   {"wait-for-wm",		&Qwait_for_wm},
   {"fullscreen",                &Qfullscreen},
+#ifdef USE_FONT_BACKEND
+  {"font-backend",		&Qfont_backend}
+#endif	/* USE_FONT_BACKEND */
 };
 
 #ifdef HAVE_WINDOW_SYSTEM
@@ -3167,6 +3173,39 @@
 }
 
 
+#ifdef USE_FONT_BACKEND
+void
+x_set_font_backend (f, new_value, old_value)
+     struct frame *f;
+     Lisp_Object new_value, old_value;
+{
+  Lisp_Object frame;
+
+  if (! NILP (new_value)
+      && !CONSP (new_value))
+    {
+      char *p0, *p1;
+	
+      CHECK_STRING (new_value);
+      p0 = p1 = SDATA (new_value);
+      new_value = Qnil;
+      while (*p0)
+	{
+	  while (*p1 && *p1 != ',') p1++;
+	  if (p0 < p1)
+	    new_value = Fcons (Fintern (make_string (p0, p1 - p0), Qnil),
+			       new_value);
+	  if (*p1)
+	    p1++;
+	  p0 = p1;
+	}
+    }
+
+  font_update_drivers (f, new_value, FRAME_FONT_OBJECT (f));
+}
+#endif	/* USE_FONT_BACKEND */
+
+
 void
 x_set_fringe_width (f, new_value, old_value)
      struct frame *f;