aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h120
1 files changed, 40 insertions, 80 deletions
diff --git a/src/lisp.h b/src/lisp.h
index ae8f3c793c5..3e5d1fcc695 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -55,11 +55,11 @@ extern void check_cons_list (void);
55#endif 55#endif
56 56
57/* Extra internal type checking? */ 57/* Extra internal type checking? */
58extern int suppress_checking;
59extern void die (const char *, const char *, int) NO_RETURN;
60 58
61#ifdef ENABLE_CHECKING 59#ifdef ENABLE_CHECKING
62 60
61extern void die (const char *, const char *, int) NO_RETURN;
62
63/* The suppress_checking variable is initialized to 0 in alloc.c. Set 63/* The suppress_checking variable is initialized to 0 in alloc.c. Set
64 it to 1 using a debugger to temporarily disable aborting on 64 it to 1 using a debugger to temporarily disable aborting on
65 detected internal inconsistencies or error conditions. 65 detected internal inconsistencies or error conditions.
@@ -74,6 +74,8 @@ extern void die (const char *, const char *, int) NO_RETURN;
74 STRINGP (x), but a particular use of XSTRING is invoked only after 74 STRINGP (x), but a particular use of XSTRING is invoked only after
75 testing that STRINGP (x) is true, making the test redundant. */ 75 testing that STRINGP (x) is true, making the test redundant. */
76 76
77extern int suppress_checking EXTERNALLY_VISIBLE;
78
77#define CHECK(check,msg) (((check) || suppress_checking \ 79#define CHECK(check,msg) (((check) || suppress_checking \
78 ? (void) 0 \ 80 ? (void) 0 \
79 : die ((msg), __FILE__, __LINE__)), \ 81 : die ((msg), __FILE__, __LINE__)), \
@@ -1805,9 +1807,9 @@ typedef struct {
1805 1807
1806/* This version of DEFUN declares a function prototype with the right 1808/* This version of DEFUN declares a function prototype with the right
1807 arguments, so we can catch errors with maxargs at compile-time. */ 1809 arguments, so we can catch errors with maxargs at compile-time. */
1808#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc) \ 1810#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc) \
1809 Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \ 1811 Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \
1810 DECL_ALIGN (struct Lisp_Subr, sname) = \ 1812 static DECL_ALIGN (struct Lisp_Subr, sname) = \
1811 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ 1813 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \
1812 { .a ## maxargs = fnname }, \ 1814 { .a ## maxargs = fnname }, \
1813 minargs, maxargs, lname, intspec, 0}; \ 1815 minargs, maxargs, lname, intspec, 0}; \
@@ -1964,8 +1966,6 @@ struct handler
1964 struct handler *next; 1966 struct handler *next;
1965 }; 1967 };
1966 1968
1967extern struct handler *handlerlist;
1968
1969/* This structure helps implement the `catch' and `throw' control 1969/* This structure helps implement the `catch' and `throw' control
1970 structure. A struct catchtag contains all the information needed 1970 structure. A struct catchtag contains all the information needed
1971 to restore the state of the interpreter after a non-local jump. 1971 to restore the state of the interpreter after a non-local jump.
@@ -2001,9 +2001,6 @@ struct catchtag
2001 struct byte_stack *byte_stack; 2001 struct byte_stack *byte_stack;
2002}; 2002};
2003 2003
2004extern struct catchtag *catchlist;
2005extern struct backtrace *backtrace_list;
2006
2007extern Lisp_Object memory_signal_data; 2004extern Lisp_Object memory_signal_data;
2008 2005
2009/* An address near the bottom of the stack. 2006/* An address near the bottom of the stack.
@@ -2051,8 +2048,8 @@ extern int pending_signals;
2051 2048
2052#define QUITP (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) 2049#define QUITP (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
2053 2050
2054extern Lisp_Object Vascii_downcase_table, Vascii_upcase_table; 2051extern Lisp_Object Vascii_downcase_table;
2055extern Lisp_Object Vascii_canon_table, Vascii_eqv_table; 2052extern Lisp_Object Vascii_canon_table;
2056 2053
2057/* Number of bytes of structure consed since last GC. */ 2054/* Number of bytes of structure consed since last GC. */
2058 2055
@@ -2285,22 +2282,22 @@ struct window;
2285struct frame; 2282struct frame;
2286 2283
2287/* Defined in data.c. */ 2284/* Defined in data.c. */
2288extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qsubr, Qunbound; 2285extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qunbound;
2289extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level; 2286extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level;
2290extern Lisp_Object Qerror, Qquit, Qwrong_type_argument, Qargs_out_of_range; 2287extern Lisp_Object Qerror, Qquit, Qargs_out_of_range;
2291extern Lisp_Object Qvoid_variable, Qvoid_function; 2288extern Lisp_Object Qvoid_variable, Qvoid_function;
2292extern Lisp_Object Qsetting_constant, Qinvalid_read_syntax; 2289extern Lisp_Object Qinvalid_read_syntax;
2293extern Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch; 2290extern Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch;
2294extern Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive; 2291extern Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive;
2295extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only; 2292extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only;
2296extern Lisp_Object Qtext_read_only; 2293extern Lisp_Object Qtext_read_only;
2297extern Lisp_Object Qinteractive_form; 2294extern Lisp_Object Qinteractive_form;
2298extern Lisp_Object Qcircular_list; 2295extern Lisp_Object Qcircular_list;
2299extern Lisp_Object Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp; 2296extern Lisp_Object Qintegerp, Qwholenump, Qsymbolp, Qlistp, Qconsp;
2300extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp; 2297extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
2301extern Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp; 2298extern Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp;
2302extern Lisp_Object Qbuffer_or_string_p; 2299extern Lisp_Object Qbuffer_or_string_p;
2303extern Lisp_Object Qboundp, Qfboundp; 2300extern Lisp_Object Qfboundp;
2304extern Lisp_Object Qchar_table_p, Qvector_or_char_table_p; 2301extern Lisp_Object Qchar_table_p, Qvector_or_char_table_p;
2305 2302
2306extern Lisp_Object Qcdr; 2303extern Lisp_Object Qcdr;
@@ -2315,7 +2312,6 @@ extern Lisp_Object Qinteger;
2315 2312
2316extern Lisp_Object Qfont_spec, Qfont_entity, Qfont_object; 2313extern Lisp_Object Qfont_spec, Qfont_entity, Qfont_object;
2317 2314
2318extern void circular_list_error (Lisp_Object) NO_RETURN;
2319EXFUN (Finteractive_form, 1); 2315EXFUN (Finteractive_form, 1);
2320EXFUN (Fbyteorder, 0); 2316EXFUN (Fbyteorder, 0);
2321 2317
@@ -2404,7 +2400,6 @@ extern void init_coding_once (void);
2404extern void syms_of_coding (void); 2400extern void syms_of_coding (void);
2405 2401
2406/* Defined in character.c */ 2402/* Defined in character.c */
2407EXFUN (Funibyte_char_to_multibyte, 1);
2408EXFUN (Fchar_width, 1); 2403EXFUN (Fchar_width, 1);
2409EXFUN (Fstring, MANY); 2404EXFUN (Fstring, MANY);
2410extern EMACS_INT chars_in_text (const unsigned char *, EMACS_INT); 2405extern EMACS_INT chars_in_text (const unsigned char *, EMACS_INT);
@@ -2428,7 +2423,6 @@ extern void syms_of_composite (void);
2428EXFUN (Fforward_word, 1); 2423EXFUN (Fforward_word, 1);
2429EXFUN (Fskip_chars_forward, 2); 2424EXFUN (Fskip_chars_forward, 2);
2430EXFUN (Fskip_chars_backward, 2); 2425EXFUN (Fskip_chars_backward, 2);
2431EXFUN (Fsyntax_table_p, 1);
2432extern void init_syntax_once (void); 2426extern void init_syntax_once (void);
2433extern void syms_of_syntax (void); 2427extern void syms_of_syntax (void);
2434 2428
@@ -2526,10 +2520,8 @@ extern void init_fringe_once (void);
2526#endif /* HAVE_WINDOW_SYSTEM */ 2520#endif /* HAVE_WINDOW_SYSTEM */
2527 2521
2528/* Defined in image.c */ 2522/* Defined in image.c */
2529extern Lisp_Object QCascent, QCmargin, QCrelief, Qcount, Qextension_data; 2523extern Lisp_Object QCascent, QCmargin, QCrelief;
2530extern Lisp_Object QCconversion, QCcolor_symbols, QCheuristic_mask; 2524extern Lisp_Object QCconversion;
2531extern Lisp_Object QCindex, QCmatrix, QCcolor_adjustment, QCmask;
2532EXFUN (Finit_image_library, 2);
2533extern int x_bitmap_mask (struct frame *, int); 2525extern int x_bitmap_mask (struct frame *, int);
2534extern void syms_of_image (void); 2526extern void syms_of_image (void);
2535extern void init_image (void); 2527extern void init_image (void);
@@ -2570,12 +2562,7 @@ extern Lisp_Object del_range_2 (EMACS_INT, EMACS_INT,
2570 EMACS_INT, EMACS_INT, int); 2562 EMACS_INT, EMACS_INT, int);
2571extern void modify_region (struct buffer *, EMACS_INT, EMACS_INT, int); 2563extern void modify_region (struct buffer *, EMACS_INT, EMACS_INT, int);
2572extern void prepare_to_modify_buffer (EMACS_INT, EMACS_INT, EMACS_INT *); 2564extern void prepare_to_modify_buffer (EMACS_INT, EMACS_INT, EMACS_INT *);
2573extern void signal_before_change (EMACS_INT, EMACS_INT, EMACS_INT *);
2574extern void signal_after_change (EMACS_INT, EMACS_INT, EMACS_INT); 2565extern void signal_after_change (EMACS_INT, EMACS_INT, EMACS_INT);
2575extern void adjust_after_replace (EMACS_INT, EMACS_INT, Lisp_Object,
2576 EMACS_INT, EMACS_INT);
2577extern void adjust_after_replace_noundo (EMACS_INT, EMACS_INT, EMACS_INT,
2578 EMACS_INT, EMACS_INT, EMACS_INT);
2579extern void adjust_after_insert (EMACS_INT, EMACS_INT, EMACS_INT, 2566extern void adjust_after_insert (EMACS_INT, EMACS_INT, EMACS_INT,
2580 EMACS_INT, EMACS_INT); 2567 EMACS_INT, EMACS_INT);
2581extern void adjust_markers_for_delete (EMACS_INT, EMACS_INT, 2568extern void adjust_markers_for_delete (EMACS_INT, EMACS_INT,
@@ -2599,8 +2586,6 @@ extern void syms_of_display (void);
2599/* Defined in xdisp.c */ 2586/* Defined in xdisp.c */
2600extern Lisp_Object Qinhibit_point_motion_hooks; 2587extern Lisp_Object Qinhibit_point_motion_hooks;
2601extern Lisp_Object Qinhibit_redisplay, Qdisplay; 2588extern Lisp_Object Qinhibit_redisplay, Qdisplay;
2602extern Lisp_Object Qinhibit_eval_during_redisplay;
2603extern Lisp_Object Qmessage_truncate_lines;
2604extern Lisp_Object Qmenu_bar_update_hook; 2589extern Lisp_Object Qmenu_bar_update_hook;
2605extern Lisp_Object Qwindow_scroll_functions; 2590extern Lisp_Object Qwindow_scroll_functions;
2606extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map; 2591extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
@@ -2615,7 +2600,6 @@ extern Lisp_Object Qrisky_local_variable;
2615extern struct frame *last_glyphless_glyph_frame; 2600extern struct frame *last_glyphless_glyph_frame;
2616extern unsigned last_glyphless_glyph_face_id; 2601extern unsigned last_glyphless_glyph_face_id;
2617extern int last_glyphless_glyph_merged_face_id; 2602extern int last_glyphless_glyph_merged_face_id;
2618extern int message_enable_multibyte;
2619extern int noninteractive_need_newline; 2603extern int noninteractive_need_newline;
2620extern Lisp_Object echo_area_buffer[2]; 2604extern Lisp_Object echo_area_buffer[2];
2621extern void add_to_log (const char *, Lisp_Object, Lisp_Object); 2605extern void add_to_log (const char *, Lisp_Object, Lisp_Object);
@@ -2624,10 +2608,8 @@ extern void setup_echo_area_for_printing (int);
2624extern int push_message (void); 2608extern int push_message (void);
2625extern Lisp_Object pop_message_unwind (Lisp_Object); 2609extern Lisp_Object pop_message_unwind (Lisp_Object);
2626extern Lisp_Object restore_message_unwind (Lisp_Object); 2610extern Lisp_Object restore_message_unwind (Lisp_Object);
2627extern void pop_message (void);
2628extern void restore_message (void); 2611extern void restore_message (void);
2629extern Lisp_Object current_message (void); 2612extern Lisp_Object current_message (void);
2630extern void set_message (const char *s, Lisp_Object, EMACS_INT, int);
2631extern void clear_message (int, int); 2613extern void clear_message (int, int);
2632extern void message (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2); 2614extern void message (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2);
2633extern void message1 (const char *); 2615extern void message1 (const char *);
@@ -2642,8 +2624,6 @@ extern void message_log_maybe_newline (void);
2642extern void update_echo_area (void); 2624extern void update_echo_area (void);
2643extern void truncate_echo_area (EMACS_INT); 2625extern void truncate_echo_area (EMACS_INT);
2644extern void redisplay (void); 2626extern void redisplay (void);
2645extern int check_point_in_composition
2646 (struct buffer *, EMACS_INT, struct buffer *, EMACS_INT);
2647extern void redisplay_preserve_echo_area (int); 2627extern void redisplay_preserve_echo_area (int);
2648extern void prepare_menu_bars (void); 2628extern void prepare_menu_bars (void);
2649 2629
@@ -2670,7 +2650,9 @@ extern void memory_full (void) NO_RETURN;
2670extern void buffer_memory_full (void) NO_RETURN; 2650extern void buffer_memory_full (void) NO_RETURN;
2671extern int survives_gc_p (Lisp_Object); 2651extern int survives_gc_p (Lisp_Object);
2672extern void mark_object (Lisp_Object); 2652extern void mark_object (Lisp_Object);
2653#if defined REL_ALLOC && !defined SYSTEM_MALLOC
2673extern void refill_memory_reserve (void); 2654extern void refill_memory_reserve (void);
2655#endif
2674extern const char *pending_malloc_warning; 2656extern const char *pending_malloc_warning;
2675extern Lisp_Object *stack_base; 2657extern Lisp_Object *stack_base;
2676EXFUN (Fcons, 2); 2658EXFUN (Fcons, 2);
@@ -2724,7 +2706,6 @@ extern Lisp_Object make_float (double);
2724extern void display_malloc_warning (void); 2706extern void display_malloc_warning (void);
2725extern int inhibit_garbage_collection (void); 2707extern int inhibit_garbage_collection (void);
2726extern Lisp_Object make_save_value (void *, int); 2708extern Lisp_Object make_save_value (void *, int);
2727extern void free_misc (Lisp_Object);
2728extern void free_marker (Lisp_Object); 2709extern void free_marker (Lisp_Object);
2729extern void free_cons (struct Lisp_Cons *); 2710extern void free_cons (struct Lisp_Cons *);
2730extern void init_alloc_once (void); 2711extern void init_alloc_once (void);
@@ -2760,16 +2741,13 @@ extern void syms_of_chartab (void);
2760/* Defined in print.c */ 2741/* Defined in print.c */
2761extern Lisp_Object Vprin1_to_string_buffer; 2742extern Lisp_Object Vprin1_to_string_buffer;
2762extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE; 2743extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
2763extern void safe_debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
2764EXFUN (Fprin1, 2); 2744EXFUN (Fprin1, 2);
2765EXFUN (Fprin1_to_string, 2); 2745EXFUN (Fprin1_to_string, 2);
2766EXFUN (Fprinc, 2);
2767EXFUN (Fterpri, 1); 2746EXFUN (Fterpri, 1);
2768EXFUN (Fprint, 2); 2747EXFUN (Fprint, 2);
2769EXFUN (Ferror_message_string, 1); 2748EXFUN (Ferror_message_string, 1);
2770extern Lisp_Object Qstandard_output; 2749extern Lisp_Object Qstandard_output;
2771extern Lisp_Object Qexternal_debugging_output; 2750extern Lisp_Object Qexternal_debugging_output;
2772extern void debug_output_compilation_hack (int);
2773extern void temp_output_buffer_setup (const char *); 2751extern void temp_output_buffer_setup (const char *);
2774extern int print_level; 2752extern int print_level;
2775extern Lisp_Object Qprint_escape_newlines; 2753extern Lisp_Object Qprint_escape_newlines;
@@ -2785,20 +2763,18 @@ extern void syms_of_print (void);
2785/* Defined in lread.c. */ 2763/* Defined in lread.c. */
2786extern Lisp_Object Qvariable_documentation, Qstandard_input; 2764extern Lisp_Object Qvariable_documentation, Qstandard_input;
2787extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; 2765extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
2788extern Lisp_Object initial_obarray;
2789EXFUN (Fread, 1); 2766EXFUN (Fread, 1);
2790EXFUN (Fread_from_string, 3); 2767EXFUN (Fread_from_string, 3);
2791EXFUN (Fintern, 2); 2768EXFUN (Fintern, 2);
2792EXFUN (Fintern_soft, 2); 2769EXFUN (Fintern_soft, 2);
2770EXFUN (Funintern, 2);
2793EXFUN (Fload, 5); 2771EXFUN (Fload, 5);
2794EXFUN (Fget_load_suffixes, 0); 2772EXFUN (Fget_load_suffixes, 0);
2795EXFUN (Fread_char, 3); 2773EXFUN (Fread_char, 3);
2796EXFUN (Fread_event, 3); 2774EXFUN (Fread_event, 3);
2797EXFUN (Feval_region, 4);
2798extern Lisp_Object check_obarray (Lisp_Object); 2775extern Lisp_Object check_obarray (Lisp_Object);
2799extern Lisp_Object intern (const char *); 2776extern Lisp_Object intern (const char *);
2800extern Lisp_Object intern_c_string (const char *); 2777extern Lisp_Object intern_c_string (const char *);
2801extern Lisp_Object make_symbol (const char *);
2802extern Lisp_Object oblookup (Lisp_Object, const char *, EMACS_INT, EMACS_INT); 2778extern Lisp_Object oblookup (Lisp_Object, const char *, EMACS_INT, EMACS_INT);
2803#define LOADHIST_ATTACH(x) \ 2779#define LOADHIST_ATTACH(x) \
2804 do { \ 2780 do { \
@@ -2818,9 +2794,14 @@ extern void syms_of_lread (void);
2818/* Defined in eval.c. */ 2794/* Defined in eval.c. */
2819extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qdefun, Qmacro; 2795extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qdefun, Qmacro;
2820extern Lisp_Object Qinhibit_quit, Qclosure; 2796extern Lisp_Object Qinhibit_quit, Qclosure;
2797extern Lisp_Object Qand_rest;
2821extern Lisp_Object Vautoload_queue; 2798extern Lisp_Object Vautoload_queue;
2822extern Lisp_Object Vsignaling_function; 2799extern Lisp_Object Vsignaling_function;
2823extern int handling_signal; 2800extern int handling_signal;
2801#if BYTE_MARK_STACK
2802extern struct catchtag *catchlist;
2803extern struct handler *handlerlist;
2804#endif
2824/* To run a normal hook, use the appropriate function from the list below. 2805/* To run a normal hook, use the appropriate function from the list below.
2825 The calling convention: 2806 The calling convention:
2826 2807
@@ -2852,7 +2833,6 @@ EXFUN (Feval, 2);
2852extern Lisp_Object eval_sub (Lisp_Object form); 2833extern Lisp_Object eval_sub (Lisp_Object form);
2853EXFUN (Fapply, MANY); 2834EXFUN (Fapply, MANY);
2854EXFUN (Ffuncall, MANY); 2835EXFUN (Ffuncall, MANY);
2855EXFUN (Fbacktrace, 0);
2856extern Lisp_Object apply1 (Lisp_Object, Lisp_Object); 2836extern Lisp_Object apply1 (Lisp_Object, Lisp_Object);
2857extern Lisp_Object call0 (Lisp_Object); 2837extern Lisp_Object call0 (Lisp_Object);
2858extern Lisp_Object call1 (Lisp_Object, Lisp_Object); 2838extern Lisp_Object call1 (Lisp_Object, Lisp_Object);
@@ -2877,13 +2857,14 @@ extern void verror (const char *, va_list)
2877 NO_RETURN ATTRIBUTE_FORMAT_PRINTF (1, 0); 2857 NO_RETURN ATTRIBUTE_FORMAT_PRINTF (1, 0);
2878extern void do_autoload (Lisp_Object, Lisp_Object); 2858extern void do_autoload (Lisp_Object, Lisp_Object);
2879extern Lisp_Object un_autoload (Lisp_Object); 2859extern Lisp_Object un_autoload (Lisp_Object);
2880EXFUN (Ffetch_bytecode, 1);
2881extern void init_eval_once (void); 2860extern void init_eval_once (void);
2882extern Lisp_Object safe_call (size_t, Lisp_Object *); 2861extern Lisp_Object safe_call (size_t, Lisp_Object *);
2883extern Lisp_Object safe_call1 (Lisp_Object, Lisp_Object); 2862extern Lisp_Object safe_call1 (Lisp_Object, Lisp_Object);
2884extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object); 2863extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object);
2885extern void init_eval (void); 2864extern void init_eval (void);
2865#if BYTE_MARK_STACK
2886extern void mark_backtrace (void); 2866extern void mark_backtrace (void);
2867#endif
2887extern void syms_of_eval (void); 2868extern void syms_of_eval (void);
2888 2869
2889/* Defined in editfns.c */ 2870/* Defined in editfns.c */
@@ -2921,13 +2902,13 @@ EXFUN (Fwiden, 0);
2921EXFUN (Fuser_login_name, 1); 2902EXFUN (Fuser_login_name, 1);
2922EXFUN (Fsystem_name, 0); 2903EXFUN (Fsystem_name, 0);
2923EXFUN (Fcurrent_time, 0); 2904EXFUN (Fcurrent_time, 0);
2905EXFUN (Fget_internal_run_time, 0);
2924extern EMACS_INT clip_to_bounds (EMACS_INT, EMACS_INT, EMACS_INT); 2906extern EMACS_INT clip_to_bounds (EMACS_INT, EMACS_INT, EMACS_INT);
2925extern Lisp_Object make_buffer_string (EMACS_INT, EMACS_INT, int); 2907extern Lisp_Object make_buffer_string (EMACS_INT, EMACS_INT, int);
2926extern Lisp_Object make_buffer_string_both (EMACS_INT, EMACS_INT, EMACS_INT, 2908extern Lisp_Object make_buffer_string_both (EMACS_INT, EMACS_INT, EMACS_INT,
2927 EMACS_INT, int); 2909 EMACS_INT, int);
2928extern void init_editfns (void); 2910extern void init_editfns (void);
2929const char *get_system_name (void); 2911const char *get_system_name (void);
2930const char *get_operating_system_release (void);
2931extern void syms_of_editfns (void); 2912extern void syms_of_editfns (void);
2932EXFUN (Fconstrain_to_field, 5); 2913EXFUN (Fconstrain_to_field, 5);
2933EXFUN (Ffield_end, 3); 2914EXFUN (Ffield_end, 3);
@@ -2953,7 +2934,6 @@ EXFUN (Fset_buffer, 1);
2953extern Lisp_Object set_buffer_if_live (Lisp_Object); 2934extern Lisp_Object set_buffer_if_live (Lisp_Object);
2954EXFUN (Fbarf_if_buffer_read_only, 0); 2935EXFUN (Fbarf_if_buffer_read_only, 0);
2955EXFUN (Fcurrent_buffer, 0); 2936EXFUN (Fcurrent_buffer, 0);
2956EXFUN (Fswitch_to_buffer, 2);
2957EXFUN (Fother_buffer, 3); 2937EXFUN (Fother_buffer, 3);
2958EXFUN (Foverlay_get, 2); 2938EXFUN (Foverlay_get, 2);
2959EXFUN (Fbuffer_modified_p, 1); 2939EXFUN (Fbuffer_modified_p, 1);
@@ -2962,8 +2942,7 @@ EXFUN (Fkill_buffer, 1);
2962EXFUN (Fkill_all_local_variables, 0); 2942EXFUN (Fkill_all_local_variables, 0);
2963EXFUN (Fbuffer_enable_undo, 1); 2943EXFUN (Fbuffer_enable_undo, 1);
2964EXFUN (Ferase_buffer, 0); 2944EXFUN (Ferase_buffer, 0);
2965extern Lisp_Object Qoverlayp; 2945extern Lisp_Object Qpriority, Qwindow, Qbefore_string, Qafter_string;
2966extern Lisp_Object Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string;
2967extern Lisp_Object get_truename_buffer (Lisp_Object); 2946extern Lisp_Object get_truename_buffer (Lisp_Object);
2968extern struct buffer *all_buffers; 2947extern struct buffer *all_buffers;
2969EXFUN (Fprevious_overlay_change, 1); 2948EXFUN (Fprevious_overlay_change, 1);
@@ -2984,14 +2963,12 @@ extern EMACS_INT marker_byte_position (Lisp_Object);
2984extern void clear_charpos_cache (struct buffer *); 2963extern void clear_charpos_cache (struct buffer *);
2985extern EMACS_INT charpos_to_bytepos (EMACS_INT); 2964extern EMACS_INT charpos_to_bytepos (EMACS_INT);
2986extern EMACS_INT buf_charpos_to_bytepos (struct buffer *, EMACS_INT); 2965extern EMACS_INT buf_charpos_to_bytepos (struct buffer *, EMACS_INT);
2987extern EMACS_INT verify_bytepos (EMACS_INT charpos);
2988extern EMACS_INT buf_bytepos_to_charpos (struct buffer *, EMACS_INT); 2966extern EMACS_INT buf_bytepos_to_charpos (struct buffer *, EMACS_INT);
2989extern void unchain_marker (struct Lisp_Marker *marker); 2967extern void unchain_marker (struct Lisp_Marker *marker);
2990extern Lisp_Object set_marker_restricted (Lisp_Object, Lisp_Object, Lisp_Object); 2968extern Lisp_Object set_marker_restricted (Lisp_Object, Lisp_Object, Lisp_Object);
2991extern Lisp_Object set_marker_both (Lisp_Object, Lisp_Object, EMACS_INT, EMACS_INT); 2969extern Lisp_Object set_marker_both (Lisp_Object, Lisp_Object, EMACS_INT, EMACS_INT);
2992extern Lisp_Object set_marker_restricted_both (Lisp_Object, Lisp_Object, 2970extern Lisp_Object set_marker_restricted_both (Lisp_Object, Lisp_Object,
2993 EMACS_INT, EMACS_INT); 2971 EMACS_INT, EMACS_INT);
2994extern int count_markers (struct buffer *);
2995extern void syms_of_marker (void); 2972extern void syms_of_marker (void);
2996 2973
2997/* Defined in fileio.c */ 2974/* Defined in fileio.c */
@@ -3018,7 +2995,6 @@ EXFUN (Funhandled_file_name_directory, 1);
3018EXFUN (Ffile_directory_p, 1); 2995EXFUN (Ffile_directory_p, 1);
3019EXFUN (Fwrite_region, 7); 2996EXFUN (Fwrite_region, 7);
3020EXFUN (Ffile_readable_p, 1); 2997EXFUN (Ffile_readable_p, 1);
3021EXFUN (Ffile_executable_p, 1);
3022EXFUN (Fread_file_name, 6); 2998EXFUN (Fread_file_name, 6);
3023extern Lisp_Object close_file_unwind (Lisp_Object); 2999extern Lisp_Object close_file_unwind (Lisp_Object);
3024extern Lisp_Object restore_point_unwind (Lisp_Object); 3000extern Lisp_Object restore_point_unwind (Lisp_Object);
@@ -3026,7 +3002,6 @@ extern void report_file_error (const char *, Lisp_Object) NO_RETURN;
3026extern int internal_delete_file (Lisp_Object); 3002extern int internal_delete_file (Lisp_Object);
3027extern void syms_of_fileio (void); 3003extern void syms_of_fileio (void);
3028extern Lisp_Object make_temp_name (Lisp_Object, int); 3004extern Lisp_Object make_temp_name (Lisp_Object, int);
3029EXFUN (Fmake_symbolic_link, 3);
3030extern Lisp_Object Qdelete_file; 3005extern Lisp_Object Qdelete_file;
3031 3006
3032/* Defined in abbrev.c */ 3007/* Defined in abbrev.c */
@@ -3066,7 +3041,6 @@ extern void clear_regexp_cache (void);
3066extern Lisp_Object Qcompletion_ignore_case; 3041extern Lisp_Object Qcompletion_ignore_case;
3067extern Lisp_Object Vminibuffer_list; 3042extern Lisp_Object Vminibuffer_list;
3068extern Lisp_Object last_minibuf_string; 3043extern Lisp_Object last_minibuf_string;
3069extern void choose_minibuf_frame (void);
3070EXFUN (Fcompleting_read, 8); 3044EXFUN (Fcompleting_read, 8);
3071EXFUN (Fread_from_minibuffer, 7); 3045EXFUN (Fread_from_minibuffer, 7);
3072EXFUN (Fread_variable, 2); 3046EXFUN (Fread_variable, 2);
@@ -3107,22 +3081,18 @@ extern void syms_of_casetab (void);
3107 3081
3108/* Defined in keyboard.c */ 3082/* Defined in keyboard.c */
3109 3083
3110extern int echoing;
3111extern Lisp_Object echo_message_buffer; 3084extern Lisp_Object echo_message_buffer;
3112extern struct kboard *echo_kboard; 3085extern struct kboard *echo_kboard;
3113extern void cancel_echoing (void); 3086extern void cancel_echoing (void);
3114extern Lisp_Object Qdisabled, QCfilter; 3087extern Lisp_Object Qdisabled, QCfilter;
3115extern Lisp_Object Qabove_handle, Qhandle, Qbelow_handle; 3088extern Lisp_Object Qup, Qdown, Qbottom;
3116extern Lisp_Object Qup, Qdown, Qbottom, Qend_scroll; 3089extern Lisp_Object Qtop;
3117extern Lisp_Object Qtop, Qratio;
3118extern int input_pending; 3090extern int input_pending;
3119EXFUN (Fdiscard_input, 0); 3091EXFUN (Fdiscard_input, 0);
3120EXFUN (Frecursive_edit, 0); 3092EXFUN (Frecursive_edit, 0);
3121EXFUN (Ftop_level, 0) NO_RETURN; 3093EXFUN (Ftop_level, 0) NO_RETURN;
3122EXFUN (Fcommand_execute, 4);
3123extern Lisp_Object menu_bar_items (Lisp_Object); 3094extern Lisp_Object menu_bar_items (Lisp_Object);
3124extern Lisp_Object tool_bar_items (Lisp_Object, int *); 3095extern Lisp_Object tool_bar_items (Lisp_Object, int *);
3125extern Lisp_Object Qvertical_scroll_bar;
3126extern void discard_mouse_events (void); 3096extern void discard_mouse_events (void);
3127EXFUN (Fevent_convert_list, 1); 3097EXFUN (Fevent_convert_list, 1);
3128EXFUN (Fread_key_sequence, 5); 3098EXFUN (Fread_key_sequence, 5);
@@ -3137,7 +3107,9 @@ extern void cmd_error_internal (Lisp_Object, const char *);
3137extern Lisp_Object command_loop_1 (void); 3107extern Lisp_Object command_loop_1 (void);
3138extern Lisp_Object recursive_edit_1 (void); 3108extern Lisp_Object recursive_edit_1 (void);
3139extern void record_auto_save (void); 3109extern void record_auto_save (void);
3110#ifdef SIGDANGER
3140extern void force_auto_save_soon (void); 3111extern void force_auto_save_soon (void);
3112#endif
3141extern void init_keyboard (void); 3113extern void init_keyboard (void);
3142extern void syms_of_keyboard (void); 3114extern void syms_of_keyboard (void);
3143extern void keys_of_keyboard (void); 3115extern void keys_of_keyboard (void);
@@ -3161,7 +3133,9 @@ extern Lisp_Object Qvisible;
3161extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object); 3133extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object);
3162extern void store_in_alist (Lisp_Object *, Lisp_Object, Lisp_Object); 3134extern void store_in_alist (Lisp_Object *, Lisp_Object, Lisp_Object);
3163extern Lisp_Object do_switch_frame (Lisp_Object, int, int, Lisp_Object); 3135extern Lisp_Object do_switch_frame (Lisp_Object, int, int, Lisp_Object);
3136#if HAVE_NS
3164extern Lisp_Object get_frame_param (struct frame *, Lisp_Object); 3137extern Lisp_Object get_frame_param (struct frame *, Lisp_Object);
3138#endif
3165extern Lisp_Object frame_buffer_predicate (Lisp_Object); 3139extern Lisp_Object frame_buffer_predicate (Lisp_Object);
3166EXFUN (Fselect_frame, 2); 3140EXFUN (Fselect_frame, 2);
3167EXFUN (Fselected_frame, 0); 3141EXFUN (Fselected_frame, 0);
@@ -3189,8 +3163,9 @@ extern int display_arg;
3189extern Lisp_Object decode_env_path (const char *, const char *); 3163extern Lisp_Object decode_env_path (const char *, const char *);
3190extern Lisp_Object empty_unibyte_string, empty_multibyte_string; 3164extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
3191extern Lisp_Object Qfile_name_handler_alist; 3165extern Lisp_Object Qfile_name_handler_alist;
3192extern void (*fatal_error_signal_hook) (void); 3166#ifdef FLOAT_CATCH_SIGILL
3193extern void fatal_error_signal (int); 3167extern void fatal_error_signal (int);
3168#endif
3194EXFUN (Fkill_emacs, 1) NO_RETURN; 3169EXFUN (Fkill_emacs, 1) NO_RETURN;
3195#if HAVE_SETLOCALE 3170#if HAVE_SETLOCALE
3196void fixup_locale (void); 3171void fixup_locale (void);
@@ -3219,9 +3194,8 @@ extern int inhibit_window_system;
3219/* Nonzero means that a filter or a sentinel is running. */ 3194/* Nonzero means that a filter or a sentinel is running. */
3220extern int running_asynch_code; 3195extern int running_asynch_code;
3221 3196
3222/* Defined in process.c */ 3197/* Defined in process.c. */
3223extern Lisp_Object QCtype, Qlocal; 3198extern Lisp_Object QCtype, Qlocal;
3224EXFUN (Fget_process, 1);
3225EXFUN (Fget_buffer_process, 1); 3199EXFUN (Fget_buffer_process, 1);
3226EXFUN (Fprocess_status, 1); 3200EXFUN (Fprocess_status, 1);
3227EXFUN (Fkill_process, 2); 3201EXFUN (Fkill_process, 2);
@@ -3255,7 +3229,6 @@ extern void syms_of_callproc (void);
3255/* Defined in doc.c */ 3229/* Defined in doc.c */
3256extern Lisp_Object Qfunction_documentation; 3230extern Lisp_Object Qfunction_documentation;
3257EXFUN (Fsubstitute_command_keys, 1); 3231EXFUN (Fsubstitute_command_keys, 1);
3258EXFUN (Fdocumentation_property, 3);
3259extern Lisp_Object read_doc_string (Lisp_Object); 3232extern Lisp_Object read_doc_string (Lisp_Object);
3260extern Lisp_Object get_doc_string (Lisp_Object, int, int); 3233extern Lisp_Object get_doc_string (Lisp_Object, int, int);
3261extern void syms_of_doc (void); 3234extern void syms_of_doc (void);
@@ -3263,10 +3236,9 @@ extern int read_bytecode_char (int);
3263 3236
3264/* Defined in bytecode.c */ 3237/* Defined in bytecode.c */
3265extern Lisp_Object Qbytecode; 3238extern Lisp_Object Qbytecode;
3266EXFUN (Fbyte_code, 3);
3267extern void syms_of_bytecode (void); 3239extern void syms_of_bytecode (void);
3268extern struct byte_stack *byte_stack_list; 3240extern struct byte_stack *byte_stack_list;
3269#ifdef BYTE_MARK_STACK 3241#if BYTE_MARK_STACK
3270extern void mark_byte_stack (void); 3242extern void mark_byte_stack (void);
3271#endif 3243#endif
3272extern void unmark_byte_stack (void); 3244extern void unmark_byte_stack (void);
@@ -3341,7 +3313,6 @@ extern void flush_pending_output (int);
3341extern void child_setup_tty (int); 3313extern void child_setup_tty (int);
3342extern void setup_pty (int); 3314extern void setup_pty (int);
3343extern int set_window_size (int, int, int); 3315extern int set_window_size (int, int, int);
3344extern void create_process (Lisp_Object, char **, Lisp_Object);
3345extern long get_random (void); 3316extern long get_random (void);
3346extern void seed_random (long); 3317extern void seed_random (long);
3347extern int emacs_open (const char *, int, int); 3318extern int emacs_open (const char *, int, int);
@@ -3384,7 +3355,6 @@ extern void syms_of_category (void);
3384extern void syms_of_ccl (void); 3355extern void syms_of_ccl (void);
3385 3356
3386/* Defined in dired.c */ 3357/* Defined in dired.c */
3387EXFUN (Ffile_attributes, 2);
3388extern void syms_of_dired (void); 3358extern void syms_of_dired (void);
3389extern Lisp_Object directory_files_internal (Lisp_Object, Lisp_Object, 3359extern Lisp_Object directory_files_internal (Lisp_Object, Lisp_Object,
3390 Lisp_Object, Lisp_Object, 3360 Lisp_Object, Lisp_Object,
@@ -3417,9 +3387,9 @@ EXFUN (Fx_focus_frame, 1);
3417#endif 3387#endif
3418 3388
3419/* Defined in xfaces.c */ 3389/* Defined in xfaces.c */
3420extern Lisp_Object Qdefault, Qtool_bar, Qregion, Qfringe; 3390extern Lisp_Object Qdefault, Qtool_bar, Qfringe;
3421extern Lisp_Object Qheader_line, Qscroll_bar, Qcursor, Qborder, Qmouse, Qmenu; 3391extern Lisp_Object Qheader_line, Qscroll_bar, Qcursor;
3422extern Lisp_Object Qmode_line_inactive, Qvertical_border; 3392extern Lisp_Object Qmode_line_inactive;
3423extern Lisp_Object Qface; 3393extern Lisp_Object Qface;
3424extern Lisp_Object Qnormal; 3394extern Lisp_Object Qnormal;
3425extern Lisp_Object QCfamily, QCweight, QCslant; 3395extern Lisp_Object QCfamily, QCweight, QCslant;
@@ -3530,16 +3500,6 @@ extern void init_system_name (void);
3530 ? 0 \ 3500 ? 0 \
3531 : (wrong_type_argument (Qlistp, (list))), 1)) 3501 : (wrong_type_argument (Qlistp, (list))), 1))
3532 3502
3533#define FOREACH(hare, list, tortoise, n) \
3534 for (tortoise = hare = (list), n = 0; \
3535 !LIST_END_P (list, hare); \
3536 (hare = XCDR (hare), ++n, \
3537 ((n & 1) != 0 \
3538 ? (tortoise = XCDR (tortoise), \
3539 (EQ (hare, tortoise) \
3540 && (circular_list_error ((list)), 1))) \
3541 : 0)))
3542
3543/* Use this to suppress gcc's `...may be used before initialized' warnings. */ 3503/* Use this to suppress gcc's `...may be used before initialized' warnings. */
3544#ifdef lint 3504#ifdef lint
3545# define IF_LINT(Code) Code 3505# define IF_LINT(Code) Code