Commit c4f46926 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(Finteractive_form): Check for the presence of an

`interactive-form' symbol property more thoroughly.
parent b7de6024
2007-07-25 Stefan Monnier <monnier@iro.umontreal.ca>
 
* data.c (Finteractive_form): Use a `interactive-form' property if
* eval.c (Fcommandp): Pay attention to the `interactive-form' property.
* data.c (Finteractive_form): Check for the presence of an
`interactive-form' symbol property more thoroughly.
* data.c (Finteractive_form): Use an `interactive-form' property if
present, analogous to the function-documentation property.
 
2007-07-22 Nick Roberts <nickrob@snap.net.nz>
......
......@@ -750,15 +750,24 @@ Value, if non-nil, is a list \(interactive SPEC). */)
(cmd)
Lisp_Object cmd;
{
Lisp_Object fun = indirect_function (cmd);
Lisp_Object tmp;
if (SYMBOLP (cmd)
/* Use an `interactive-form' property if present, analogous to the
function-documentation property. */
&& (tmp = Fget (cmd, intern ("interactive-form")), !NILP (tmp)))
return tmp;
else if (SUBRP (fun))
Lisp_Object fun = indirect_function (cmd); /* Check cycles. */
if (NILP (fun) || EQ (fun, Qunbound))
return Qnil;
/* Use an `interactive-form' property if present, analogous to the
function-documentation property. */
fun = cmd;
while (SYMBOLP (fun))
{
Lisp_Object tmp = Fget (fun, intern ("interactive-form"));
if (!NILP (tmp))
return tmp;
else
fun = Fsymbol_function (fun);
}
if (SUBRP (fun))
{
if (XSUBR (fun)->prompt)
return list2 (Qinteractive, build_string (XSUBR (fun)->prompt));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment