GNU bug report logs -
#9469
buffer-local variables seem to remember previous values
Previous Next
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):
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.