GNU bug report logs - #20592
the `display' property messes the `face' properties after `concat'

Previous Next

Package: emacs;

Reported by: Alexander Shukaev <haroogan <at> gmail.com>

Date: Sat, 16 May 2015 23:59:02 UTC

Severity: minor

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 20592 <at> debbugs.gnu.org, haroogan <at> gmail.com
Subject: Re: bug#20592: the `display' property messes the `face' properties
 after	`concat'
Date: Tue, 19 May 2015 18:31:23 +0300
> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
> Cc: Alexander Shukaev <haroogan <at> gmail.com>,  20592 <at> debbugs.gnu.org
> Date: Mon, 18 May 2015 21:20:05 -0400
> 
> > The behavior you observe is because the ':eval' construct expects to
> > produce a single string with either the same common face spec on all
> > of its characters, or no faces at all.  You cannot use ':eval' to
> > produce a string that has more than one face spec on its different
> > characters; if you do, only the face spec of the first character of
> > the string will be honored.
> 
> IIUC, this is the bug that needs to be fixed.
> Or is there a reason to consider this as a feature?

I think the reason for this implementation was to keep the code simple
and efficient.  After all, ':eval' is part of the standard mode line,
in several places, so this code runs each time we update the mode
line, which we do a lot.

I agree that the limitation is counter-intuitive, and barely
documented, but given that using a separate ':eval' is such an easy
solution, perhaps we should simply document this.  Fixing this doesn't
sound as high priority to me.




This bug report was last modified 3 years and 173 days ago.

Previous Next


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