GNU bug report logs - #50785
28.0.50; error doesn't use help-key-binding face from substitute-command-keys

Previous Next

Package: emacs;

Reported by: Stefan Kangas <stefan <at> marxist.se>

Date: Fri, 24 Sep 2021 18:34:02 UTC

Severity: minor

Found in version 28.0.50

Full log


Message #11 received at 50785 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: 50785 <at> debbugs.gnu.org
Subject: Re: bug#50785: 28.0.50; error doesn't use help-key-binding face
 from substitute-command-keys
Date: Mon, 29 Aug 2022 18:29:37 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> Hm...  is `error' stripping text properties before displaying, by any
> chance?  If so, is there any particular reason why that would make sense
> in general?  Hm...  perhaps the idea is that `error' is used in
> low-level circumstances, so we don't want to rely on faces etc actually
> working?
>
> Anybody know?

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?





This bug report was last modified 2 years and 293 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.