From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#53294: 29.0.50; Indirect font changes incorrectly affecting original buffer Date: Sun, 16 Jan 2022 12:11:39 -0500 Message-ID: References: <835yqkyqzw.fsf@gnu.org> <83lezfybc9.fsf@gnu.org> <83ilujy9fi.fsf@gnu.org> Reply-To: Stefan Monnier Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20101"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: Andrew Hyatt , 53294@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jan 16 18:12:19 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n994k-00052G-F3 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 16 Jan 2022 18:12:18 +0100 Original-Received: from localhost ([::1]:44788 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n994j-0000oe-Bh for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 16 Jan 2022 12:12:17 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:58190) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n994W-0000mz-6B for bug-gnu-emacs@gnu.org; Sun, 16 Jan 2022 12:12:05 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:51259) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n994U-0000LF-KY for bug-gnu-emacs@gnu.org; Sun, 16 Jan 2022 12:12:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1n994U-0002kL-Dj for bug-gnu-emacs@gnu.org; Sun, 16 Jan 2022 12:12:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 16 Jan 2022 17:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53294 X-GNU-PR-Package: emacs Original-Received: via spool by 53294-submit@debbugs.gnu.org id=B53294.164235311010536 (code B ref 53294); Sun, 16 Jan 2022 17:12:02 +0000 Original-Received: (at 53294) by debbugs.gnu.org; 16 Jan 2022 17:11:50 +0000 Original-Received: from localhost ([127.0.0.1]:44162 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n994I-0002js-2d for submit@debbugs.gnu.org; Sun, 16 Jan 2022 12:11:50 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:1590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n994G-0002jf-FK for 53294@debbugs.gnu.org; Sun, 16 Jan 2022 12:11:49 -0500 Original-Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id D2083440C30; Sun, 16 Jan 2022 12:11:42 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 61551440C17; Sun, 16 Jan 2022 12:11:41 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1642353101; bh=+N7erWjziUCdz4XWPdWES5Hp6R4fhUWRXobHLDSsuOw=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=bKatno6hWkjS4I7A43OME3/OY6F5tEfb5LPfYD2UshDhHKHztAW1U5CW3QtZjE/s6 iHoPZhuISvRnxAGBrtddEB9rjKPZ0xwPFCKhARUZYXaqlwbVpNDsl4Ysk7PBF9QPxI c2Xqg8gIG+3LZKs2pfkDo0nBmzn3OUzb0T50wGxqWhW7fFO05eJRlfrCHbUSoLAIKg 4SyWurYpNdz7m5jihgG3IDrxy2GIKHzcoGs1JzMJTQoJCNjtW42pHCRg7Le15IBou+ 61hJBh2Au4A26Z8SAYnWcV20SSZ9nwpOjvKB2ifTE5elQ69+kQms0wXXjDpG3TH/N/ DDKIQIHEyJ1BA== Original-Received: from pastel (unknown [216.154.30.173]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 283C91207C9; Sun, 16 Jan 2022 12:11:41 -0500 (EST) In-Reply-To: <83ilujy9fi.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 16 Jan 2022 17:41:53 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:224402 Archived-At: >> > But "inheriting" the state means the indirect buffer gets the >> > copy of the variables of the original buffer, and that is not a >> > deep copy, AFAIU. >> > Stefan, any comments on this issue? >> Sorry, I may have been unclear. I'm not disagreeing - what you >> just said is correct. But, because of that, it's a bug for code to >> make an indirect buffer, then perform operations on it via setcdr >> or setf like things, which then will affect the original buffer's >> variables. > I'm not sure it's a bug. It could be a "feature", not limited to > face-remapping-alist, but instead affecting every buffer-local > variable that is not a simple scalar. `make-indirect-buffer` can't do the right thing, indeed, because different variables need different handling. `clone-buffer` tries to handle these issues by relying on `clone-buffer-hook` to handle the various variables on a case-by-case basis, but `make-indirect-buffer` doesn't come with such a hook. Some ways we can fix this: - In `face-remap.el`, refrain from modifying the `face-remapping-alist` by side-effects (i.e. avoid `delq`, `setcdr`, and friends). - Add a `make-indirect-buffer-hook` and arrange for `face-remap.el` to add a function there that does a deep enough copy of `face-remapping-alist`. - Remember that indirect buffers are an attractive nuisance and should be deprecated (but note that I suspect the same bug affects `clone-buffer` because it doesn't make a deep enough copy of `face-remapping-alist` either). Stefan