]> git.eshelyaron.com Git - emacs.git/commitdiff
(Qfont_backend): New variable.
authorKenichi Handa <handa@m17n.org>
Wed, 26 Jul 2006 01:16:27 +0000 (01:16 +0000)
committerKenichi Handa <handa@m17n.org>
Wed, 26 Jul 2006 01:16:27 +0000 (01:16 +0000)
(frame_parms): New element for font-backend.
(x_set_font_backend): New function.

src/frame.c

index 1f8c173b9db638d8eced51c94d24aa67c8b2751c..6d1df70955f7b99e9bc9514db3725c6053e12407 100644 (file)
@@ -112,6 +112,9 @@ Lisp_Object Qbuffer_predicate, Qbuffer_list;
 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 @@ static struct frame_parm_table frame_parms[] =
   {"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 @@ x_set_font (f, arg, oldval)
 }
 
 
+#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;