mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-01 20:06:00 +00:00
Fix and doc-fix for `buffer-local-variables'.
* src/buffer.c (Fbuffer_local_variables) (buffer_lisp_local_variables): Handle unbound vars correctly; don't let Qunbound leak into Lisp. * doc/lispref/variables.texi (Creating Buffer-Local): Minor clarification to buffer-local-variables doc. Fixes: debbugs:10715
This commit is contained in:
parent
75ded89ba5
commit
0992bd9c06
@ -640,3 +640,14 @@ I think you also have to add them to 'tags' and 'tags_single_letter'
|
||||
in /usr/share/perl5/Debbugs/Config.pm.
|
||||
And update /var/www/Developer.html with a description of what the tag means.
|
||||
And the "valid tags" list in /var/www/index.html.
|
||||
|
||||
** Backups
|
||||
|
||||
The FSF sysadmins handle multi-generational backups of the filesystem
|
||||
on debbugs.gnu.org. But if you really want to have your own backup of
|
||||
the bug database, you can use rsync (this requires login access to
|
||||
debbugs.gnu.org):
|
||||
|
||||
rsync -azvv -e ssh USER@debbugs.gnu.org:/var/lib/debbugs/ DEST
|
||||
|
||||
Note that this occupies well over 1G of disk space.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-02-07 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* variables.texi (Creating Buffer-Local): Minor clarification
|
||||
to buffer-local-variables doc (Bug#10715).
|
||||
|
||||
2012-02-07 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* display.texi (ImageMagick Images): General update.
|
||||
|
@ -1317,11 +1317,12 @@ value (@pxref{Default Value}) of @var{variable} instead.
|
||||
|
||||
@defun buffer-local-variables &optional buffer
|
||||
This function returns a list describing the buffer-local variables in
|
||||
buffer @var{buffer}. (If @var{buffer} is omitted, the current buffer is
|
||||
used.) It returns an association list (@pxref{Association Lists}) in
|
||||
which each element contains one buffer-local variable and its value.
|
||||
However, when a variable's buffer-local binding in @var{buffer} is void,
|
||||
then the variable appears directly in the resulting list.
|
||||
buffer @var{buffer}. (If @var{buffer} is omitted, the current buffer
|
||||
is used.) Normally, each list element has the form
|
||||
@w{@code{(@var{sym} . @var{val})}}, where @var{sym} is a buffer-local
|
||||
variable (a symbol) and @var{val} is its buffer-local value. But when
|
||||
a variable's buffer-local binding in @var{buffer} is void, its list
|
||||
element is just @var{sym}.
|
||||
|
||||
@example
|
||||
@group
|
||||
|
@ -1,3 +1,9 @@
|
||||
2012-02-07 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* buffer.c (Fbuffer_local_variables)
|
||||
(buffer_lisp_local_variables): Handle unbound vars correctly;
|
||||
don't let Qunbound leak into Lisp.
|
||||
|
||||
2012-02-07 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* image.c (Fimagemagick_types): Doc fix.
|
||||
|
14
src/buffer.c
14
src/buffer.c
@ -1022,7 +1022,10 @@ buffer_lisp_local_variables (struct buffer *buf)
|
||||
if (buf != current_buffer)
|
||||
val = XCDR (elt);
|
||||
|
||||
result = Fcons (Fcons (XCAR (elt), val), result);
|
||||
result = Fcons (EQ (val, Qunbound)
|
||||
? XCAR (elt)
|
||||
: Fcons (XCAR (elt), val),
|
||||
result);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -1064,9 +1067,12 @@ No argument or nil as argument means use current buffer as BUFFER. */)
|
||||
idx = PER_BUFFER_IDX (offset);
|
||||
if ((idx == -1 || PER_BUFFER_VALUE_P (buf, idx))
|
||||
&& SYMBOLP (PER_BUFFER_SYMBOL (offset)))
|
||||
result = Fcons (Fcons (PER_BUFFER_SYMBOL (offset),
|
||||
PER_BUFFER_VALUE (buf, offset)),
|
||||
result);
|
||||
{
|
||||
Lisp_Object sym = PER_BUFFER_SYMBOL (offset);
|
||||
Lisp_Object val = PER_BUFFER_VALUE (buf, offset);
|
||||
result = Fcons (EQ (val, Qunbound) ? sym : Fcons (sym, val),
|
||||
result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user