* doc.c (store_function_docstring): Avoid applying docstring of alias to base function.
authorChong Yidong <cyd@gnu.org>
Mon, 6 Feb 2012 13:43:39 +0000 (21:43 +0800)
committerChong Yidong <cyd@gnu.org>
Mon, 6 Feb 2012 13:43:39 +0000 (21:43 +0800)
Fixes: debbugs:2603

src/ChangeLog
src/doc.c

index 2353cc1..860a059 100644 (file)
@@ -1,3 +1,8 @@
+2012-02-06  Chong Yidong  <cyd@gnu.org>
+
+       * doc.c (store_function_docstring): Avoid applying docstring of
+       alias to base function (Bug#2603).
+
 2012-02-04  Andreas Schwab  <schwab@linux-m68k.org>
 
        * .gdbinit (pp1, pv1): Remove redundant defines.
index 7bdb8c6..ad2c667 100644 (file)
--- a/src/doc.c
+++ b/src/doc.c
@@ -502,10 +502,12 @@ aren't strings.  */)
 /* Scanning the DOC files and placing docstring offsets into functions.  */
 
 static void
-store_function_docstring (Lisp_Object fun, EMACS_INT offset)
+store_function_docstring (Lisp_Object sym, EMACS_INT offset)
 /* Use EMACS_INT because we get offset from pointer subtraction.  */
 {
-  fun = indirect_function (fun);
+  /* Don't use indirect_function here, or defaliases will apply their
+     docstrings to the base functions (Bug#2603).  */
+  Lisp_Object fun = XSYMBOL (sym)->function;
 
   /* The type determines where the docstring is stored.  */