GNU bug report logs -
#5971
23.1.95; `delete' modifies default value instead of buffer-local value
Previous Next
Reported by: "Drew Adams" <drew.adams <at> oracle.com>
Date: Mon, 19 Apr 2010 02:43:02 UTC
Severity: minor
Tags: notabug, wontfix
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> > Before closing the bug, please consider adding something to
> > the doc that might make this gotcha clearer. Perhaps something
> > like this:
> >
> > Although `make-variable-buffer-local' makes its argument
> > variable become buffer local whenever it is set, any
> > references to the variable before it is set return
> > its default value. That includes any occurrences of the
> > variable in an expression used to calculate the new,
> > buffer-local value.
>
> That is implied by the fact that make-variable-buffer-local
> is a function (vs. macro vs. special form): its argument
> forms are evaluated before being passed to the function by eval.
Yeah, I know. And I shoulda known better. I didn't pay attention to the fact
that I had a defvar that set the default value to a cons cell - originally it
was nil (as it is again now). Still, it might help if we said something more
(admittedly different from what I suggested), to help users avoid such problems
destructively modifying the default value.
This bug report was last modified 13 years and 321 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.