Subject: Re: bug#22780: 25.1.50; wrong average width picked for bold face for 7x13 X11 font

From: Eli Zaretskii <[email-masked]>
Date: Wed, 15 Mar 2017 17:39:32 +0200

> From: [email-masked] (Andrew M. Bishop)
> Date: Tue, 14 Mar 2017 19:50:40 +0000
> Cc: [email-masked]
> 
> I have also found this problem since I use 7x13 as my default font.
> The widening of the bold version of this font makes Emacs version 25
> unusable by me.
> 
> Using Alex Khesin's test case:
> 
> $ emacs -Q --eval '(progn (set-face-font '\''default "7x13") (print (face-font "default")) (print (face-font "bold")))'
> 
> I find that these fonts all work correctly (the width is the same for
> normal and bold versions):  6x9, 6x10, 6x12, 6x13, 7x14, 8x13, 8x16.
> 
> It is only the 7x13 font that does not scale correctly since it gives
> different widths (80 compared to 70) for the bold compared to normal
> font:
> 
>   -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
>   -misc-fixed-bold-r-normal--13-120-75-75-c-80-iso8859-1
> 
> 
> Using 'git bisect' I traced down the change that caused it and
> demonstrated that it can be fixed by this patch.
> 
> -------------------- src/xfaces.c patch --------------------
> diff --git a/src/xfaces.c b/src/xfaces.c
> index 5077cb2d94..c898b7886f 100644
> --- a/src/xfaces.c
> +++ b/src/xfaces.c
> @@ -5485,7 +5485,7 @@ realize_x_face (struct face_cache *cache, Lisp_Object attrs[LFACE_VECTOR_SIZE])
>  	}
>        if (! FONT_OBJECT_P (attrs[LFACE_FONT_INDEX]))
>  	attrs[LFACE_FONT_INDEX]
> -	  = font_load_for_lface (f, attrs, Ffont_spec (0, NULL));
> +	  = font_load_for_lface (f, attrs, attrs[LFACE_FONT_INDEX]);
>        if (FONT_OBJECT_P (attrs[LFACE_FONT_INDEX]))
>  	{
>  	  face->font = XFONT_OBJECT (attrs[LFACE_FONT_INDEX]);
> -------------------- src/xfaces.c patch --------------------
> 
> This reverts a patch that was made as part of bug #17973.  The change
> in src/font.c that was also made in that bug report seems to not be
> relevant.
> 
> This is clearly a regression from Emacs 24 but since this change was
> made to fix another bug it might be quite difficult to find a change
> that works for both.

I'm CC'ing Handa-san who was involved in solving that bug.  Reverting
the solution for that bug is clearly not TRT, but I hope Handa-san
will have comments about your particular problem.

Thanks.