diff options
| author | Michaël Cadilhac | 2007-09-10 09:42:13 +0000 |
|---|---|---|
| committer | Michaël Cadilhac | 2007-09-10 09:42:13 +0000 |
| commit | 8a6d230a995697e11813f59b8f3b72c6a6cf029c (patch) | |
| tree | d28b594ba1a3eaa6959c6056e0b3b711b2368834 /src/data.c | |
| parent | 04724b6930ec6a906fd5a248632797bb56e0caa5 (diff) | |
| download | emacs-8a6d230a995697e11813f59b8f3b72c6a6cf029c.tar.gz emacs-8a6d230a995697e11813f59b8f3b72c6a6cf029c.zip | |
(Finteractive_form): If the interactive specification starts with a `(',
use it as a Lisp form.
Diffstat (limited to 'src/data.c')
| -rw-r--r-- | src/data.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/data.c b/src/data.c index 1f82f929281..dfc0c35705a 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -770,8 +770,11 @@ Value, if non-nil, is a list \(interactive SPEC). */) | |||
| 770 | 770 | ||
| 771 | if (SUBRP (fun)) | 771 | if (SUBRP (fun)) |
| 772 | { | 772 | { |
| 773 | if (XSUBR (fun)->prompt) | 773 | char *spec = XSUBR (fun)->intspec; |
| 774 | return list2 (Qinteractive, build_string (XSUBR (fun)->prompt)); | 774 | if (spec) |
| 775 | return list2 (Qinteractive, | ||
| 776 | (*spec != '(') ? build_string (spec) : | ||
| 777 | Fcar (Fread_from_string (build_string (spec), Qnil, Qnil))); | ||
| 775 | } | 778 | } |
| 776 | else if (COMPILEDP (fun)) | 779 | else if (COMPILEDP (fun)) |
| 777 | { | 780 | { |