# HG changeset patch # User Jason Rumney # Date 1202086293 0 # Node ID d3d1ab7e6e35e43f87c0201d29cbc6b907a92b71 # Parent d342b8d1b1cdb348cbbb33b5934d38427edd2e3a (w32font_open_internal): Use font_unparse_fcname to set full_name. diff -r d342b8d1b1cd -r d3d1ab7e6e35 src/w32font.c --- a/src/w32font.c Sun Feb 03 21:59:56 2008 +0000 +++ b/src/w32font.c Mon Feb 04 00:51:33 2008 +0000 @@ -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'; - font->font.full_name = font->font.name; + + { + 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;