changeset 56855:650b7ca40098

2004-08-31 NAKAMURA Toshikazu <nr-tkz@nifty.com> (tiny change) * w32fns.c (w32_load_font): If a BDF font is already loaded, do not reload it.
author Jason Rumney <jasonr@gnu.org>
date Tue, 31 Aug 2004 22:43:26 +0000
parents aca407ec32fc
children d407cd57475c
files src/w32fns.c
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32fns.c	Tue Aug 31 22:42:35 2004 +0000
+++ b/src/w32fns.c	Tue Aug 31 22:43:26 2004 +0000
@@ -4642,6 +4642,7 @@
 {
   Lisp_Object bdf_fonts;
   struct font_info *retval = NULL;
+  struct w32_display_info *dpyinfo = FRAME_W32_DISPLAY_INFO (f);
 
   bdf_fonts = w32_list_bdf_fonts (build_string (fontname), 1);
 
@@ -4649,11 +4650,22 @@
     {
       char *bdf_name, *bdf_file;
       Lisp_Object bdf_pair;
+      int i;
 
       bdf_name = SDATA (XCAR (bdf_fonts));
       bdf_pair = Fassoc (XCAR (bdf_fonts), Vw32_bdf_filename_alist);
       bdf_file = SDATA (XCDR (bdf_pair));
 
+      // If the font is already loaded, do not load it again.
+      for (i = 0; i < dpyinfo->n_fonts; i++)
+	{
+	  if ((dpyinfo->font_table[i].name
+	       && !strcmp (dpyinfo->font_table[i].name, bdf_name))
+	      || (dpyinfo->font_table[i].full_name
+		  && !strcmp (dpyinfo->font_table[i].full_name, bdf_name)))
+	    return dpyinfo->font_table[i];
+	}
+
       retval = w32_load_bdf_font (f, bdf_name, size, bdf_file);
 
       bdf_fonts = XCDR (bdf_fonts);