Subject: bug#5971: 23.1.95; `delete' modifies default value instead of buffer-local value

From: "Drew Adams" <[email-masked]>
Date: Mon, 19 Apr 2010 09:15:46 -0700

> > Why? (You're not helping, just being evasive.) Why should 
> > modification of a buffer-local value also modify the default value?
> 
> delete works by side effect.  If you don't want this use remove.
> 
> > If this is not a product bug, it is at least a doc bug.
> 
> Delete by side effect any occurrences of ELT as a member of SEQ.
>           ^^^^^^^^^^^
> Pretty clear description.

I'm well aware that `delete' deletes by side effect.
Please read the thread and that will be quite clear.

What's not clear is that a side effect on a buffer-local value should affect the
default value.

Nothing in the doc states that they share list structure. Apparently they do.
This relation between the two needs to be documented. From reading the doc there
is nothing that would lead you to expect that setting the buffer-local value
would ever change the default value.

The doc presents the two values (buffer-local and default) as being separate.
The only relation described between the two is that if the buffer-local value is
not set then the default value is used for the variable.

In this case, the buffer-local value is not set in buffer Y, so it uses the
default value. What's not clear is why setting the buffer-local value in buffer
X changed the default value (so it was used in buffer Y, where the b-l value was
not set).