GNU bug report logs - #11930
24.1.50; kill-all-local-variables ignores some non-permanent-local vars

Previous Next

Package: emacs;

Reported by: Chong Yidong <cyd <at> gnu.org>

Date: Fri, 13 Jul 2012 07:50:01 UTC

Severity: normal

Found in version 24.1.50

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Chong Yidong <cyd <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#11930: closed (24.1.50; kill-all-local-variables ignores some
 non-permanent-local vars)
Date: Fri, 13 Jul 2012 14:33:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 13 Jul 2012 22:26:27 +0800
with message-id <87r4sf3ffw.fsf <at> gnu.org>
and subject line Re: bug#11930: 24.1.50; kill-all-local-variables ignores some non-permanent-local vars
has caused the debbugs.gnu.org bug report #11930,
regarding 24.1.50; kill-all-local-variables ignores some non-permanent-local vars
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
11930: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11930
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Chong Yidong <cyd <at> gnu.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.1.50;
	kill-all-local-variables ignores some non-permanent-local vars
Date: Fri, 13 Jul 2012 15:43:16 +0800
The documentation of `kill-all-local-variables' says only that it does
not reset variables marked as `permanent-local'.  But it also seems to
ignore certain per-buffer variables that lack the `permanent-local'
property.  One such variable is `buffer-read-only':

emacs -Q
M-: (setq buffer-read-only t) RET     (or just C-x C-q)
M-: (kill-all-local-variables) RET
C-h v buffer-read-only RET

  buffer-read-only is a variable defined in `C source code'.
  Its value is t
  Local in buffer *scratch*; global value is nil

M-: (get 'buffer-read-only 'permanent-local)
  => nil

The `default-directory' variable also behaves this way.  Other
per-buffer variables, like `line-spacing', ARE reset by
`kill-all-local-variables'.

We should assign a non-nil `permanent-local' property to these
variables.  Even if the internal code doesn't need the property to work
for these variables, it would be a useful signal for Lisp programmers.

Off the top of my head, I'm guessing the affected variables are those
listed in buffer.c:4961 (with a -1 index in buffer_local_flags).


In GNU Emacs 24.1.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.4.2)
 of 2012-07-13 on ulysses
Bzr revision: 109067 eggert <at> cs.ucla.edu-20120713035058-5m17bmslw6b9z0s2


[Message part 3 (message/rfc822, inline)]
From: Chong Yidong <cyd <at> gnu.org>
To: 11930-done <at> debbugs.gnu.org
Subject: Re: bug#11930: 24.1.50;
	kill-all-local-variables ignores some non-permanent-local vars
Date: Fri, 13 Jul 2012 22:26:27 +0800
> We should assign a non-nil `permanent-local' property to these
> variables.  Even if the internal code doesn't need the property to work
> for these variables, it would be a useful signal for Lisp programmers.

Done in r109073.


This bug report was last modified 12 years and 313 days ago.

Previous Next


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