Subject: Re: bug#39812: 26.1; face-remapping-alist is sometimes set to an unexpected value

From: Noam Postavsky <[email-masked]>
Date: Thu, 05 Mar 2020 07:48:25 -0500

Markus Triska <[email-masked]> writes:

>> face-remap-add-relative destructively modifies the list value, so
>> setting face-remapping-alist to a quoted literal gives unexpected
>> results like this.
>
> Thank you for looking into this! Using copy-tree makes it work.
>
> However, I find it very unexpected that face remapping modifies a value
> that appears as a literal constant in my own code. Is it possible to
> make face remapping word without such destructive side-effects?

I guess it should be easy enough to add a copy-tree call in
face-remap-add-relative, but it looks like a couple of other functions
also modify the value destructively.

> Alternatively, would you please consider documenting how to work around
> this, for example at the place where the sample snippet is mentioned?

So updating the docs might be easier than trying to catch all the
potential trouble spots.