struct Lisp_Cons
{
+ /* Please do not use the names of these elements in code other
+ than the core lisp implementation. Use XCAR and XCDR below. */
+#ifdef HIDE_LISP_IMPLEMENTATION
+ Lisp_Object car_, cdr_;
+#else
Lisp_Object car, cdr;
+#endif
};
/* Take the car or cdr of something known to be a cons cell. */
+#ifdef HIDE_LISP_IMPLEMENTATION
+#define XCAR(c) (XCONS ((c))->car_)
+#define XCDR(c) (XCONS ((c))->cdr_)
+#else
#define XCAR(c) (XCONS ((c))->car)
#define XCDR(c) (XCONS ((c))->cdr)
+#endif
/* Take the car or cdr of something whose type is not known. */
#define CAR(c) \
{
Lisp_Object type; /* essentially used for mark-bit
and chaining when on free-list */
+#ifdef HIDE_LISP_IMPLEMENTATION
+ double data_;
+#else
double data;
+#endif
};
+
+#ifdef HIDE_LISP_IMPLEMENTATION
+#define XFLOAT_DATA(f) (XFLOAT (f)->data_)
+#else
+#define XFLOAT_DATA(f) (XFLOAT (f)->data)
+#endif
#endif /* LISP_FLOAT_TYPE */
/* A character, declared with the following typedef, is a member
/* Evaluate expr, UNGCPRO, and then return the value of expr. */
#define RETURN_UNGCPRO(expr) \
-if (1) \
+do \
{ \
Lisp_Object ret_ungc_val; \
ret_ungc_val = (expr); \
UNGCPRO; \
return ret_ungc_val; \
} \
-else
+while (0)
\f
/* Declare a Lisp-callable function. The MAXARGS parameter has the same
meaning as in the DEFUN macro, and is used to construct a prototype. */
extern void init_coding P_ ((void));
extern void init_coding_once P_ ((void));
extern void syms_of_coding P_ ((void));
+extern Lisp_Object code_convert_string_norecord P_ ((Lisp_Object, Lisp_Object,
+ int));
/* Defined in charset.c */
extern int nonascii_insert_offset;
extern void syms_of_syntax P_ ((void));
/* Defined in fns.c */
+extern void sweep_weak_hash_tables P_ ((void));
extern Lisp_Object Qstring_lessp;
extern Lisp_Object Vfeatures;
unsigned sxhash P_ ((Lisp_Object, int));
void hash_remove P_ ((struct Lisp_Hash_Table *, Lisp_Object));
void hash_clear P_ ((struct Lisp_Hash_Table *));
void remove_hash_entry P_ ((struct Lisp_Hash_Table *, int));
+extern void init_fns P_ ((void));
EXFUN (Fsxhash, 1);
EXFUN (Fmake_hash_table, MANY);
EXFUN (Fcopy_hash_table, 1);
extern void syms_of_insdel P_ ((void));
/* Defined in dispnew.c */
+extern Lisp_Object selected_frame;
EXFUN (Fding, 1);
+EXFUN (Fredraw_frame, 1);
EXFUN (Fredraw_display, 0);
EXFUN (Fsleep_for, 2);
EXFUN (Fsit_for, 3);
extern Lisp_Object sit_for P_ ((int, int, int, int, int));
extern void init_display P_ ((void));
extern void syms_of_display P_ ((void));
+extern void safe_bcopy P_ ((char *, char *, int));
/* Defined in xdisp.c */
-extern Lisp_Object Vresize_mini_config;
-extern struct frame *resize_mini_frame;
-extern int resize_mini_initial_height;
extern Lisp_Object Qinhibit_redisplay;
extern Lisp_Object Vmessage_log_max;
extern int message_enable_multibyte;
extern Lisp_Object echo_area_buffer[2];
+extern void check_message_stack P_ ((void));
extern void setup_echo_area_for_printing P_ ((int));
extern int push_message P_ ((void));
extern void pop_message P_ ((void));
extern void syms_of_xdisp P_ ((void));
extern void init_xdisp P_ ((void));
+/* Defined in vm-limit.c. */
+#ifdef __STDC__
+extern void memory_warnings P_ ((void *, void (*warnfun) ()));
+#else
+extern void memory_warnings P_ ((char *, void (*warnfun) ()));
+#endif
+
/* Defined in alloc.c */
+extern void uninterrupt_malloc P_ ((void));
extern void malloc_warning P_ ((char *));
extern void memory_full P_ ((void));
extern void buffer_memory_full P_ ((void));
/* Defined in print.c */
extern Lisp_Object Vprin1_to_string_buffer;
+extern void debug_print P_ ((Lisp_Object));
EXFUN (Fprin1, 2);
EXFUN (Fprin1_to_string, 2);
EXFUN (Fprinc, 2);
EXFUN (Fwiden, 0);
EXFUN (Fuser_login_name, 1);
EXFUN (Fsystem_name, 0);
+EXFUN (Fcurrent_time, 0);
extern int clip_to_bounds P_ ((int, int, int));
extern Lisp_Object make_buffer_string P_ ((int, int, int));
extern Lisp_Object make_buffer_string_both P_ ((int, int, int, int, int));
extern void init_editfns P_ ((void));
extern void syms_of_editfns P_ ((void));
+EXFUN (Fcurrent_message, 0);
/* defined in buffer.c */
extern void nsberror P_ ((Lisp_Object));
+extern char *no_switch_window P_ ((Lisp_Object window));
EXFUN (Fset_buffer_multibyte, 1);
EXFUN (Foverlay_start, 1);
EXFUN (Foverlay_end, 1);
extern Lisp_Object Qfile_error;
EXFUN (Ffind_file_name_handler, 2);
EXFUN (Ffile_name_as_directory, 1);
+EXFUN (Fmake_temp_name, 1);
EXFUN (Fexpand_file_name, 2);
EXFUN (Ffile_name_nondirectory, 1);
EXFUN (Fsubstitute_in_file_name, 1);
EXFUN (Ffile_readable_p, 1);
EXFUN (Ffile_executable_p, 1);
EXFUN (Fread_file_name, 5);
+extern Lisp_Object close_file_unwind P_ ((Lisp_Object));
extern void report_file_error P_ ((char *, Lisp_Object));
extern int internal_delete_file P_ ((Lisp_Object));
extern void syms_of_fileio P_ ((void));
+EXFUN (Fmake_temp_name, 1);
+extern void init_fileio_once P_ ((void));
/* Defined in abbrev.c */
extern void syms_of_abbrev P_ ((void));
/* defined in search.c */
+extern void shrink_regexp_cache P_ ((void));
EXFUN (Fstring_match, 3);
extern void restore_match_data P_ ((void));
EXFUN (Fmatch_data, 2);
EXFUN (Fcommand_execute, 4);
EXFUN (Finput_pending_p, 0);
extern Lisp_Object menu_bar_items P_ ((Lisp_Object));
-extern Lisp_Object toolbar_items P_ ((Lisp_Object, int *));
+extern Lisp_Object tool_bar_items P_ ((Lisp_Object, int *));
extern Lisp_Object Qvertical_scroll_bar;
extern void discard_mouse_events ();
EXFUN (Fevent_convert_list, 1);
EXFUN (Fcoordinates_in_window_p, 2);
EXFUN (Fwindow_at, 3);
EXFUN (Fpos_visible_in_window_p, 2);
+extern void mark_window_cursors_off P_ ((struct window *));
extern int window_internal_height P_ ((struct window *));
extern int window_internal_width P_ ((struct window *));
EXFUN (Frecenter, 1);
/* defined in callproc.c */
extern Lisp_Object Vexec_path, Vexec_directory, Vdata_directory;
extern Lisp_Object Vdoc_directory;
+EXFUN (Fcall_process, MANY);
extern int child_setup P_ ((int, int, int, char **, int, Lisp_Object));
extern void init_callproc_1 P_ ((void));
extern void init_callproc P_ ((void));
extern Lisp_Object read_doc_string P_ ((Lisp_Object));
extern Lisp_Object get_doc_string P_ ((Lisp_Object, int, int));
extern void syms_of_doc P_ ((void));
+extern int read_bytecode_char P_ ((int));
/* defined in bytecode.c */
extern Lisp_Object Qbytecode;
EXFUN (Fnext_char_property_change, 2);
extern void report_interval_modification P_ ((Lisp_Object, Lisp_Object));
extern void syms_of_textprop P_ ((void));
+extern Lisp_Object next_single_char_property_change P_ ((Lisp_Object,
+ Lisp_Object,
+ Lisp_Object,
+ Lisp_Object));
/* defined in intervals.c */
extern Lisp_Object get_local_map P_ ((int, struct buffer *));
extern void syms_of_xmenu P_ ((void));
/* defined in sysdep.c */
+extern void stuff_char P_ ((char c));
extern void init_sigio P_ ((int));
extern void request_sigio P_ ((void));
extern void unrequest_sigio P_ ((void));
extern void unlock_file P_ ((Lisp_Object));
extern void unlock_buffer P_ ((struct buffer *));
extern void syms_of_filelock P_ ((void));
+extern void init_filelock P_ ((void));
+
+/* Defined in sound.c */
+extern void syms_of_sound P_ ((void));
+extern void init_sound P_ ((void));
/* Defined in category.c */
extern void init_category_once P_ ((void));
extern void syms_of_ccl P_ ((void));
/* Defined in dired.c */
+EXFUN (Ffile_attributes, 1);
extern void syms_of_dired P_ ((void));
/* Defined in mocklisp.c */
/* Defined in term.c */
extern void syms_of_term P_ ((void));
+extern void fatal ();
#ifdef HAVE_X_WINDOWS
/* Defined in fontset.c */
/* Defined in xfaces.c */
extern void syms_of_xfaces P_ ((void));
+/* Defined in getloadavg.c */
+extern int getloadavg P_ ((double *, int));
+
#ifdef HAVE_X_WINDOWS
/* Defined in xfns.c */
+extern void x_set_tool_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
extern void syms_of_xfns P_ ((void));
+EXFUN (Fx_hide_busy_cursor, 1);
+extern void init_xfns P_ ((void));
#endif
/* Defined in xselect.c */
/* Defined in xterm.c */
extern void syms_of_xterm P_ ((void));
+
+/* Defined in getloadavg.c */
+extern int getloadavg P_ ((double [], int));
\f
/* Nonzero means Emacs has already been initialized.
Used during startup to detect startup of dumped Emacs. */