]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/doc.c (Fsnarf_documentation): Snarf not-yet-bound variables
authorGlenn Morris <rgm@gnu.org>
Fri, 28 Feb 2014 02:00:17 +0000 (21:00 -0500)
committerGlenn Morris <rgm@gnu.org>
Fri, 28 Feb 2014 02:00:17 +0000 (21:00 -0500)
from custom-delayed-init-variables.

Fixes: debbugs:11565
src/ChangeLog
src/doc.c

index 9ec638374f5b995484f703485c3c4916cdea50e2..75dfdf71bd56aa23f80c508302ae9fc3cf175697 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-28  Glenn Morris  <rgm@gnu.org>
+
+       * doc.c (Fsnarf_documentation): Snarf not-yet-bound variables
+       from custom-delayed-init-variables.  (Bug#11565)
+
 2014-02-27  Martin Rudalics  <rudalics@gmx.at>
 
        More fixes for mouse glyph calculations (Bug#16647).
index ecefd776b853fb0fdec60f8046c5b854998fc7a2..a42874f45032ad9414b4994c4bd0ff22012a7938 100644 (file)
--- a/src/doc.c
+++ b/src/doc.c
@@ -1,7 +1,6 @@
 /* Record indices of function doc strings stored in a file.
 
-Copyright (C) 1985-1986, 1993-1995, 1997-2014 Free Software Foundation,
-Inc.
+Copyright (C) 1985-1986, 1993-1995, 1997-2014 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -559,6 +558,12 @@ the same file name is found in the `doc-directory'.  */)
   char *p, *name;
   bool skip_file = 0;
   ptrdiff_t count;
+  /* Preloaded defcustoms using custom-initialize-delay are added to
+     this list, but kept unbound.  See http://debbugs.gnu.org/11565  */
+  Lisp_Object delayed_init =
+    find_symbol_value (intern ("custom-delayed-init-variables"));
+
+  if (EQ (delayed_init, Qunbound)) delayed_init = Qnil;
 
   CHECK_STRING (filename);
 
@@ -656,7 +661,8 @@ the same file name is found in the `doc-directory'.  */)
                  /* Install file-position as variable-documentation property
                     and make it negative for a user-variable
                     (doc starts with a `*').  */
-                  if (!NILP (Fboundp (sym)))
+                  if (!NILP (Fboundp (sym))
+                      || !NILP (Fmemq (sym, delayed_init)))
                     Fput (sym, Qvariable_documentation,
                           make_number ((pos + end + 1 - buf)
                                        * (end[1] == '*' ? -1 : 1)));