emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r107159: Fix and doc-fix for `buffer-


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r107159: Fix and doc-fix for `buffer-local-variables'.
Date: Tue, 07 Feb 2012 14:34:52 +0800
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 107159
fixes bug(s): http://debbugs.gnu.org/10715
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Tue 2012-02-07 14:34:52 +0800
message:
  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.
modified:
  admin/notes/bugtracker
  doc/lispref/ChangeLog
  doc/lispref/variables.texi
  src/ChangeLog
  src/buffer.c
=== modified file 'admin/notes/bugtracker'
--- a/admin/notes/bugtracker    2011-07-15 02:15:05 +0000
+++ b/admin/notes/bugtracker    2012-02-07 06:34:52 +0000
@@ -640,3 +640,14 @@
 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 address@hidden:/var/lib/debbugs/ DEST
+
+Note that this occupies well over 1G of disk space.

=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog     2012-02-07 04:20:16 +0000
+++ b/doc/lispref/ChangeLog     2012-02-07 06:34:52 +0000
@@ -1,3 +1,8 @@
+2012-02-07  Chong Yidong  <address@hidden>
+
+       * variables.texi (Creating Buffer-Local): Minor clarification
+       to buffer-local-variables doc (Bug#10715).
+
 2012-02-07  Glenn Morris  <address@hidden>
 
        * display.texi (ImageMagick Images): General update.

=== modified file 'doc/lispref/variables.texi'
--- a/doc/lispref/variables.texi        2012-02-04 14:56:32 +0000
+++ b/doc/lispref/variables.texi        2012-02-07 06:34:52 +0000
@@ -1317,11 +1317,12 @@
 
 @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
address@hidden@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

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-02-07 03:46:18 +0000
+++ b/src/ChangeLog     2012-02-07 06:34:52 +0000
@@ -1,3 +1,9 @@
+2012-02-07  Chong Yidong  <address@hidden>
+
+       * 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  <address@hidden>
 
        * image.c (Fimagemagick_types): Doc fix.

=== modified file 'src/buffer.c'
--- a/src/buffer.c      2012-01-19 07:21:25 +0000
+++ b/src/buffer.c      2012-02-07 06:34:52 +0000
@@ -1022,7 +1022,10 @@
       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 @@
        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);
+         }
       }
   }
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]