aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/data.c b/src/data.c
index 3e58fb00c3d..1f82f929281 100644
--- a/src/data.c
+++ b/src/data.c
@@ -6,7 +6,7 @@ This file is part of GNU Emacs.
6 6
7GNU Emacs is free software; you can redistribute it and/or modify 7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by 8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2, or (at your option) 9the Free Software Foundation; either version 3, or (at your option)
10any later version. 10any later version.
11 11
12GNU Emacs is distributed in the hope that it will be useful, 12GNU Emacs is distributed in the hope that it will be useful,
@@ -751,7 +751,22 @@ Value, if non-nil, is a list \(interactive SPEC). */)
751 (cmd) 751 (cmd)
752 Lisp_Object cmd; 752 Lisp_Object cmd;
753{ 753{
754 Lisp_Object fun = indirect_function (cmd); 754 Lisp_Object fun = indirect_function (cmd); /* Check cycles. */
755
756 if (NILP (fun) || EQ (fun, Qunbound))
757 return Qnil;
758
759 /* Use an `interactive-form' property if present, analogous to the
760 function-documentation property. */
761 fun = cmd;
762 while (SYMBOLP (fun))
763 {
764 Lisp_Object tmp = Fget (fun, intern ("interactive-form"));
765 if (!NILP (tmp))
766 return tmp;
767 else
768 fun = Fsymbol_function (fun);
769 }
755 770
756 if (SUBRP (fun)) 771 if (SUBRP (fun))
757 { 772 {