Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
f52a3ca3
Commit
f52a3ca3
authored
Mar 29, 2004
by
Stefan Monnier
Browse files
(Finteractive_form): Rename from Fsubr_interactive_form.
Extend to handle all kinds of functions.
parent
a21aa165
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
11 deletions
+33
-11
src/data.c
src/data.c
+33
-11
No files found.
src/data.c
View file @
f52a3ca3
/* Primitive operations on Lisp data types for GNU Emacs Lisp interpreter.
Copyright (C) 1985,86,88,93,94,95,97,98,99, 2000, 2001, 200
3
Copyright (C) 1985,86,88,93,94,95,97,98,99, 2000, 2001,
03,
200
4
Free Software Foundation, Inc.
This file is part of GNU Emacs.
...
...
@@ -761,17 +761,39 @@ function with `&rest' args, or `unevalled' for a special form. */)
return Fcons (make_number (minargs), make_number (maxargs));
}
DEFUN ("
subr-
interactive-form", F
subr_
interactive_form, S
subr_
interactive_form, 1, 1, 0,
doc: /* Return the interactive form of
SUBR
or nil if none.
SUBR
must be a
built-in function
. Value, if non-nil, is a list
DEFUN ("interactive-form", Finteractive_form, Sinteractive_form, 1, 1, 0,
doc: /* Return the interactive form of
CMD
or nil if none.
CMD
must be a
command
. Value, if non-nil, is a list
\(interactive SPEC). */)
(
subr
)
Lisp_Object
subr
;
(
cmd
)
Lisp_Object
cmd
;
{
if (!SUBRP (subr))
wrong_type_argument (Qsubrp, subr);
if (XSUBR (subr)->prompt)
return list2 (Qinteractive, build_string (XSUBR (subr)->prompt));
Lisp_Object fun = indirect_function (cmd);
if (SUBRP (fun))
{
if (XSUBR (fun)->prompt)
return list2 (Qinteractive, build_string (XSUBR (fun)->prompt));
}
else if (COMPILEDP (fun))
{
if ((ASIZE (fun) & PSEUDOVECTOR_SIZE_MASK) > COMPILED_INTERACTIVE)
return list2 (Qinteractive, AREF (fun, COMPILED_INTERACTIVE));
}
else if (CONSP (fun))
{
Lisp_Object funcar = XCAR (fun);
if (EQ (funcar, Qlambda))
return Fassq (Qinteractive, Fcdr (XCDR (fun)));
else if (EQ (funcar, Qautoload))
{
struct gcpro gcpro1;
GCPRO1 (cmd);
do_autoload (fun, cmd);
UNGCPRO;
return Finteractive_form (cmd);
}
}
return Qnil;
}
...
...
@@ -3209,7 +3231,7 @@ syms_of_data ()
staticpro (&Qhash_table);
defsubr (&Sindirect_variable);
defsubr (&S
subr_
interactive_form);
defsubr (&Sinteractive_form);
defsubr (&Seq);
defsubr (&Snull);
defsubr (&Stype_of);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment