[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#14206: 24.3.50; doc string of `execute-kbd-macro'
From: |
Eli Zaretskii |
Subject: |
bug#14206: 24.3.50; doc string of `execute-kbd-macro' |
Date: |
Fri, 29 Apr 2016 09:56:11 +0300 |
> From: Lars Ingebrigtsen <larsi@gnus.org>
> Date: Fri, 29 Apr 2016 01:29:17 +0200
> Cc: 14206@debbugs.gnu.org
>
> Lars Ingebrigtsen <larsi@gnus.org> writes:
>
> > Kevin Rodgers <kevin.d.rodgers@gmail.com> writes:
> >
> >>> (defun foo () "foo")
> >>>
> >>> (execute-kbd-macro 'foo)
> >>>
> >>> ->
> >>>
> >>> Debugger entered--Lisp error: (error "Keyboard macros must be
> >>> strings or vectors")
> >>> execute-kbd-macro(foo)
> >>> eval((execute-kbd-macro (quote foo)) nil)
> >
> > So is the "If MACRO is a symbol, its function definition is used." thing
> > wrong?
>
> This is what Fexecute_kbd_macro does:
>
> final = indirect_function (macro);
> if (!STRINGP (final) && !VECTORP (final))
> error ("Keyboard macros must be strings or vectors");
>
> In what contexts can a function end up being a string? Uhm... If
> somebody has said
>
> (fset 'foo "bar")
>
> ?
No, I think (fset 'foo "\M-:").
IOW, an indirect function could produce a macro, right?
In general, keyboard macros produce strings like that, which I'm sure
you know, so I'm not sure if I understand your question.
bug#14206: 24.3.50; doc string of `execute-kbd-macro', Andreas Schwab, 2016/04/29