/* Fundamental definitions for GNU Emacs Lisp interpreter.
- Copyright (C) 1985,86,87,93,94,95,97,98,1999 Free Software Foundation, Inc.
+ Copyright (C) 1985,86,87,93,94,95,97,98,1999,2000
+ Free Software Foundation, Inc.
This file is part of GNU Emacs.
EMACS_INT size;
EMACS_INT size_byte;
DECLARE_INTERVALS /* `data' field must be last. */
- unsigned char data[1];
+ unsigned char *data;
};
/* If a struct is made to look like a vector, this macro returns the length
If func is zero and symbol is nil, undoing this binding evaluates
the list of forms in old_value; this implements Lisp's unwind-protect
form.
- Otherwise, undoing this binding stores old_value as symbol's value; this
- undoes the bindings made by a let form or function call. */
+
+ Otherwise, the element is a variable binding.
+ If the symbol field is a symbol, it is an ordinary variable binding.
+ Otherwise, it should be a cons cell (SYMBOL . BUFFER)
+ which represents having bound BUFFER's local value.
+ or (SYMBOL . nil), which represents having bound the default value. */
+
struct specbinding
{
Lisp_Object symbol, old_value;
extern Lisp_Object wrong_type_argument P_ ((Lisp_Object, Lisp_Object));
extern void store_symval_forwarding P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
extern Lisp_Object do_symval_forwarding P_ ((Lisp_Object));
-extern Lisp_Object set_internal P_ ((Lisp_Object, Lisp_Object, int));
+extern Lisp_Object set_internal P_ ((Lisp_Object, Lisp_Object, struct buffer *, int));
extern void syms_of_data P_ ((void));
extern void init_data P_ ((void));
#endif
/* Defined in alloc.c */
+extern void allocate_string_data P_ ((struct Lisp_String *, int, int));
extern void uninterrupt_malloc P_ ((void));
extern void malloc_warning P_ ((char *));
extern void memory_full P_ ((void));
extern void init_editfns P_ ((void));
extern void syms_of_editfns P_ ((void));
EXFUN (Fcurrent_message, 0);
+extern Lisp_Object Vinhibit_field_text_motion;
/* defined in buffer.c */
extern void nsberror P_ ((Lisp_Object));