Lisp_Object Vmacro_declaration_function;
extern Lisp_Object Qrisky_local_variable;
-
extern Lisp_Object Qfunction;
- static Lisp_Object funcall_lambda P_ ((Lisp_Object, int, Lisp_Object *,
- Lisp_Object));
-
- static void unwind_to_catch P_ ((struct catchtag *, Lisp_Object)) NO_RETURN;
-
- #if __GNUC__
- /* "gcc -O3" enables automatic function inlining, which optimizes out
- the arguments for the invocations of these functions, whereas they
- expect these values on the stack. */
- Lisp_Object apply1 () __attribute__((noinline));
- Lisp_Object call2 () __attribute__((noinline));
- #endif
-static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*);
++static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object *,
++ Lisp_Object);
+ static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN;
\f
void
- init_eval_once ()
+ init_eval_once (void)
{
specpdl_size = 50;
specpdl = (struct specbinding *) xmalloc (specpdl_size * sizeof (struct specbinding));
each VAL can use the new value of variables set earlier in the `setq'.
The return value of the `setq' form is the value of the last VAL.
usage: (setq [SYM VAL]...) */)
- (args)
- Lisp_Object args;
+ (Lisp_Object args)
{
register Lisp_Object args_left;
- register Lisp_Object val, sym;
+ register Lisp_Object val, sym, lex_binding;
struct gcpro gcpro1;
if (NILP (args))
In byte compilation, `function' causes its argument to be compiled.
`quote' cannot do that.
usage: (function ARG) */)
- (args)
- Lisp_Object args;
+ (Lisp_Object args)
{
+ Lisp_Object quoted = XCAR (args);
+
if (!NILP (Fcdr (args)))
xsignal2 (Qwrong_number_of_arguments, Qfunction, Flength (args));
- return Fcar (args);
+
+ if (!NILP (Vinternal_interpreter_environment)
+ && CONSP (quoted)
+ && EQ (XCAR (quoted), Qlambda))
+ /* This is a lambda expression within a lexical environment;
+ return an interpreted closure instead of a simple lambda. */
+ return Fcons (Qclosure, Fcons (Vinternal_interpreter_environment, quoted));
+ else
+ /* Simply quote the argument. */
+ return quoted;
}
either (i) add an extra optional argument and give it an `interactive'
spec that specifies non-nil unconditionally (such as \"p\"); or (ii)
use `called-interactively-p'. */)
- ()
+ (void)
{
- return (INTERACTIVE && interactive_p (1)) ? Qt : Qnil;
+ return interactive_p (1) ? Qt : Qnil;
}
or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).
Each VALUEFORM can refer to the symbols already bound by this VARLIST.
usage: (let* VARLIST BODY...) */)
- (args)
- Lisp_Object args;
+ (Lisp_Object args)
{
- Lisp_Object varlist, val, elt;
+ Lisp_Object varlist, var, val, elt, lexenv;
int count = SPECPDL_INDEX ();
struct gcpro gcpro1, gcpro2, gcpro3;
or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).
All the VALUEFORMs are evalled before any symbols are bound.
usage: (let VARLIST BODY...) */)
- (args)
- Lisp_Object args;
+ (Lisp_Object args)
{
- Lisp_Object *temps, tem;
+ Lisp_Object *temps, tem, lexenv;
register Lisp_Object elt, varlist;
int count = SPECPDL_INDEX ();
register int argnum;
}
\f
Lisp_Object
- apply_lambda (fun, args, eval_flag, lexenv)
- Lisp_Object fun, args;
- int eval_flag;
- Lisp_Object lexenv;
-apply_lambda (Lisp_Object fun, Lisp_Object args, int eval_flag)
++apply_lambda (Lisp_Object fun, Lisp_Object args, int eval_flag,
++ Lisp_Object lexenv)
{
Lisp_Object args_left;
Lisp_Object numargs;
FUN must be either a lambda-expression or a compiled-code object. */
static Lisp_Object
- funcall_lambda (fun, nargs, arg_vector, lexenv)
- Lisp_Object fun;
- int nargs;
- register Lisp_Object *arg_vector;
- Lisp_Object lexenv;
-funcall_lambda (Lisp_Object fun, int nargs, register Lisp_Object *arg_vector)
++funcall_lambda (Lisp_Object fun, int nargs,
++ register Lisp_Object *arg_vector,
++ Lisp_Object lexenv)
{
Lisp_Object val, syms_left, next;
int count = SPECPDL_INDEX ();
EXFUN (list5, 5);
EXFUN (Flist, MANY);
EXFUN (Fmake_list, 2);
- extern Lisp_Object allocate_misc P_ ((void));
+ extern Lisp_Object allocate_misc (void);
EXFUN (Fmake_vector, 2);
EXFUN (Fvector, MANY);
+EXFUN (Ffunvec, MANY);
EXFUN (Fmake_symbol, 1);
EXFUN (Fmake_marker, 0);
EXFUN (Fmake_string, 2);
- extern Lisp_Object build_string P_ ((const char *));
- extern Lisp_Object make_string P_ ((const char *, int));
- extern Lisp_Object make_unibyte_string P_ ((const char *, int));
- extern Lisp_Object make_multibyte_string P_ ((const char *, int, int));
- extern Lisp_Object make_event_array P_ ((int, Lisp_Object *));
- extern Lisp_Object make_uninit_string P_ ((int));
- extern Lisp_Object make_uninit_multibyte_string P_ ((int, int));
- extern Lisp_Object make_string_from_bytes P_ ((const char *, int, int));
- extern Lisp_Object make_specified_string P_ ((const char *, int, int, int));
+ extern Lisp_Object build_string (const char *);
+ extern Lisp_Object make_string (const char *, int);
+ extern Lisp_Object make_unibyte_string (const char *, int);
+ extern Lisp_Object make_multibyte_string (const char *, int, int);
+ extern Lisp_Object make_event_array (int, Lisp_Object *);
+ extern Lisp_Object make_uninit_string (int);
+ extern Lisp_Object make_uninit_multibyte_string (int, int);
+ extern Lisp_Object make_string_from_bytes (const char *, int, int);
+ extern Lisp_Object make_specified_string (const char *, int, int, int);
EXFUN (Fpurecopy, 1);
- extern Lisp_Object make_pure_string P_ ((const char *, int, int, int));
+ extern Lisp_Object make_pure_string (const char *, int, int, int);
extern Lisp_Object make_pure_c_string (const char *data);
- extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object));
- extern Lisp_Object make_pure_vector P_ ((EMACS_INT));
+ extern Lisp_Object pure_cons (Lisp_Object, Lisp_Object);
+ extern Lisp_Object make_pure_vector (EMACS_INT);
EXFUN (Fgarbage_collect, 0);
- extern Lisp_Object make_funvec P_ ((Lisp_Object, int, int, Lisp_Object *));
++extern Lisp_Object make_funvec (Lisp_Object, int, int, Lisp_Object *);
EXFUN (Fmake_byte_code, MANY);
EXFUN (Fmake_bool_vector, 2);
extern Lisp_Object Qchar_table_extra_slots;
EXFUN (Fapply, MANY);
EXFUN (Ffuncall, MANY);
EXFUN (Fbacktrace, 0);
- extern Lisp_Object apply1 P_ ((Lisp_Object, Lisp_Object));
- extern Lisp_Object call0 P_ ((Lisp_Object));
- extern Lisp_Object call1 P_ ((Lisp_Object, Lisp_Object));
- extern Lisp_Object call2 P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
- extern Lisp_Object call3 P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object));
- extern Lisp_Object call4 P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object));
- extern Lisp_Object call5 P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object));
- extern Lisp_Object call6 P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object));
- extern Lisp_Object call7 P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object));
+ extern Lisp_Object apply1 (Lisp_Object, Lisp_Object);
+ extern Lisp_Object call0 (Lisp_Object);
+ extern Lisp_Object call1 (Lisp_Object, Lisp_Object);
+ extern Lisp_Object call2 (Lisp_Object, Lisp_Object, Lisp_Object);
+ extern Lisp_Object call3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
+ extern Lisp_Object call4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
+ extern Lisp_Object call5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
+ extern Lisp_Object call6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
+ extern Lisp_Object call7 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
EXFUN (Fdo_auto_save, 2);
- extern Lisp_Object apply_lambda P_ ((Lisp_Object, Lisp_Object, int, Lisp_Object));
- extern Lisp_Object internal_catch P_ ((Lisp_Object, Lisp_Object (*) (Lisp_Object), Lisp_Object));
- extern Lisp_Object internal_lisp_condition_case P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
- extern Lisp_Object internal_condition_case P_ ((Lisp_Object (*) (void), Lisp_Object, Lisp_Object (*) (Lisp_Object)));
- extern Lisp_Object internal_condition_case_1 P_ ((Lisp_Object (*) (Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)));
- extern Lisp_Object internal_condition_case_2 P_ ((Lisp_Object (*) (Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)));
- extern Lisp_Object internal_condition_case_n P_ ((Lisp_Object (*) (int, Lisp_Object *), int, Lisp_Object *, Lisp_Object, Lisp_Object (*) (Lisp_Object)));
- extern void specbind P_ ((Lisp_Object, Lisp_Object));
- extern void record_unwind_protect P_ ((Lisp_Object (*) (Lisp_Object), Lisp_Object));
- extern Lisp_Object unbind_to P_ ((int, Lisp_Object));
- extern void error P_ ((/* char *, ... */)) NO_RETURN;
- extern void do_autoload P_ ((Lisp_Object, Lisp_Object));
- extern Lisp_Object un_autoload P_ ((Lisp_Object));
-extern Lisp_Object apply_lambda (Lisp_Object, Lisp_Object, int);
++extern Lisp_Object apply_lambda (Lisp_Object, Lisp_Object, int, Lisp_Object);
+ extern Lisp_Object internal_catch (Lisp_Object, Lisp_Object (*) (Lisp_Object), Lisp_Object);
+ extern Lisp_Object internal_lisp_condition_case (Lisp_Object, Lisp_Object, Lisp_Object);
+ extern Lisp_Object internal_condition_case (Lisp_Object (*) (void), Lisp_Object, Lisp_Object (*) (Lisp_Object));
+ extern Lisp_Object internal_condition_case_1 (Lisp_Object (*) (Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
+ extern Lisp_Object internal_condition_case_2 (Lisp_Object (*) (Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
+ extern Lisp_Object internal_condition_case_n (Lisp_Object (*) (int, Lisp_Object *), int, Lisp_Object *, Lisp_Object, Lisp_Object (*) (Lisp_Object));
+ extern void specbind (Lisp_Object, Lisp_Object);
+ extern void record_unwind_protect (Lisp_Object (*) (Lisp_Object), Lisp_Object);
+ extern Lisp_Object unbind_to (int, Lisp_Object);
+ extern void error (const char *, ...) NO_RETURN;
+ extern void verror (const char *, va_list) NO_RETURN;
+ extern void do_autoload (Lisp_Object, Lisp_Object);
+ extern Lisp_Object un_autoload (Lisp_Object);
EXFUN (Ffetch_bytecode, 1);
- extern void init_eval_once P_ ((void));
- extern Lisp_Object safe_call P_ ((int, Lisp_Object *));
- extern Lisp_Object safe_call1 P_ ((Lisp_Object, Lisp_Object));
+ extern void init_eval_once (void);
+ extern Lisp_Object safe_call (int, Lisp_Object *);
+ extern Lisp_Object safe_call1 (Lisp_Object, Lisp_Object);
extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object);
- extern void init_eval P_ ((void));
- extern void syms_of_eval P_ ((void));
+ extern void init_eval (void);
+ extern void syms_of_eval (void);
/* Defined in editfns.c */
EXFUN (Fpropertize, MANY);
/* Defined in bytecode.c */
extern Lisp_Object Qbytecode;
-EXFUN (Fbyte_code, 3);
+EXFUN (Fbyte_code, MANY);
- extern void syms_of_bytecode P_ ((void));
+ extern void syms_of_bytecode (void);
extern struct byte_stack *byte_stack_list;
- extern void mark_byte_stack P_ ((void));
- extern void unmark_byte_stack P_ ((void));
- extern Lisp_Object exec_byte_code P_ ((Lisp_Object, Lisp_Object, Lisp_Object,
- Lisp_Object, int, Lisp_Object *));
+ extern void mark_byte_stack (void);
+ extern void unmark_byte_stack (void);
++extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, Lisp_Object,
++ Lisp_Object, int, Lisp_Object *);
/* Defined in macros.c */
extern Lisp_Object Qexecute_kbd_macro;
/* Defined in sysdep.c */
#ifndef HAVE_GET_CURRENT_DIR_NAME
- extern char *get_current_dir_name P_ ((void));
+ extern char *get_current_dir_name (void);
+ #endif
+ extern void stuff_char (char c);
+ extern void init_sigio (int);
+ extern void sys_subshell (void);
+ extern void sys_suspend (void);
+ extern void discard_tty_input (void);
+ extern void init_sys_modes (struct tty_display_info *);
+ extern void reset_sys_modes (struct tty_display_info *);
+ extern void init_all_sys_modes (void);
+ extern void reset_all_sys_modes (void);
+ extern void wait_for_termination (int);
+ extern void flush_pending_output (int);
+ extern void child_setup_tty (int);
+ extern void setup_pty (int);
+ extern int set_window_size (int, int, int);
+ extern void create_process (Lisp_Object, char **, Lisp_Object);
+ extern int emacs_open (const char *, int, int);
+ extern int emacs_close (int);
+ extern int emacs_read (int, char *, unsigned int);
+ extern int emacs_write (int, const char *, unsigned int);
+ #ifndef HAVE_MEMSET
-extern void *memset P_ ((void *, int, size_t));
++extern void *memset (void *, int, size_t);
+ #endif
+ #ifndef HAVE_MEMCPY
-extern void *memcpy P_ ((void *, void *, size_t));
++extern void *memcpy (void *, void *, size_t);
+ #endif
+ #ifndef HAVE_MEMMOVE
-extern void *memmove P_ ((void *, void *, size_t));
++extern void *memmove (void *, void *, size_t);
+ #endif
+ #ifndef HAVE_MEMCMP
-extern int memcmp P_ ((void *, void *, size_t));
++extern int memcmp (void *, void *, size_t);
#endif
- extern void stuff_char P_ ((char c));
- extern void init_sigio P_ ((int));
- extern void sys_subshell P_ ((void));
- extern void sys_suspend P_ ((void));
- extern void discard_tty_input P_ ((void));
- extern void init_sys_modes P_ ((struct tty_display_info *));
- extern void reset_sys_modes P_ ((struct tty_display_info *));
- extern void init_all_sys_modes P_ ((void));
- extern void reset_all_sys_modes P_ ((void));
- extern void wait_for_termination P_ ((int));
- extern void flush_pending_output P_ ((int));
- extern void child_setup_tty P_ ((int));
- extern void setup_pty P_ ((int));
- extern int set_window_size P_ ((int, int, int));
- extern void create_process P_ ((Lisp_Object, char **, Lisp_Object));
- extern int emacs_open P_ ((const char *, int, int));
- extern int emacs_close P_ ((int));
- extern int emacs_read P_ ((int, char *, unsigned int));
- extern int emacs_write P_ ((int, const char *, unsigned int));
/* Defined in filelock.c */
EXFUN (Funlock_buffer, 0);