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
[Message part 1 (text/plain, inline)]
This is an automatic notification regarding your bug report
which was filed against the emacs package:
#5971: 23.1.95; `delete' modifies default value instead of buffer-local value
It has been closed by Stefan Monnier <monnier <at> iro.umontreal.ca>.
Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Stefan Monnier <monnier <at> iro.umontreal.ca> by
replying to this email.
--
5971: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5971
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
>> > This doesn't seem right to me.
>> Why not? That's the whole reason for the existence of two functions:
>> `delete' and `remove'.
> I'm aware that `delete' modifies the list structure and `remove' uses
> a copy. What I don't understand is the interaction with a default
> value instead of a buffer-local value. Why would `delete' cause the
> behavior described?
Why not?
Stefan
PS: Closing this. You can continue the discussion on gnu.emacs.help
(or even comp.lang.lisp, tho I never read that one and they're probably
not that familiar with buffer-local variables).
[Message part 3 (message/rfc822, inline)]
Visit this file, without loading it:
http://www.emacswiki.org/emacs/wide-n.el
Change this line:
(setq wide-n-restrictions
(remove (cons mrk1 mrk2) wide-n-restrictions))
To this:
(setq wide-n-restrictions
(delete (cons mrk1 mrk2) wide-n-restrictions))
Then load the file (with `delete'). Then:
In some buffer X, do `C-x n n', then `C-x n x'.
Check the value of variable `wide-n-restrictions'.
In another buffer Y, just check the value of the variable. You will see
that the default value, which should be `(all)', has been changed to be what the
new value is for buffer X.
Try the same thing again (starting from scratch), but using `remove' (the
original code) instead of `delete'. There is no problem now: only the
buffer-local value is ever set.
This doesn't seem right to me.
In GNU Emacs 23.1.95.1 (i386-mingw-nt5.1.2600)
of 2010-04-03 on G41R2F1
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --no-opt --cflags
-Ic:/imagesupport/include'
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.