diff options
Diffstat (limited to 'src/data.c')
| -rw-r--r-- | src/data.c | 19 |
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 | ||
| 7 | GNU Emacs is free software; you can redistribute it and/or modify | 7 | GNU Emacs is free software; you can redistribute it and/or modify |
| 8 | it under the terms of the GNU General Public License as published by | 8 | it under the terms of the GNU General Public License as published by |
| 9 | the Free Software Foundation; either version 2, or (at your option) | 9 | the Free Software Foundation; either version 3, or (at your option) |
| 10 | any later version. | 10 | any later version. |
| 11 | 11 | ||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | 12 | GNU 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 | { |