Subject: bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong

From: Gregory Heytings <[email-masked]>
Date: Mon, 26 Dec 2022 00:46:30 +0000

By the way, I did not realize that the docstring of 'set-face-attribute' 
says nothing about the evaluation order of its arguments.  I suggest the 
attached patch.

Eli, is this okay for the release branch?
From 738f8172127b5eb180d97ba793ad77477c00b494 Mon Sep 17 00:00:00 2001
From: Gregory Heytings <[email-masked]>
Date: Mon, 26 Dec 2022 00:42:23 +0000
Subject: [PATCH] Clarify evaluation order in 'set-face-attribute'

* lisp/faces.el (set-face-attribute): Add a paragraph to clarify
in what order the arguments are evaluated, and the consequences of
that evaluation order.
---
 lisp/faces.el | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/lisp/faces.el b/lisp/faces.el
index 29e26e4c651..8cdc739fa7c 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -690,6 +690,17 @@ set-face-attribute
 what the FACE's face spec says, call this function with FRAME set to
 t and the ATTRIBUTE's value set to `unspecified'.
 
+Note that the ATTRIBUTE VALUE pairs are evaluated in the order
+they are specified, except the `:family' and `:foundry'
+attributes which are evaluated first.  This means both that only
+the last VALUE of a given ATTRIBUTE will be used, and that in
+some cases a different order will give different results.  For
+example, when `:weight' is placed before `:font', the weight
+value is applied to the current font of the face and might be
+rounded to the closest available weight of that font, whereas
+when `:font' is placed before `:weight' the weight value is
+applied to the specified font.
+
 The following attributes are recognized:
 
 `:family'
-- 
2.35.1