From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: make-indirect-buffer Date: Sun, 14 Mar 2004 23:56:59 -0500 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: References: <200403132323.i2DNNMa01190@raven.dms.auburn.edu> Reply-To: rms@gnu.org NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1079327065 8854 80.91.224.253 (15 Mar 2004 05:04:25 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 15 Mar 2004 05:04:25 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Mon Mar 15 06:04:21 2004 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1B2kGz-0006i8-00 for ; Mon, 15 Mar 2004 06:04:21 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1B2kGy-0000AM-00 for ; Mon, 15 Mar 2004 06:04:20 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1B2kFC-00018S-Kx for emacs-devel@quimby.gnus.org; Mon, 15 Mar 2004 00:02:30 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1B2kDM-0000GH-12 for emacs-devel@gnu.org; Mon, 15 Mar 2004 00:00:36 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1B2kDH-0000EN-1i for emacs-devel@gnu.org; Mon, 15 Mar 2004 00:00:33 -0500 Original-Received: from [199.232.76.164] (helo=fencepost.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1B2kDC-0000Ds-KL for emacs-devel@gnu.org; Mon, 15 Mar 2004 00:00:26 -0500 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.24) id 1B2k9r-0001KK-3J; Sun, 14 Mar 2004 23:56:59 -0500 Original-To: Luc Teirlinck In-reply-to: <200403132323.i2DNNMa01190@raven.dms.auburn.edu> (message from Luc Teirlinck on Sat, 13 Mar 2004 17:23:22 -0600 (CST)) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:20480 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:20480 What happens instead is that we wind up with shared local variables, whose value when set in either buffer also affects the value in the other. That is definitely a bug. Does this fix it correctly? *** buffer.c.~1.445.~ Mon Feb 16 16:22:55 2004 --- buffer.c Sun Mar 14 23:01:12 2004 *************** *** 487,493 **** clone_per_buffer_values (from, to) struct buffer *from, *to; { ! Lisp_Object to_buffer; int offset; XSETBUFFER (to_buffer, to); --- 487,493 ---- clone_per_buffer_values (from, to) struct buffer *from, *to; { ! Lisp_Object to_buffer, tem; int offset; XSETBUFFER (to_buffer, to); *************** *** 514,519 **** --- 514,527 ---- to->overlays_before = copy_overlays (to, from->overlays_before); to->overlays_after = copy_overlays (to, from->overlays_after); + + /* Copy the alist of local variables, + and all the alist elements too. */ + to->local_var_alist + = Fcopy_sequence (from->local_var_alist); + for (tem = to->local_var_alist; CONSP (tem); + tem = XCDR (tem)) + XSETCAR (tem, Fcons (XCAR (XCAR (tem)), XCDR (XCAR (tem)))); }