# HG changeset patch # User Stephen J. Turnbull # Date 1245438432 -32400 # Node ID b0ae008bf1a04c2cc7e1dd09298cddfb2d1cee0b # Parent e9ccbc62f7e75ac885fb50bf5bcd65533791bc17 Documentment placement restriction. <87d490jb7v.fsf@uwakimon.sk.tsukuba.ac.jp> diff -r e9ccbc62f7e7 -r b0ae008bf1a0 src/ChangeLog --- a/src/ChangeLog Sun Jun 14 16:08:22 2009 +0100 +++ b/src/ChangeLog Sat Jun 20 04:07:12 2009 +0900 @@ -1,3 +1,8 @@ +2009-06-20 Stephen Turnbull + + * callint.c (Finteractive): Document that (interactive) must + appear at the "top level" of a function definition to be effective. + 2009-06-14 Aidan Kehoe * eval.c (For): diff -r e9ccbc62f7e7 -r b0ae008bf1a0 src/callint.c --- a/src/callint.c Sun Jun 14 16:08:22 2009 +0100 +++ b/src/callint.c Sat Jun 20 04:07:12 2009 +0900 @@ -86,6 +86,9 @@ The "call" to `interactive' is actually a declaration rather than a function; it tells `call-interactively' how to read arguments to pass to the function. +The interactive form must appear at the top level of the function body. If + it is wrapped in a `let' or `progn' or similar, Lisp will not even realize + the function is an interactive command! When actually called, `interactive' just returns nil. The argument of `interactive' is usually a string containing a code letter