Subject: 28.0.50; set-face-attribute cannot read :family when different :weight exist
From: Protesilaos Stavrou <[email-masked]>
To: [email-masked]
Date: Sat, 16 Jan 2021 22:09:54 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Dear maintainers,

I have noticed that setting fonts via 'set-face-attribute' works as
intended except in the following scenario (on 'emacs -Q'):

   ;; Sample 1
   (set-face-attribute 'default nil
                       :family "Source Code Pro"
                       :weight 'light)

   ;; Sample 2
   (set-face-attribute 'default nil
                       :family "Hack"
                       :weight 'normal)

If you evaluate sample 1, you will get the desired behaviour.  Namely,
the font family for the default face is the one specified, as is the
typographic weight.

Now if you proceed to evaluate sample 2, you will notice that only the
weight gets updated.  The family continues to be that of sample 1.

At this point, to get the family of sample 2, you need to evaluate
sample 2 one more time.

I tried various combinations and my impression is that the problem
occurs when the :weight properties are different.  Other properties,
such as :height, do not exhibit this behaviour.

Can you reproduce this on your end?

All the best,
Protesilaos

-- 
Protesilaos Stavrou
protesilaos.com