GNU bug report logs - #9469
buffer-local variables seem to remember previous values

Previous Next

Package: emacs;

Reported by: Le Wang <l26wang <at> gmail.com>

Date: Sat, 10 Sep 2011 17:12:01 UTC

Severity: normal

Tags: notabug

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

Bug is archived. No further changes may be made.

Full log


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

From: Le Wang <l26wang <at> gmail.com>
To: Lars Magne Ingebrigtsen <larsi <at> gnus.org>
Cc: Andreas Schwab <schwab <at> linux-m68k.org>, 9469 <at> debbugs.gnu.org
Subject: Re: bug#9469: buffer-local variables seem to remember previous values
Date: Mon, 12 Sep 2011 03:18:39 +0800
On Mon, Sep 12, 2011 at 2:54 AM, Lars Magne Ingebrigtsen <larsi <at> gnus.org> wrote:
> If I read your code correctly, Andreas is correct and precise as usual,
> if a bit terse.  :-)

Ok, that was my fault.  I didn't know how to make heads or tails of
the situation, so included some red herrings in my original snippet.
This should clarify my exact point of confusion:

(setq foo-alist nil)
	;; => nil

(defun reset-var-in-foo-alist ()
  (push '(:var . 0) foo-alist))
	;; => reset-var-in-foo-alist

(defun increment-var-in-foo-alist ()
  (let ((var-cons (assq :var foo-alist)))
    (setcdr var-cons (1+ (cdr var-cons)))))
	;; => increment-var-in-foo-alist


(reset-var-in-foo-alist)
	;; => ((:var . 0))
(increment-var-in-foo-alist)
	;; => 1
(reset-var-in-foo-alist)
	;; => ((:var . 1) (:var . 1))


Again, my misunderstanding was that in `reset-var-in-foo-alist' quote
does not cons, I assumed it did.

-- 
Le




This bug report was last modified 13 years and 307 days ago.

Previous Next


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