diff options
| author | Tom Tromey | 2012-09-04 10:10:06 -0600 |
|---|---|---|
| committer | Tom Tromey | 2012-09-04 10:10:06 -0600 |
| commit | bf69f522a9e135f9aa483cedd53e71e915f2bf75 (patch) | |
| tree | 3f73c47fb863ef87f420de1d30858da821072bd9 /src/lisp.h | |
| parent | 303324a9232dbc89369faceb6b3530740d0fc1bd (diff) | |
| parent | 6ec9a5a7b5efb129807f567709ca858211ed7840 (diff) | |
| download | emacs-bf69f522a9e135f9aa483cedd53e71e915f2bf75.tar.gz emacs-bf69f522a9e135f9aa483cedd53e71e915f2bf75.zip | |
merge from trunk
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 162 |
1 files changed, 103 insertions, 59 deletions
diff --git a/src/lisp.h b/src/lisp.h index 5c7e8dc2f82..07a3ae17469 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -126,7 +126,7 @@ extern _Noreturn void die (const char *, const char *, int); | |||
| 126 | eassert macro altogether, e.g., if XSTRING (x) uses eassert to test | 126 | eassert macro altogether, e.g., if XSTRING (x) uses eassert to test |
| 127 | STRINGP (x), but a particular use of XSTRING is invoked only after | 127 | STRINGP (x), but a particular use of XSTRING is invoked only after |
| 128 | testing that STRINGP (x) is true, making the test redundant. */ | 128 | testing that STRINGP (x) is true, making the test redundant. */ |
| 129 | extern int suppress_checking EXTERNALLY_VISIBLE; | 129 | extern bool suppress_checking EXTERNALLY_VISIBLE; |
| 130 | 130 | ||
| 131 | # define eassert(cond) \ | 131 | # define eassert(cond) \ |
| 132 | ((cond) || suppress_checking \ | 132 | ((cond) || suppress_checking \ |
| @@ -617,10 +617,8 @@ clip_to_bounds (ptrdiff_t lower, EMACS_INT num, ptrdiff_t upper) | |||
| 617 | 617 | ||
| 618 | #define AREF(ARRAY, IDX) XVECTOR ((ARRAY))->contents[IDX] | 618 | #define AREF(ARRAY, IDX) XVECTOR ((ARRAY))->contents[IDX] |
| 619 | #define ASIZE(ARRAY) XVECTOR ((ARRAY))->header.size | 619 | #define ASIZE(ARRAY) XVECTOR ((ARRAY))->header.size |
| 620 | /* The IDX==IDX tries to detect when the macro argument is side-effecting. */ | ||
| 621 | #define ASET(ARRAY, IDX, VAL) \ | 620 | #define ASET(ARRAY, IDX, VAL) \ |
| 622 | (eassert ((IDX) == (IDX)), \ | 621 | (eassert (0 <= (IDX) && (IDX) < ASIZE (ARRAY)), \ |
| 623 | eassert ((IDX) >= 0 && (IDX) < ASIZE (ARRAY)), \ | ||
| 624 | XVECTOR (ARRAY)->contents[IDX] = (VAL)) | 622 | XVECTOR (ARRAY)->contents[IDX] = (VAL)) |
| 625 | 623 | ||
| 626 | /* Convenience macros for dealing with Lisp strings. */ | 624 | /* Convenience macros for dealing with Lisp strings. */ |
| @@ -713,7 +711,7 @@ struct Lisp_Cons | |||
| 713 | #define CDR_SAFE(c) \ | 711 | #define CDR_SAFE(c) \ |
| 714 | (CONSP ((c)) ? XCDR ((c)) : Qnil) | 712 | (CONSP ((c)) ? XCDR ((c)) : Qnil) |
| 715 | 713 | ||
| 716 | /* Nonzero if STR is a multibyte string. */ | 714 | /* True if STR is a multibyte string. */ |
| 717 | #define STRING_MULTIBYTE(STR) \ | 715 | #define STRING_MULTIBYTE(STR) \ |
| 718 | (XSTRING (STR)->size_byte >= 0) | 716 | (XSTRING (STR)->size_byte >= 0) |
| 719 | 717 | ||
| @@ -1929,11 +1927,7 @@ typedef struct { | |||
| 1929 | Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) | 1927 | Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) |
| 1930 | 1928 | ||
| 1931 | /* Non-zero if OBJ is a Lisp function. */ | 1929 | /* Non-zero if OBJ is a Lisp function. */ |
| 1932 | #define FUNCTIONP(OBJ) \ | 1930 | #define FUNCTIONP(OBJ) functionp(OBJ) |
| 1933 | ((CONSP (OBJ) && EQ (XCAR (OBJ), Qlambda)) \ | ||
| 1934 | || (SYMBOLP (OBJ) && !NILP (Ffboundp (OBJ))) \ | ||
| 1935 | || COMPILEDP (OBJ) \ | ||
| 1936 | || SUBRP (OBJ)) | ||
| 1937 | 1931 | ||
| 1938 | /* defsubr (Sname); | 1932 | /* defsubr (Sname); |
| 1939 | is how we define the symbol for function `name' at start-up time. */ | 1933 | is how we define the symbol for function `name' at start-up time. */ |
| @@ -2357,6 +2351,17 @@ gc_aset (Lisp_Object array, ptrdiff_t idx, Lisp_Object val) | |||
| 2357 | XVECTOR (array)->contents[idx] = val; | 2351 | XVECTOR (array)->contents[idx] = val; |
| 2358 | } | 2352 | } |
| 2359 | 2353 | ||
| 2354 | /* Copy COUNT Lisp_Objects from ARGS to contents of V starting from OFFSET. */ | ||
| 2355 | |||
| 2356 | LISP_INLINE void | ||
| 2357 | vcopy (Lisp_Object v, ptrdiff_t offset, Lisp_Object *args, ptrdiff_t count) | ||
| 2358 | { | ||
| 2359 | eassert (0 <= offset && 0 <= count && offset + count <= ASIZE (v)); | ||
| 2360 | memcpy (XVECTOR (v)->contents + offset, args, count * sizeof *args); | ||
| 2361 | } | ||
| 2362 | |||
| 2363 | /* Functions to modify hash tables. */ | ||
| 2364 | |||
| 2360 | LISP_INLINE void | 2365 | LISP_INLINE void |
| 2361 | set_hash_key_and_value (struct Lisp_Hash_Table *h, Lisp_Object key_and_value) | 2366 | set_hash_key_and_value (struct Lisp_Hash_Table *h, Lisp_Object key_and_value) |
| 2362 | { | 2367 | { |
| @@ -2582,8 +2587,7 @@ extern Lisp_Object Qoverflow_error, Qunderflow_error; | |||
| 2582 | extern Lisp_Object Qfloatp; | 2587 | extern Lisp_Object Qfloatp; |
| 2583 | extern Lisp_Object Qnumberp, Qnumber_or_marker_p; | 2588 | extern Lisp_Object Qnumberp, Qnumber_or_marker_p; |
| 2584 | 2589 | ||
| 2585 | extern Lisp_Object Qinteger, Qinterval, Qsymbol, Qstring; | 2590 | extern Lisp_Object Qbuffer, Qinteger, Qsymbol; |
| 2586 | extern Lisp_Object Qmisc, Qvector, Qfloat, Qcons, Qbuffer; | ||
| 2587 | 2591 | ||
| 2588 | extern Lisp_Object Qfont_spec, Qfont_entity, Qfont_object; | 2592 | extern Lisp_Object Qfont_spec, Qfont_entity, Qfont_object; |
| 2589 | 2593 | ||
| @@ -2630,7 +2634,7 @@ extern _Noreturn void args_out_of_range_3 (Lisp_Object, Lisp_Object, | |||
| 2630 | Lisp_Object); | 2634 | Lisp_Object); |
| 2631 | extern _Noreturn Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object); | 2635 | extern _Noreturn Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object); |
| 2632 | extern Lisp_Object do_symval_forwarding (union Lisp_Fwd *); | 2636 | extern Lisp_Object do_symval_forwarding (union Lisp_Fwd *); |
| 2633 | extern void set_internal (Lisp_Object, Lisp_Object, Lisp_Object, int); | 2637 | extern void set_internal (Lisp_Object, Lisp_Object, Lisp_Object, bool); |
| 2634 | extern void syms_of_data (void); | 2638 | extern void syms_of_data (void); |
| 2635 | extern void init_data (void); | 2639 | extern void init_data (void); |
| 2636 | extern void swap_in_global_binding (struct Lisp_Symbol *); | 2640 | extern void swap_in_global_binding (struct Lisp_Symbol *); |
| @@ -2642,7 +2646,7 @@ extern void keys_of_cmds (void); | |||
| 2642 | /* Defined in coding.c */ | 2646 | /* Defined in coding.c */ |
| 2643 | extern Lisp_Object Qcharset; | 2647 | extern Lisp_Object Qcharset; |
| 2644 | extern Lisp_Object detect_coding_system (const unsigned char *, ptrdiff_t, | 2648 | extern Lisp_Object detect_coding_system (const unsigned char *, ptrdiff_t, |
| 2645 | ptrdiff_t, int, int, Lisp_Object); | 2649 | ptrdiff_t, bool, bool, Lisp_Object); |
| 2646 | extern void init_coding (void); | 2650 | extern void init_coding (void); |
| 2647 | extern void init_coding_once (void); | 2651 | extern void init_coding_once (void); |
| 2648 | extern void syms_of_coding (void); | 2652 | extern void syms_of_coding (void); |
| @@ -2730,43 +2734,43 @@ extern void move_gap_both (ptrdiff_t, ptrdiff_t); | |||
| 2730 | extern _Noreturn void buffer_overflow (void); | 2734 | extern _Noreturn void buffer_overflow (void); |
| 2731 | extern void make_gap (ptrdiff_t); | 2735 | extern void make_gap (ptrdiff_t); |
| 2732 | extern ptrdiff_t copy_text (const unsigned char *, unsigned char *, | 2736 | extern ptrdiff_t copy_text (const unsigned char *, unsigned char *, |
| 2733 | ptrdiff_t, int, int); | 2737 | ptrdiff_t, bool, bool); |
| 2734 | extern int count_combining_before (const unsigned char *, | 2738 | extern int count_combining_before (const unsigned char *, |
| 2735 | ptrdiff_t, ptrdiff_t, ptrdiff_t); | 2739 | ptrdiff_t, ptrdiff_t, ptrdiff_t); |
| 2736 | extern int count_combining_after (const unsigned char *, | 2740 | extern int count_combining_after (const unsigned char *, |
| 2737 | ptrdiff_t, ptrdiff_t, ptrdiff_t); | 2741 | ptrdiff_t, ptrdiff_t, ptrdiff_t); |
| 2738 | extern void insert (const char *, ptrdiff_t); | 2742 | extern void insert (const char *, ptrdiff_t); |
| 2739 | extern void insert_and_inherit (const char *, ptrdiff_t); | 2743 | extern void insert_and_inherit (const char *, ptrdiff_t); |
| 2740 | extern void insert_1 (const char *, ptrdiff_t, int, int, int); | 2744 | extern void insert_1 (const char *, ptrdiff_t, bool, bool, bool); |
| 2741 | extern void insert_1_both (const char *, ptrdiff_t, ptrdiff_t, | 2745 | extern void insert_1_both (const char *, ptrdiff_t, ptrdiff_t, |
| 2742 | int, int, int); | 2746 | bool, bool, bool); |
| 2743 | extern void insert_from_gap (ptrdiff_t, ptrdiff_t); | 2747 | extern void insert_from_gap (ptrdiff_t, ptrdiff_t); |
| 2744 | extern void insert_from_string (Lisp_Object, ptrdiff_t, ptrdiff_t, | 2748 | extern void insert_from_string (Lisp_Object, ptrdiff_t, ptrdiff_t, |
| 2745 | ptrdiff_t, ptrdiff_t, int); | 2749 | ptrdiff_t, ptrdiff_t, bool); |
| 2746 | extern void insert_from_buffer (struct buffer *, ptrdiff_t, ptrdiff_t, int); | 2750 | extern void insert_from_buffer (struct buffer *, ptrdiff_t, ptrdiff_t, bool); |
| 2747 | extern void insert_char (int); | 2751 | extern void insert_char (int); |
| 2748 | extern void insert_string (const char *); | 2752 | extern void insert_string (const char *); |
| 2749 | extern void insert_before_markers (const char *, ptrdiff_t); | 2753 | extern void insert_before_markers (const char *, ptrdiff_t); |
| 2750 | extern void insert_before_markers_and_inherit (const char *, ptrdiff_t); | 2754 | extern void insert_before_markers_and_inherit (const char *, ptrdiff_t); |
| 2751 | extern void insert_from_string_before_markers (Lisp_Object, ptrdiff_t, | 2755 | extern void insert_from_string_before_markers (Lisp_Object, ptrdiff_t, |
| 2752 | ptrdiff_t, ptrdiff_t, | 2756 | ptrdiff_t, ptrdiff_t, |
| 2753 | ptrdiff_t, int); | 2757 | ptrdiff_t, bool); |
| 2754 | extern void del_range (ptrdiff_t, ptrdiff_t); | 2758 | extern void del_range (ptrdiff_t, ptrdiff_t); |
| 2755 | extern Lisp_Object del_range_1 (ptrdiff_t, ptrdiff_t, int, int); | 2759 | extern Lisp_Object del_range_1 (ptrdiff_t, ptrdiff_t, bool, bool); |
| 2756 | extern void del_range_byte (ptrdiff_t, ptrdiff_t, int); | 2760 | extern void del_range_byte (ptrdiff_t, ptrdiff_t, bool); |
| 2757 | extern void del_range_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, int); | 2761 | extern void del_range_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, bool); |
| 2758 | extern Lisp_Object del_range_2 (ptrdiff_t, ptrdiff_t, | 2762 | extern Lisp_Object del_range_2 (ptrdiff_t, ptrdiff_t, |
| 2759 | ptrdiff_t, ptrdiff_t, int); | 2763 | ptrdiff_t, ptrdiff_t, bool); |
| 2760 | extern void modify_region (struct buffer *, ptrdiff_t, ptrdiff_t, int); | 2764 | extern void modify_region (struct buffer *, ptrdiff_t, ptrdiff_t, bool); |
| 2761 | extern void prepare_to_modify_buffer (ptrdiff_t, ptrdiff_t, ptrdiff_t *); | 2765 | extern void prepare_to_modify_buffer (ptrdiff_t, ptrdiff_t, ptrdiff_t *); |
| 2762 | extern void signal_after_change (ptrdiff_t, ptrdiff_t, ptrdiff_t); | 2766 | extern void signal_after_change (ptrdiff_t, ptrdiff_t, ptrdiff_t); |
| 2763 | extern void adjust_after_insert (ptrdiff_t, ptrdiff_t, ptrdiff_t, | 2767 | extern void adjust_after_insert (ptrdiff_t, ptrdiff_t, ptrdiff_t, |
| 2764 | ptrdiff_t, ptrdiff_t); | 2768 | ptrdiff_t, ptrdiff_t); |
| 2765 | extern void adjust_markers_for_delete (ptrdiff_t, ptrdiff_t, | 2769 | extern void adjust_markers_for_delete (ptrdiff_t, ptrdiff_t, |
| 2766 | ptrdiff_t, ptrdiff_t); | 2770 | ptrdiff_t, ptrdiff_t); |
| 2767 | extern void replace_range (ptrdiff_t, ptrdiff_t, Lisp_Object, int, int, int); | 2771 | extern void replace_range (ptrdiff_t, ptrdiff_t, Lisp_Object, bool, bool, bool); |
| 2768 | extern void replace_range_2 (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, | 2772 | extern void replace_range_2 (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, |
| 2769 | const char *, ptrdiff_t, ptrdiff_t, int); | 2773 | const char *, ptrdiff_t, ptrdiff_t, bool); |
| 2770 | extern void syms_of_insdel (void); | 2774 | extern void syms_of_insdel (void); |
| 2771 | 2775 | ||
| 2772 | /* Defined in dispnew.c */ | 2776 | /* Defined in dispnew.c */ |
| @@ -2776,7 +2780,7 @@ _Noreturn void __executable_start (void); | |||
| 2776 | #endif | 2780 | #endif |
| 2777 | extern Lisp_Object selected_frame; | 2781 | extern Lisp_Object selected_frame; |
| 2778 | extern Lisp_Object Vwindow_system; | 2782 | extern Lisp_Object Vwindow_system; |
| 2779 | extern Lisp_Object sit_for (Lisp_Object, int, int); | 2783 | extern Lisp_Object sit_for (Lisp_Object, bool, int); |
| 2780 | extern void init_display (void); | 2784 | extern void init_display (void); |
| 2781 | extern void syms_of_display (void); | 2785 | extern void syms_of_display (void); |
| 2782 | 2786 | ||
| @@ -2802,7 +2806,7 @@ extern Lisp_Object echo_area_buffer[2]; | |||
| 2802 | extern void add_to_log (const char *, Lisp_Object, Lisp_Object); | 2806 | extern void add_to_log (const char *, Lisp_Object, Lisp_Object); |
| 2803 | extern void check_message_stack (void); | 2807 | extern void check_message_stack (void); |
| 2804 | extern void setup_echo_area_for_printing (int); | 2808 | extern void setup_echo_area_for_printing (int); |
| 2805 | extern int push_message (void); | 2809 | extern bool push_message (void); |
| 2806 | extern Lisp_Object pop_message_unwind (Lisp_Object); | 2810 | extern Lisp_Object pop_message_unwind (Lisp_Object); |
| 2807 | extern Lisp_Object restore_message_unwind (Lisp_Object); | 2811 | extern Lisp_Object restore_message_unwind (Lisp_Object); |
| 2808 | extern void restore_message (void); | 2812 | extern void restore_message (void); |
| @@ -2845,7 +2849,7 @@ extern void uninterrupt_malloc (void); | |||
| 2845 | extern void malloc_warning (const char *); | 2849 | extern void malloc_warning (const char *); |
| 2846 | extern _Noreturn void memory_full (size_t); | 2850 | extern _Noreturn void memory_full (size_t); |
| 2847 | extern _Noreturn void buffer_memory_full (ptrdiff_t); | 2851 | extern _Noreturn void buffer_memory_full (ptrdiff_t); |
| 2848 | extern int survives_gc_p (Lisp_Object); | 2852 | extern bool survives_gc_p (Lisp_Object); |
| 2849 | extern void mark_object (Lisp_Object); | 2853 | extern void mark_object (Lisp_Object); |
| 2850 | #if defined REL_ALLOC && !defined SYSTEM_MALLOC | 2854 | #if defined REL_ALLOC && !defined SYSTEM_MALLOC |
| 2851 | extern void refill_memory_reserve (void); | 2855 | extern void refill_memory_reserve (void); |
| @@ -2887,8 +2891,8 @@ extern Lisp_Object make_uninit_string (EMACS_INT); | |||
| 2887 | extern Lisp_Object make_uninit_multibyte_string (EMACS_INT, EMACS_INT); | 2891 | extern Lisp_Object make_uninit_multibyte_string (EMACS_INT, EMACS_INT); |
| 2888 | extern Lisp_Object make_string_from_bytes (const char *, ptrdiff_t, ptrdiff_t); | 2892 | extern Lisp_Object make_string_from_bytes (const char *, ptrdiff_t, ptrdiff_t); |
| 2889 | extern Lisp_Object make_specified_string (const char *, | 2893 | extern Lisp_Object make_specified_string (const char *, |
| 2890 | ptrdiff_t, ptrdiff_t, int); | 2894 | ptrdiff_t, ptrdiff_t, bool); |
| 2891 | extern Lisp_Object make_pure_string (const char *, ptrdiff_t, ptrdiff_t, int); | 2895 | extern Lisp_Object make_pure_string (const char *, ptrdiff_t, ptrdiff_t, bool); |
| 2892 | extern Lisp_Object make_pure_c_string (const char *, ptrdiff_t); | 2896 | extern Lisp_Object make_pure_c_string (const char *, ptrdiff_t); |
| 2893 | 2897 | ||
| 2894 | /* Make a string allocated in pure space, use STR as string data. */ | 2898 | /* Make a string allocated in pure space, use STR as string data. */ |
| @@ -2922,8 +2926,8 @@ extern struct window *allocate_window (void); | |||
| 2922 | extern struct frame *allocate_frame (void); | 2926 | extern struct frame *allocate_frame (void); |
| 2923 | extern struct Lisp_Process *allocate_process (void); | 2927 | extern struct Lisp_Process *allocate_process (void); |
| 2924 | extern struct terminal *allocate_terminal (void); | 2928 | extern struct terminal *allocate_terminal (void); |
| 2925 | extern int gc_in_progress; | 2929 | extern bool gc_in_progress; |
| 2926 | extern int abort_on_gc; | 2930 | extern bool abort_on_gc; |
| 2927 | extern Lisp_Object make_float (double); | 2931 | extern Lisp_Object make_float (double); |
| 2928 | extern void display_malloc_warning (void); | 2932 | extern void display_malloc_warning (void); |
| 2929 | extern ptrdiff_t inhibit_garbage_collection (void); | 2933 | extern ptrdiff_t inhibit_garbage_collection (void); |
| @@ -3001,6 +3005,7 @@ extern ptrdiff_t evxprintf (char **, ptrdiff_t *, char const *, ptrdiff_t, | |||
| 3001 | /* Defined in lread.c. */ | 3005 | /* Defined in lread.c. */ |
| 3002 | extern Lisp_Object Qvariable_documentation, Qstandard_input; | 3006 | extern Lisp_Object Qvariable_documentation, Qstandard_input; |
| 3003 | extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; | 3007 | extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; |
| 3008 | extern Lisp_Object Qlexical_binding; | ||
| 3004 | extern Lisp_Object check_obarray (Lisp_Object); | 3009 | extern Lisp_Object check_obarray (Lisp_Object); |
| 3005 | extern Lisp_Object intern_1 (const char *, ptrdiff_t); | 3010 | extern Lisp_Object intern_1 (const char *, ptrdiff_t); |
| 3006 | extern Lisp_Object intern_c_string_1 (const char *, ptrdiff_t); | 3011 | extern Lisp_Object intern_c_string_1 (const char *, ptrdiff_t); |
| @@ -3034,7 +3039,7 @@ intern_c_string (const char *str) | |||
| 3034 | 3039 | ||
| 3035 | /* Defined in eval.c. */ | 3040 | /* Defined in eval.c. */ |
| 3036 | extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qmacro; | 3041 | extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qmacro; |
| 3037 | extern Lisp_Object Qinhibit_quit, Qclosure; | 3042 | extern Lisp_Object Qinhibit_quit, Qinternal_interpreter_environment, Qclosure; |
| 3038 | extern Lisp_Object Qand_rest; | 3043 | extern Lisp_Object Qand_rest; |
| 3039 | extern Lisp_Object Vautoload_queue; | 3044 | extern Lisp_Object Vautoload_queue; |
| 3040 | extern Lisp_Object Vsignaling_function; | 3045 | extern Lisp_Object Vsignaling_function; |
| @@ -3109,23 +3114,23 @@ extern Lisp_Object save_restriction_save (void); | |||
| 3109 | extern Lisp_Object save_excursion_restore (Lisp_Object); | 3114 | extern Lisp_Object save_excursion_restore (Lisp_Object); |
| 3110 | extern Lisp_Object save_restriction_restore (Lisp_Object); | 3115 | extern Lisp_Object save_restriction_restore (Lisp_Object); |
| 3111 | extern _Noreturn void time_overflow (void); | 3116 | extern _Noreturn void time_overflow (void); |
| 3112 | extern Lisp_Object make_buffer_string (ptrdiff_t, ptrdiff_t, int); | 3117 | extern Lisp_Object make_buffer_string (ptrdiff_t, ptrdiff_t, bool); |
| 3113 | extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, | 3118 | extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, |
| 3114 | ptrdiff_t, int); | 3119 | ptrdiff_t, bool); |
| 3115 | extern void init_editfns (void); | 3120 | extern void init_editfns (void); |
| 3116 | const char *get_system_name (void); | 3121 | const char *get_system_name (void); |
| 3117 | extern void syms_of_editfns (void); | 3122 | extern void syms_of_editfns (void); |
| 3118 | extern void set_time_zone_rule (const char *); | 3123 | extern void set_time_zone_rule (const char *); |
| 3119 | 3124 | ||
| 3120 | /* Defined in buffer.c. */ | 3125 | /* Defined in buffer.c. */ |
| 3121 | extern int mouse_face_overlay_overlaps (Lisp_Object); | 3126 | extern bool mouse_face_overlay_overlaps (Lisp_Object); |
| 3122 | extern _Noreturn void nsberror (Lisp_Object); | 3127 | extern _Noreturn void nsberror (Lisp_Object); |
| 3123 | extern void adjust_overlays_for_insert (ptrdiff_t, ptrdiff_t); | 3128 | extern void adjust_overlays_for_insert (ptrdiff_t, ptrdiff_t); |
| 3124 | extern void adjust_overlays_for_delete (ptrdiff_t, ptrdiff_t); | 3129 | extern void adjust_overlays_for_delete (ptrdiff_t, ptrdiff_t); |
| 3125 | extern void fix_start_end_in_overlays (ptrdiff_t, ptrdiff_t); | 3130 | extern void fix_start_end_in_overlays (ptrdiff_t, ptrdiff_t); |
| 3126 | extern void report_overlay_modification (Lisp_Object, Lisp_Object, int, | 3131 | extern void report_overlay_modification (Lisp_Object, Lisp_Object, bool, |
| 3127 | Lisp_Object, Lisp_Object, Lisp_Object); | 3132 | Lisp_Object, Lisp_Object, Lisp_Object); |
| 3128 | extern int overlay_touches_p (ptrdiff_t); | 3133 | extern bool overlay_touches_p (ptrdiff_t); |
| 3129 | extern Lisp_Object Vbuffer_alist; | 3134 | extern Lisp_Object Vbuffer_alist; |
| 3130 | extern Lisp_Object set_buffer_if_live (Lisp_Object); | 3135 | extern Lisp_Object set_buffer_if_live (Lisp_Object); |
| 3131 | extern Lisp_Object other_buffer_safely (Lisp_Object); | 3136 | extern Lisp_Object other_buffer_safely (Lisp_Object); |
| @@ -3272,7 +3277,7 @@ extern void syms_of_frame (void); | |||
| 3272 | extern char **initial_argv; | 3277 | extern char **initial_argv; |
| 3273 | extern int initial_argc; | 3278 | extern int initial_argc; |
| 3274 | #if defined (HAVE_X_WINDOWS) || defined (HAVE_NS) | 3279 | #if defined (HAVE_X_WINDOWS) || defined (HAVE_NS) |
| 3275 | extern int display_arg; | 3280 | extern bool display_arg; |
| 3276 | #endif | 3281 | #endif |
| 3277 | extern Lisp_Object decode_env_path (const char *, const char *); | 3282 | extern Lisp_Object decode_env_path (const char *, const char *); |
| 3278 | extern Lisp_Object empty_unibyte_string, empty_multibyte_string; | 3283 | extern Lisp_Object empty_unibyte_string, empty_multibyte_string; |
| @@ -3291,22 +3296,26 @@ void synchronize_system_time_locale (void); | |||
| 3291 | #define synchronize_system_messages_locale() | 3296 | #define synchronize_system_messages_locale() |
| 3292 | #define synchronize_system_time_locale() | 3297 | #define synchronize_system_time_locale() |
| 3293 | #endif | 3298 | #endif |
| 3294 | void shut_down_emacs (int, int, Lisp_Object); | 3299 | extern void shut_down_emacs (int, Lisp_Object); |
| 3295 | /* Nonzero means don't do interactive redisplay and don't change tty modes. */ | 3300 | |
| 3296 | extern int noninteractive; | 3301 | /* True means don't do interactive redisplay and don't change tty modes. */ |
| 3302 | extern bool noninteractive; | ||
| 3297 | 3303 | ||
| 3298 | /* Nonzero means remove site-lisp directories from load-path. */ | 3304 | /* True means remove site-lisp directories from load-path. */ |
| 3299 | extern int no_site_lisp; | 3305 | extern bool no_site_lisp; |
| 3300 | 3306 | ||
| 3301 | /* Pipe used to send exit notification to the daemon parent at | 3307 | /* Pipe used to send exit notification to the daemon parent at |
| 3302 | startup. */ | 3308 | startup. */ |
| 3303 | extern int daemon_pipe[2]; | 3309 | extern int daemon_pipe[2]; |
| 3304 | #define IS_DAEMON (daemon_pipe[1] != 0) | 3310 | #define IS_DAEMON (daemon_pipe[1] != 0) |
| 3305 | 3311 | ||
| 3306 | /* Nonzero means don't do use window-system-specific display code. */ | 3312 | /* True if handling a fatal error already. */ |
| 3307 | extern int inhibit_window_system; | 3313 | extern bool fatal_error_in_progress; |
| 3308 | /* Nonzero means that a filter or a sentinel is running. */ | 3314 | |
| 3309 | extern int running_asynch_code; | 3315 | /* True means don't do use window-system-specific display code. */ |
| 3316 | extern bool inhibit_window_system; | ||
| 3317 | /* True means that a filter or a sentinel is running. */ | ||
| 3318 | extern bool running_asynch_code; | ||
| 3310 | 3319 | ||
| 3311 | /* Defined in process.c. */ | 3320 | /* Defined in process.c. */ |
| 3312 | extern Lisp_Object QCtype, Qlocal; | 3321 | extern Lisp_Object QCtype, Qlocal; |
| @@ -3338,7 +3347,7 @@ extern void setup_process_coding_systems (Lisp_Object); | |||
| 3338 | #ifndef DOS_NT | 3347 | #ifndef DOS_NT |
| 3339 | _Noreturn | 3348 | _Noreturn |
| 3340 | #endif | 3349 | #endif |
| 3341 | extern int child_setup (int, int, int, char **, int, Lisp_Object); | 3350 | extern int child_setup (int, int, int, char **, bool, Lisp_Object); |
| 3342 | extern void init_callproc_1 (void); | 3351 | extern void init_callproc_1 (void); |
| 3343 | extern void init_callproc (void); | 3352 | extern void init_callproc (void); |
| 3344 | extern void set_initial_environment (void); | 3353 | extern void set_initial_environment (void); |
| @@ -3347,9 +3356,9 @@ extern void syms_of_callproc (void); | |||
| 3347 | /* Defined in doc.c */ | 3356 | /* Defined in doc.c */ |
| 3348 | extern Lisp_Object Qfunction_documentation; | 3357 | extern Lisp_Object Qfunction_documentation; |
| 3349 | extern Lisp_Object read_doc_string (Lisp_Object); | 3358 | extern Lisp_Object read_doc_string (Lisp_Object); |
| 3350 | extern Lisp_Object get_doc_string (Lisp_Object, int, int); | 3359 | extern Lisp_Object get_doc_string (Lisp_Object, bool, bool); |
| 3351 | extern void syms_of_doc (void); | 3360 | extern void syms_of_doc (void); |
| 3352 | extern int read_bytecode_char (int); | 3361 | extern int read_bytecode_char (bool); |
| 3353 | 3362 | ||
| 3354 | /* Defined in bytecode.c */ | 3363 | /* Defined in bytecode.c */ |
| 3355 | extern Lisp_Object Qbytecode; | 3364 | extern Lisp_Object Qbytecode; |
| @@ -3419,7 +3428,8 @@ extern void child_setup_tty (int); | |||
| 3419 | extern void setup_pty (int); | 3428 | extern void setup_pty (int); |
| 3420 | extern int set_window_size (int, int, int); | 3429 | extern int set_window_size (int, int, int); |
| 3421 | extern EMACS_INT get_random (void); | 3430 | extern EMACS_INT get_random (void); |
| 3422 | extern void seed_random (long); | 3431 | extern void seed_random (void *, ptrdiff_t); |
| 3432 | extern void init_random (void); | ||
| 3423 | extern int emacs_open (const char *, int, int); | 3433 | extern int emacs_open (const char *, int, int); |
| 3424 | extern int emacs_close (int); | 3434 | extern int emacs_close (int); |
| 3425 | extern ptrdiff_t emacs_read (int, char *, ptrdiff_t); | 3435 | extern ptrdiff_t emacs_read (int, char *, ptrdiff_t); |
| @@ -3448,11 +3458,10 @@ extern void syms_of_ccl (void); | |||
| 3448 | extern void syms_of_dired (void); | 3458 | extern void syms_of_dired (void); |
| 3449 | extern Lisp_Object directory_files_internal (Lisp_Object, Lisp_Object, | 3459 | extern Lisp_Object directory_files_internal (Lisp_Object, Lisp_Object, |
| 3450 | Lisp_Object, Lisp_Object, | 3460 | Lisp_Object, Lisp_Object, |
| 3451 | int, Lisp_Object); | 3461 | bool, Lisp_Object); |
| 3452 | 3462 | ||
| 3453 | /* Defined in term.c */ | 3463 | /* Defined in term.c */ |
| 3454 | extern int *char_ins_del_vector; | 3464 | extern int *char_ins_del_vector; |
| 3455 | extern void mark_ttys (void); | ||
| 3456 | extern void syms_of_term (void); | 3465 | extern void syms_of_term (void); |
| 3457 | extern _Noreturn void fatal (const char *msgid, ...) | 3466 | extern _Noreturn void fatal (const char *msgid, ...) |
| 3458 | ATTRIBUTE_FORMAT_PRINTF (1, 2); | 3467 | ATTRIBUTE_FORMAT_PRINTF (1, 2); |
| @@ -3480,6 +3489,9 @@ extern Lisp_Object Qface; | |||
| 3480 | extern Lisp_Object Qnormal; | 3489 | extern Lisp_Object Qnormal; |
| 3481 | extern Lisp_Object QCfamily, QCweight, QCslant; | 3490 | extern Lisp_Object QCfamily, QCweight, QCslant; |
| 3482 | extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground; | 3491 | extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground; |
| 3492 | extern Lisp_Object Qextra_light, Qlight, Qsemi_light, Qsemi_bold; | ||
| 3493 | extern Lisp_Object Qbold, Qextra_bold, Qultra_bold; | ||
| 3494 | extern Lisp_Object Qoblique, Qitalic; | ||
| 3483 | extern Lisp_Object Vface_alternative_font_family_alist; | 3495 | extern Lisp_Object Vface_alternative_font_family_alist; |
| 3484 | extern Lisp_Object Vface_alternative_font_registry_alist; | 3496 | extern Lisp_Object Vface_alternative_font_registry_alist; |
| 3485 | extern void syms_of_xfaces (void); | 3497 | extern void syms_of_xfaces (void); |
| @@ -3524,9 +3536,9 @@ void syms_of_dbusbind (void); | |||
| 3524 | extern char *emacs_root_dir (void); | 3536 | extern char *emacs_root_dir (void); |
| 3525 | #endif /* DOS_NT */ | 3537 | #endif /* DOS_NT */ |
| 3526 | 3538 | ||
| 3527 | /* Nonzero means Emacs has already been initialized. | 3539 | /* True means Emacs has already been initialized. |
| 3528 | Used during startup to detect startup of dumped Emacs. */ | 3540 | Used during startup to detect startup of dumped Emacs. */ |
| 3529 | extern int initialized; | 3541 | extern bool initialized; |
| 3530 | 3542 | ||
| 3531 | extern int immediate_quit; /* Nonzero means ^G can quit instantly */ | 3543 | extern int immediate_quit; /* Nonzero means ^G can quit instantly */ |
| 3532 | 3544 | ||
| @@ -3593,7 +3605,7 @@ extern Lisp_Object safe_alloca_unwind (Lisp_Object); | |||
| 3593 | extern void *record_xmalloc (size_t); | 3605 | extern void *record_xmalloc (size_t); |
| 3594 | 3606 | ||
| 3595 | #define USE_SAFE_ALLOCA \ | 3607 | #define USE_SAFE_ALLOCA \ |
| 3596 | ptrdiff_t sa_count = SPECPDL_INDEX (); int sa_must_free = 0 | 3608 | ptrdiff_t sa_count = SPECPDL_INDEX (); bool sa_must_free = 0 |
| 3597 | 3609 | ||
| 3598 | /* SAFE_ALLOCA allocates a simple buffer. */ | 3610 | /* SAFE_ALLOCA allocates a simple buffer. */ |
| 3599 | 3611 | ||
| @@ -3664,6 +3676,38 @@ maybe_gc (void) | |||
| 3664 | Fgarbage_collect (); | 3676 | Fgarbage_collect (); |
| 3665 | } | 3677 | } |
| 3666 | 3678 | ||
| 3679 | LISP_INLINE int | ||
| 3680 | functionp (Lisp_Object object) | ||
| 3681 | { | ||
| 3682 | if (SYMBOLP (object) && !NILP (Ffboundp (object))) | ||
| 3683 | { | ||
| 3684 | object = Findirect_function (object, Qt); | ||
| 3685 | |||
| 3686 | if (CONSP (object) && EQ (XCAR (object), Qautoload)) | ||
| 3687 | { | ||
| 3688 | /* Autoloaded symbols are functions, except if they load | ||
| 3689 | macros or keymaps. */ | ||
| 3690 | int i; | ||
| 3691 | for (i = 0; i < 4 && CONSP (object); i++) | ||
| 3692 | object = XCDR (object); | ||
| 3693 | |||
| 3694 | return ! (CONSP (object) && !NILP (XCAR (object))); | ||
| 3695 | } | ||
| 3696 | } | ||
| 3697 | |||
| 3698 | if (SUBRP (object)) | ||
| 3699 | return XSUBR (object)->max_args != UNEVALLED; | ||
| 3700 | else if (COMPILEDP (object)) | ||
| 3701 | return 1; | ||
| 3702 | else if (CONSP (object)) | ||
| 3703 | { | ||
| 3704 | Lisp_Object car = XCAR (object); | ||
| 3705 | return EQ (car, Qlambda) || EQ (car, Qclosure); | ||
| 3706 | } | ||
| 3707 | else | ||
| 3708 | return 0; | ||
| 3709 | } | ||
| 3710 | |||
| 3667 | INLINE_HEADER_END | 3711 | INLINE_HEADER_END |
| 3668 | 3712 | ||
| 3669 | #endif /* EMACS_LISP_H */ | 3713 | #endif /* EMACS_LISP_H */ |