Subject: Re: bug#12050: 23.3; font trashes mode-line file name

From: Eli Zaretskii <[email-masked]>
Date: Sun, 29 Jul 2012 20:25:34 +0300

> Date: Sun, 29 Jul 2012 07:44:16 -0400
> From: [email-masked]
> 
> with the gdb command
> run -q -fn -adobe-times-bold-r-normal--0-0-0-0-p-0-iso8859-15
> the crash occurs at xterm.c:1216
> 1216   else if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width

This is fixed in the development sources, patch below.

> with the gdb command
> run -q -fn -adobe-helvetica-bold-r-normal--0-0-0-0-p-0-iso8859-15
> the crash occurs at xfaces.c:4841
> 4841   if (! EQ (face->font->props[i], def_face->font->props[i]))

Why does this crash? is def_face->font a NULL pointer or something?

> recall that the times line crashes in 23.3 and 24.1 and the helvetica line
> works fine in 23.3 and crashes in 24.1.

Note that both fonts are bold.  If you use the non-bold variant of the
same font, does the problem go away?

--- src/xdisp.c	2012-07-07 21:39:45 +0000
+++ src/xdisp.c	2012-07-08 15:49:39 +0000
@@ -22736,7 +22736,7 @@ fill_glyphless_glyph_string (struct glyp
   last = s->row->glyphs[s->area] + end;
   voffset = glyph->voffset;
   s->face = FACE_FROM_ID (s->f, face_id);
-  s->font = s->face->font;
+  s->font = s->face->font ? s->face->font : FRAME_FONT (s->f);
   s->nchars = 1;
   s->width = glyph->pixel_width;
   glyph++;