From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Helmut Eller Newsgroups: gmane.emacs.bugs Subject: bug#9469: buffer-local variables seem to remember previous values Date: Sun, 11 Sep 2011 21:37:25 +0200 Message-ID: References: <70AD30BE45C847BE828A3E8A71280A8E@us.oracle.com> <95CFAF98BEBE4DFAB885B85F02126C57@us.oracle.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1315769937 6939 80.91.229.12 (11 Sep 2011 19:38:57 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 11 Sep 2011 19:38:57 +0000 (UTC) To: 9469@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Sep 11 21:38:53 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1R2prh-0003Qm-7W for geb-bug-gnu-emacs@m.gmane.org; Sun, 11 Sep 2011 21:38:53 +0200 Original-Received: from localhost ([::1]:47381 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R2prg-0004LZ-Or for geb-bug-gnu-emacs@m.gmane.org; Sun, 11 Sep 2011 15:38:52 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:52276) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R2pra-0004LJ-JQ for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2011 15:38:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R2prZ-0002CY-HC for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2011 15:38:46 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:38928) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R2prZ-0002CU-EQ for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2011 15:38:45 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1R2pvi-0004Oh-AA; Sun, 11 Sep 2011 15:43:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Helmut Eller Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 11 Sep 2011 19:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9469 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.131577012216840 (code B ref -1); Sun, 11 Sep 2011 19:43:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 11 Sep 2011 19:42:02 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R2puk-0004NX-AS for submit@debbugs.gnu.org; Sun, 11 Sep 2011 15:42:02 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R2puh-0004N8-3f for submit@debbugs.gnu.org; Sun, 11 Sep 2011 15:42:00 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R2pqV-000224-MA for submit@debbugs.gnu.org; Sun, 11 Sep 2011 15:37:41 -0400 Original-Received: from lists.gnu.org ([140.186.70.17]:54161) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R2pqV-00021s-Kc for submit@debbugs.gnu.org; Sun, 11 Sep 2011 15:37:39 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:51979) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R2pqU-0004KZ-PG for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2011 15:37:39 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R2pqT-00021T-TI for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2011 15:37:38 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:51620) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R2pqT-00021G-O9 for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2011 15:37:37 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1R2pqR-00036E-FH for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2011 21:37:35 +0200 Original-Received: from dial-176163.pool.broadband44.net ([212.46.176.163]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 11 Sep 2011 21:37:35 +0200 Original-Received: from eller.helmut by dial-176163.pool.broadband44.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 11 Sep 2011 21:37:35 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 37 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: dial-176163.pool.broadband44.net User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:TqFgjr3GEW2B89P4bRkr4YpugxE= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sun, 11 Sep 2011 15:43:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 1) X-Received-From: 140.186.70.43 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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:50980 Archived-At: * Lars Magne Ingebrigtsen [2011-09-11 18:54] writes: > Le Wang writes: > >>> This has nothing to do with the use of quote, but with the use of >>> destructive functions (setcdr) on a shared data structure. >> >> Of course you're technically right, but should the manual mention in >> the "quoting" section that using quote the way I did results in a >> shared data structure? This part was surprising to me. > > If I read your code correctly, Andreas is correct and precise as usual, > if a bit terse. :-) > > The thing you're seeing has absolutely nothing to do with the use of > quote. > > You're destructively altering a single list and expecting to see the > list be different in various buffers. Well, quote is tricky! It wouldn't hurt to point out that modifying a quoted list often means modifying your code. E.g. (defun foo () (let ((list '(1 2 3))) (setcdr list (cddr list)))) (equal (copy-tree (symbol-function 'foo)) (progn (foo) (symbol-function 'foo))) returns nil. I think few beginners will see that using setcdr here not only modifies the value stored in the variable list but also modifies the s-exp stored in 'foo. Helmut