emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r100630: Don't use font names from GC


From: Jan D.
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r100630: Don't use font names from GConf if font backend can't handle it (bug#6478).
Date: Tue, 22 Jun 2010 09:55:08 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100630
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Tue 2010-06-22 09:55:08 +0200
message:
  Don't use font names from GConf if font backend can't handle it (bug#6478).
  
  * xfns.c (x_default_font_parameter): Try to open font from system
  before using it (bug#6478).  Rename got_from_gconf to got_from_system.
modified:
  src/ChangeLog
  src/xfns.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2010-06-22 06:42:00 +0000
+++ b/src/ChangeLog     2010-06-22 07:55:08 +0000
@@ -1,3 +1,8 @@
+2010-06-22  Jan Djärv  <address@hidden>
+
+       * xfns.c (x_default_font_parameter): Try to open font from system
+       before using it (bug#6478).  Rename got_from_gconf to got_from_system.
+
 2010-06-22  Keith Packard <address@hidden> (tiny change)
 
        * font.c (font_parse_fcname): Allow . for sizes like 7.5 (bug#6437).

=== modified file 'src/xfns.c'
--- a/src/xfns.c        2010-04-13 08:19:05 +0000
+++ b/src/xfns.c        2010-06-22 07:55:08 +0000
@@ -3064,8 +3064,8 @@
   struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
   Lisp_Object font_param = x_get_arg (dpyinfo, parms, Qfont, NULL, NULL,
                                       RES_TYPE_STRING);
-  Lisp_Object font;
-  int got_from_gconf = 0;
+  Lisp_Object font = Qnil;
+  int got_from_system = 0;
   if (EQ (font_param, Qunbound))
     font_param = Qnil;
 
@@ -3075,14 +3075,20 @@
          regardless of font-use-system-font because .emacs may not have been
          read yet.  */
       const char *system_font = xsettings_get_system_font ();
-      if (system_font) font_param = make_string (system_font,
-                                                 strlen (system_font));
+      if (system_font)
+        {
+          char *name = xstrdup (system_font);
+          font = font_open_by_name (f, name);
+          got_from_system = ! NILP (font);
+          free (name);
+        }
     }
-  
-  font = !NILP (font_param) ? font_param
-    : x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING);
-
-  if (! STRINGP (font))
+
+  if (NILP (font))
+      font = !NILP (font_param) ? font_param
+      : x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING);
+
+  if (! FONTP (font) && ! STRINGP (font))
     {
       char *names[]
        = {
@@ -3120,8 +3126,8 @@
     }
 
   x_default_parameter (f, parms, Qfont, font,
-                       got_from_gconf ? NULL : "font",
-                       got_from_gconf ? NULL : "Font",
+                       got_from_system ? NULL : "font",
+                       got_from_system ? NULL : "Font",
                        RES_TYPE_STRING);
 }
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]