Subject: bug#50785: 28.0.50; error doesn't use help-key-binding face from substitute-command-keys

From: Stefan Kangas <[email-masked]>
Date: Mon, 29 Aug 2022 10:32:45 -0700

Lars Ingebrigtsen <[email-masked]> writes:

> The error message are output (by default) by print_error_message.  It
> simply does `princ' on the string with a PRINTCHARFUN of t, which is the
> minibuffer.  And if you do that, then you lose the text properties:
>
> (defun foo2 ()
>   (interactive)
>   (princ (substitute-command-keys "Use \\[next-line]") t))
>
> We probably don't want to change something as fundamental as that, so if
> we want to fix this, we have to change print_error_message to just call
> Fmessage instead, I guess?

That's the fix we've used on a Lisp level -- avoiding `princ' in favor
of `insert', etc.

Perhaps it would be nice with a `princ' that preserves text properties?