emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/w32font.c,v


From: Jason Rumney
Subject: [Emacs-diffs] Changes to emacs/src/w32font.c,v
Date: Mon, 04 Feb 2008 00:51:34 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Jason Rumney <jasonr>   08/02/04 00:51:34

Index: w32font.c
===================================================================
RCS file: /sources/emacs/emacs/src/w32font.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- w32font.c   2 Feb 2008 04:33:06 -0000       1.3
+++ w32font.c   4 Feb 2008 00:51:33 -0000       1.4
@@ -227,8 +227,12 @@
       font->font.font = 0;
     }
 
+  if (font->font.full_name && font->font.full_name != font->font.name)
+    xfree (font->font.full_name);
+
   if (font->font.name)
     xfree (font->font.name);
+
   xfree (font);
 }
 
@@ -678,7 +682,27 @@
   font->font.name = (char *) xmalloc (len + 1);
   bcopy (logfont.lfFaceName, font->font.name, len);
   font->font.name[len] = '\0';
+
+  {
+    char *name;
+
+    /* We don't know how much space we need for the full name, so start with
+       96 bytes and go up in steps of 32.  */
+    len = 96;
+    name = malloc (len);
+    while (name && font_unparse_fcname (font_entity, pixel_size, name, len) < 
0)
+      {
+        char *new = realloc (name, len += 32);
+
+        if (! new)
+          free (name);
+        name = new;
+      }
+    if (name)
+      font->font.full_name = name;
+    else
   font->font.full_name = font->font.name;
+  }
   font->font.charset = 0;
   font->font.codepage = 0;
   font->font.size = w32_font->metrics.tmMaxCharWidth;




reply via email to

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