Mercurial > hg > xemacs-beta
comparison src/lisp.h @ 1743:543769b89fed
[xemacs-hg @ 2003-10-14 05:02:57 by james]
New compiler.h contains compiler-specific defines. Use it everywhere.
author | james |
---|---|
date | Tue, 14 Oct 2003 05:03:13 +0000 |
parents | a8d8f419b459 |
children | 44905d8fae13 |
comparison
equal
deleted
inserted
replaced
1742:7f92ee59c996 | 1743:543769b89fed |
---|---|
43 others. | 43 others. |
44 LOADHIST changes from Steve Baur, c. 1997? | 44 LOADHIST changes from Steve Baur, c. 1997? |
45 Various macro-related changes by Martin Buchholz, 1998-1999: | 45 Various macro-related changes by Martin Buchholz, 1998-1999: |
46 LIST_LOOP macros greatly expanded and tortoise-hared; | 46 LIST_LOOP macros greatly expanded and tortoise-hared; |
47 RETURN_SANS_WARNINGS; reworked DEFUN macros; EXFUN macros (???). | 47 RETURN_SANS_WARNINGS; reworked DEFUN macros; EXFUN macros (???). |
48 Various macro-related changes by Jerry James, 2003: | |
49 MODULE_API introduced; | |
50 Compiler-specific definitions modernized and moved to compiler.h. | |
48 */ | 51 */ |
49 | 52 |
50 #ifndef INCLUDED_lisp_h_ | 53 #ifndef INCLUDED_lisp_h_ |
51 #define INCLUDED_lisp_h_ | 54 #define INCLUDED_lisp_h_ |
52 | 55 |
814 typedef unsigned long uintptr_t; | 817 typedef unsigned long uintptr_t; |
815 #endif | 818 #endif |
816 | 819 |
817 /* ------------------------ basic compiler defines ------------------- */ | 820 /* ------------------------ basic compiler defines ------------------- */ |
818 | 821 |
819 /* Also define min() and max(). (Some compilers put them in strange | 822 #include "compiler.h" |
820 places that won't be referenced by the above include files, such | |
821 as 'macros.h' under Solaris.) */ | |
822 | |
823 #ifndef min | |
824 #define min(a,b) (((a) <= (b)) ? (a) : (b)) | |
825 #endif | |
826 #ifndef max | |
827 #define max(a,b) (((a) > (b)) ? (a) : (b)) | |
828 #endif | |
829 | |
830 /* Sim, senhor, prefiro toma-lo no cu. | |
831 | |
832 Regular C complains about possible clobbering of local vars NOT declared | |
833 as volatile if there's a longjmp() in a function. C++ complains if such | |
834 vars ARE volatile; or more correctly, sans volatile no problem even when | |
835 you longjmp, avec volatile you get unfixable compile errors like | |
836 | |
837 /src/xemacs/lilfix/src/process-unix.c: In function `void | |
838 unix_send_process(Lisp_Object, lstream*)': | |
839 /src/xemacs/lilfix/src/process-unix.c:1577: no matching function for call to ` | |
840 Lisp_Object::Lisp_Object(volatile Lisp_Object&)' | |
841 /src/xemacs/lilfix/src/lisp-union.h:32: candidates are: | |
842 Lisp_Object::Lisp_Object(const Lisp_Object&) | |
843 */ | |
844 | |
845 #ifdef __cplusplus | |
846 #define VOLATILE_IF_NOT_CPP | |
847 #else | |
848 #define VOLATILE_IF_NOT_CPP volatile | |
849 #endif | |
850 | |
851 #ifndef PRINTF_ARGS | |
852 # if defined (__GNUC__) && (__GNUC__ >= 2) | |
853 # define PRINTF_ARGS(string_index,first_to_check) \ | |
854 __attribute__ ((format (printf, string_index, first_to_check))) | |
855 # else | |
856 # define PRINTF_ARGS(string_index,first_to_check) | |
857 # endif /* GNUC */ | |
858 #endif | |
859 | |
860 #ifndef DOESNT_RETURN | |
861 # if defined __GNUC__ | |
862 # if ((__GNUC__ > 2) || (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5)) | |
863 # if __GNUC__ < 3 | |
864 /* GCC 3.2 -O3 issues complaints in Fcommand_loop_1 about no return | |
865 statement if we have this definition */ | |
866 # define RETURN_NOT_REACHED(value) DO_NOTHING | |
867 # endif | |
868 # define DOESNT_RETURN void | |
869 # define DECLARE_DOESNT_RETURN(decl) \ | |
870 extern void decl __attribute__ ((noreturn)) | |
871 # define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \ | |
872 /* Should be able to state multiple independent __attribute__s, but \ | |
873 the losing syntax doesn't work that way, and screws losing cpp */ \ | |
874 extern void decl \ | |
875 __attribute__ ((noreturn, format (printf, str, idx))) | |
876 # else | |
877 # define DOESNT_RETURN void volatile | |
878 # define DECLARE_DOESNT_RETURN(decl) extern void volatile decl | |
879 # define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \ | |
880 extern void volatile decl PRINTF_ARGS(str,idx) | |
881 # endif /* GNUC 2.5 */ | |
882 # else | |
883 # define DOESNT_RETURN void | |
884 # define DECLARE_DOESNT_RETURN(decl) extern void decl | |
885 # define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \ | |
886 extern void decl PRINTF_ARGS(str,idx) | |
887 # endif /* GNUC */ | |
888 #endif | |
889 | |
890 /* Another try to fix SunPro C compiler warnings */ | |
891 /* "end-of-loop code not reached" */ | |
892 /* "statement not reached */ | |
893 #if defined __SUNPRO_C || defined __USLC__ | |
894 #define RETURN_SANS_WARNINGS if (1) return | |
895 #define RETURN_NOT_REACHED(value) DO_NOTHING | |
896 #endif | |
897 | |
898 /* More ways to shut up compiler. This works in Fcommand_loop_1(), | |
899 where there's an infinite loop in a function returning a Lisp object. | |
900 */ | |
901 #if defined (_MSC_VER) || defined (__SUNPRO_C) || defined (__SUNPRO_CC) || \ | |
902 (defined (DEC_ALPHA) && defined (OSF1)) | |
903 #define DO_NOTHING_DISABLING_NO_RETURN_WARNINGS if (0) return Qnil | |
904 #else | |
905 #define DO_NOTHING_DISABLING_NO_RETURN_WARNINGS DO_NOTHING | |
906 #endif | |
907 | |
908 #ifndef RETURN_NOT_REACHED | |
909 #define RETURN_NOT_REACHED(value) return (value) | |
910 #endif | |
911 | |
912 #ifndef RETURN_SANS_WARNINGS | |
913 #define RETURN_SANS_WARNINGS return | |
914 #endif | |
915 | |
916 #ifndef DO_NOTHING | |
917 #define DO_NOTHING do {} while (0) | |
918 #endif | |
919 | |
920 #ifndef DECLARE_NOTHING | |
921 #define DECLARE_NOTHING struct nosuchstruct | |
922 #endif | |
923 | |
924 /*#ifdef DEBUG_XEMACS*/ | |
925 #define REGISTER | |
926 #define register | |
927 /*#else*/ | |
928 /*#define REGISTER register*/ | |
929 /*#endif*/ | |
930 | |
931 #if defined(HAVE_MS_WINDOWS) && defined(HAVE_SHLIB) | |
932 # ifdef EMACS_MODULE | |
933 # define MODULE_API __declspec(dllimport) | |
934 # else | |
935 # define MODULE_API __declspec(dllexport) | |
936 # endif | |
937 #else | |
938 # define MODULE_API | |
939 #endif | |
940 | 823 |
941 /* ------------------------ alignment definitions ------------------- */ | 824 /* ------------------------ alignment definitions ------------------- */ |
942 | 825 |
943 /* No type has a greater alignment requirement than max_align_t. | 826 /* No type has a greater alignment requirement than max_align_t. |
944 (except perhaps for types we don't use, like long double) */ | 827 (except perhaps for types we don't use, like long double) */ |
1003 | 886 |
1004 /* ALIGN_PTR returns the smallest pointer >= PTR which is aligned for | 887 /* ALIGN_PTR returns the smallest pointer >= PTR which is aligned for |
1005 data of TYPE. */ | 888 data of TYPE. */ |
1006 #define ALIGN_PTR(ptr, type) ((void *) ALIGN_FOR_TYPE ((size_t) (ptr), type)) | 889 #define ALIGN_PTR(ptr, type) ((void *) ALIGN_FOR_TYPE ((size_t) (ptr), type)) |
1007 | 890 |
1008 #ifdef __cplusplus | 891 BEGIN_C_DECLS |
1009 extern "C" { | |
1010 #endif | |
1011 | 892 |
1012 /* ------------------------ assertions ------------------- */ | 893 /* ------------------------ assertions ------------------- */ |
1013 | 894 |
1014 /* We define assert iff USE_ASSERTIONS or DEBUG_XEMACS is defined. | 895 /* We define assert iff USE_ASSERTIONS or DEBUG_XEMACS is defined. |
1015 Otherwise we define it to be empty. Quantify has shown that the | 896 Otherwise we define it to be empty. Quantify has shown that the |
1043 # define assert_with_message(x, msg) | 924 # define assert_with_message(x, msg) |
1044 # define assert_at_line(x, file, line) assert (x) | 925 # define assert_at_line(x, file, line) assert (x) |
1045 # endif | 926 # endif |
1046 #endif | 927 #endif |
1047 | 928 |
1048 /* #### | |
1049 Why the hell do we do this??????????????????????????????? */ | |
1050 /*#ifdef DEBUG_XEMACS*/ | |
1051 #define REGISTER | |
1052 #define register | |
1053 /*#else*/ | |
1054 /*#define REGISTER register*/ | |
1055 /*#endif*/ | |
1056 | |
1057 | |
1058 /* EMACS_INT is the underlying integral type into which a Lisp_Object must fit. | 929 /* EMACS_INT is the underlying integral type into which a Lisp_Object must fit. |
1059 In particular, it must be large enough to contain a pointer. | 930 In particular, it must be large enough to contain a pointer. |
1060 config.h can override this, e.g. to use `long long' for bigger lisp ints. | 931 config.h can override this, e.g. to use `long long' for bigger lisp ints. |
1061 | 932 |
1062 #### In point of fact, it would NOT be a good idea for config.h to mess | 933 #### In point of fact, it would NOT be a good idea for config.h to mess |
1065 | 936 |
1066 #ifndef SIZEOF_EMACS_INT | 937 #ifndef SIZEOF_EMACS_INT |
1067 # define SIZEOF_EMACS_INT SIZEOF_VOID_P | 938 # define SIZEOF_EMACS_INT SIZEOF_VOID_P |
1068 #endif | 939 #endif |
1069 | 940 |
1070 #if 0 | |
1071 #ifdef USE_ASSERTIONS | |
1072 /* Highly dubious kludge */ | |
1073 /* (thanks, Jamie, I feel better now -- ben) */ | |
1074 void assert_failed (const char *, int, const char *); | |
1075 # define abort() (assert_failed (__FILE__, __LINE__, "abort()")) | |
1076 # define assert(x) ((x) ? 1 : (assert_failed (__FILE__, __LINE__, #x), 0)) | |
1077 #else | |
1078 # ifdef DEBUG_XEMACS | |
1079 # define assert(x) ((x) ? 1 : ((void) abort (), 0)) | |
1080 # else | |
1081 # define assert(x) (1) | |
1082 # endif | |
1083 #endif | |
1084 #endif /* 0 */ | |
1085 | |
1086 /* ------------------------ simple memory allocation ------------------- */ | 941 /* ------------------------ simple memory allocation ------------------- */ |
1087 | 942 |
1088 /* Memory allocation */ | 943 /* Memory allocation */ |
1089 void malloc_warning (const char *); | 944 void malloc_warning (const char *); |
1090 MODULE_API void *xmalloc (Bytecount size); | 945 MODULE_API void *xmalloc (Bytecount size) ATTRIBUTE_MALLOC; |
1091 MODULE_API void *xmalloc_and_zero (Bytecount size); | 946 MODULE_API void *xmalloc_and_zero (Bytecount size) ATTRIBUTE_MALLOC; |
1092 MODULE_API void *xrealloc (void *, Bytecount size); | 947 MODULE_API void *xrealloc (void *, Bytecount size) ATTRIBUTE_MALLOC; |
1093 MODULE_API char *xstrdup (const char *); | 948 MODULE_API char *xstrdup (const char *) ATTRIBUTE_MALLOC; |
1094 /* generally useful */ | 949 /* generally useful */ |
1095 #define countof(x) ((int) (sizeof(x)/sizeof((x)[0]))) | 950 #define countof(x) ((int) (sizeof(x)/sizeof((x)[0]))) |
1096 #define xnew(type) ((type *) xmalloc (sizeof (type))) | 951 #define xnew(type) ((type *) xmalloc (sizeof (type))) |
1097 #define xnew_array(type, len) ((type *) xmalloc ((len) * sizeof (type))) | 952 #define xnew_array(type, len) ((type *) xmalloc ((len) * sizeof (type))) |
1098 #define xnew_and_zero(type) ((type *) xmalloc_and_zero (sizeof (type))) | 953 #define xnew_and_zero(type) ((type *) xmalloc_and_zero (sizeof (type))) |
1100 #define xnew_array_and_zero(type, len) ((type *) xmalloc_and_zero ((len) * sizeof (type))) | 955 #define xnew_array_and_zero(type, len) ((type *) xmalloc_and_zero ((len) * sizeof (type))) |
1101 #define XREALLOC_ARRAY(ptr, type, len) ((void) (ptr = (type *) xrealloc (ptr, (len) * sizeof (type)))) | 956 #define XREALLOC_ARRAY(ptr, type, len) ((void) (ptr = (type *) xrealloc (ptr, (len) * sizeof (type)))) |
1102 #define alloca_new(type) ((type *) ALLOCA (sizeof (type))) | 957 #define alloca_new(type) ((type *) ALLOCA (sizeof (type))) |
1103 #define alloca_array(type, len) ((type *) ALLOCA ((len) * sizeof (type))) | 958 #define alloca_array(type, len) ((type *) ALLOCA ((len) * sizeof (type))) |
1104 | 959 |
1105 MODULE_API void *xemacs_c_alloca (unsigned int size); | 960 MODULE_API void *xemacs_c_alloca (unsigned int size) ATTRIBUTE_MALLOC; |
1106 | 961 |
1107 MODULE_API int record_unwind_protect_freeing (void *ptr); | 962 MODULE_API int record_unwind_protect_freeing (void *ptr); |
1108 | 963 |
1109 DECLARE_INLINE_HEADER ( | 964 DECLARE_INLINE_HEADER ( |
1110 void * | 965 void * |
1673 #define EQ_WITH_EBOLA_NOTICE(obj1, obj2) EQ (obj1, obj2) | 1528 #define EQ_WITH_EBOLA_NOTICE(obj1, obj2) EQ (obj1, obj2) |
1674 #endif | 1529 #endif |
1675 | 1530 |
1676 /* OK, you can open them again */ | 1531 /* OK, you can open them again */ |
1677 | 1532 |
1678 #ifdef __cplusplus | 1533 END_C_DECLS |
1679 } | |
1680 #endif | |
1681 | 1534 |
1682 /************************************************************************/ | 1535 /************************************************************************/ |
1683 /** Definitions of basic Lisp objects **/ | 1536 /** Definitions of basic Lisp objects **/ |
1684 /************************************************************************/ | 1537 /************************************************************************/ |
1685 | 1538 |
1686 #include "lrecord.h" | 1539 #include "lrecord.h" |
1687 | 1540 |
1688 #ifdef __cplusplus | 1541 BEGIN_C_DECLS |
1689 extern "C" { | |
1690 #endif | |
1691 | 1542 |
1692 /*------------------------------ unbound -------------------------------*/ | 1543 /*------------------------------ unbound -------------------------------*/ |
1693 | 1544 |
1694 /* Qunbound is a special Lisp_Object (actually of type | 1545 /* Qunbound is a special Lisp_Object (actually of type |
1695 symbol-value-forward), that can never be visible to | 1546 symbol-value-forward), that can never be visible to |
2836 Lisp_Object make_weak_list (enum weak_list_type type); | 2687 Lisp_Object make_weak_list (enum weak_list_type type); |
2837 /* The following two are only called by the garbage collector */ | 2688 /* The following two are only called by the garbage collector */ |
2838 int finish_marking_weak_lists (void); | 2689 int finish_marking_weak_lists (void); |
2839 void prune_weak_lists (void); | 2690 void prune_weak_lists (void); |
2840 | 2691 |
2841 #ifdef __cplusplus | 2692 END_C_DECLS |
2842 } | |
2843 #endif | |
2844 | 2693 |
2845 /************************************************************************/ | 2694 /************************************************************************/ |
2846 /* Definitions related to the format of text and of characters */ | 2695 /* Definitions related to the format of text and of characters */ |
2847 /************************************************************************/ | 2696 /************************************************************************/ |
2848 | 2697 |
2966 make sure to also fix the clauses in PRIMITIVE_FUNCALL(), | 2815 make sure to also fix the clauses in PRIMITIVE_FUNCALL(), |
2967 and change the define of SUBR_MAX_ARGS above. */ | 2816 and change the define of SUBR_MAX_ARGS above. */ |
2968 | 2817 |
2969 #include "symeval.h" | 2818 #include "symeval.h" |
2970 | 2819 |
2971 #ifdef __cplusplus | 2820 BEGIN_C_DECLS |
2972 extern "C" { | |
2973 #endif | |
2974 | 2821 |
2975 /* `specpdl' is the special binding/unwind-protect stack. | 2822 /* `specpdl' is the special binding/unwind-protect stack. |
2976 | 2823 |
2977 Knuth says (see the Jargon File): | 2824 Knuth says (see the Jargon File): |
2978 At MIT, `pdl' [abbreviation for `Push Down List'] used to | 2825 At MIT, `pdl' [abbreviation for `Push Down List'] used to |
3154 Every function that can call Feval must protect in this fashion all | 3001 Every function that can call Feval must protect in this fashion all |
3155 Lisp_Object variables whose contents will be used again. */ | 3002 Lisp_Object variables whose contents will be used again. */ |
3156 | 3003 |
3157 extern MODULE_API struct gcpro *gcprolist; | 3004 extern MODULE_API struct gcpro *gcprolist; |
3158 | 3005 |
3159 #ifdef __cplusplus | 3006 END_C_DECLS |
3160 } | |
3161 #endif | |
3162 | 3007 |
3163 /* #### Catching insufficient gcpro: | 3008 /* #### Catching insufficient gcpro: |
3164 | 3009 |
3165 The C++ code below catches GCPRO without UNGCPRO or vice-versa. | 3010 The C++ code below catches GCPRO without UNGCPRO or vice-versa. |
3166 Catching cases where there's no GCPRO or UNGCPRO but should be, however, | 3011 Catching cases where there's no GCPRO or UNGCPRO but should be, however, |
3224 you only have to worry about functions that can GC and then return. | 3069 you only have to worry about functions that can GC and then return. |
3225 The QUIT macro cannot GC any more, although this wasn't true at some point, | 3070 The QUIT macro cannot GC any more, although this wasn't true at some point, |
3226 and so some "This function can GC" comments may be inaccurate. | 3071 and so some "This function can GC" comments may be inaccurate. |
3227 */ | 3072 */ |
3228 | 3073 |
3229 #ifdef __cplusplus | 3074 BEGIN_C_DECLS |
3230 extern "C" { | |
3231 #endif | |
3232 | 3075 |
3233 #ifdef DEBUG_GCPRO | 3076 #ifdef DEBUG_GCPRO |
3234 | 3077 |
3235 MODULE_API void debug_gcpro1 (char *, int, struct gcpro *, Lisp_Object *); | 3078 MODULE_API void debug_gcpro1 (char *, int, struct gcpro *, Lisp_Object *); |
3236 MODULE_API void debug_gcpro2 (char *, int, struct gcpro *, struct gcpro *, | 3079 MODULE_API void debug_gcpro2 (char *, int, struct gcpro *, struct gcpro *, |
3523 | 3366 |
3524 void register_post_gc_action (void (*fun) (void *), void *arg); | 3367 void register_post_gc_action (void (*fun) (void *), void *arg); |
3525 int begin_gc_forbidden (void); | 3368 int begin_gc_forbidden (void); |
3526 void end_gc_forbidden (int count); | 3369 void end_gc_forbidden (int count); |
3527 | 3370 |
3528 #ifdef __cplusplus | 3371 END_C_DECLS |
3529 } | |
3530 #endif | |
3531 | 3372 |
3532 | 3373 |
3533 /************************************************************************/ | 3374 /************************************************************************/ |
3534 /* Misc definitions */ | 3375 /* Misc definitions */ |
3535 /************************************************************************/ | 3376 /************************************************************************/ |
3551 /*--------------- prototypes for various public c functions ------------*/ | 3392 /*--------------- prototypes for various public c functions ------------*/ |
3552 | 3393 |
3553 /* Prototypes for all init/syms_of/vars_of initialization functions. */ | 3394 /* Prototypes for all init/syms_of/vars_of initialization functions. */ |
3554 #include "symsinit.h" | 3395 #include "symsinit.h" |
3555 | 3396 |
3556 #ifdef __cplusplus | 3397 BEGIN_C_DECLS |
3557 extern "C" { | |
3558 #endif | |
3559 | 3398 |
3560 /* Defined in abbrev.c */ | 3399 /* Defined in abbrev.c */ |
3561 MODULE_API EXFUN (Fexpand_abbrev, 0); | 3400 MODULE_API EXFUN (Fexpand_abbrev, 0); |
3562 | 3401 |
3563 /* Defined in alloc.c */ | 3402 /* Defined in alloc.c */ |
3918 MODULE_API DECLARE_DOESNT_RETURN (signal_error_1 (Lisp_Object, Lisp_Object)); | 3757 MODULE_API DECLARE_DOESNT_RETURN (signal_error_1 (Lisp_Object, Lisp_Object)); |
3919 void maybe_signal_error_1 (Lisp_Object, Lisp_Object, Lisp_Object, | 3758 void maybe_signal_error_1 (Lisp_Object, Lisp_Object, Lisp_Object, |
3920 Error_Behavior); | 3759 Error_Behavior); |
3921 Lisp_Object maybe_signal_continuable_error_1 (Lisp_Object, Lisp_Object, | 3760 Lisp_Object maybe_signal_continuable_error_1 (Lisp_Object, Lisp_Object, |
3922 Lisp_Object, Error_Behavior); | 3761 Lisp_Object, Error_Behavior); |
3923 MODULE_API DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (signal_ferror | 3762 MODULE_API DECLARE_DOESNT_RETURN (signal_ferror (Lisp_Object, const CIbyte *, |
3924 (Lisp_Object, | 3763 ...)) PRINTF_ARGS(2, 3); |
3925 const CIbyte *, | |
3926 ...), 2, 3); | |
3927 void maybe_signal_ferror (Lisp_Object, Lisp_Object, Error_Behavior, | 3764 void maybe_signal_ferror (Lisp_Object, Lisp_Object, Error_Behavior, |
3928 const CIbyte *, ...) PRINTF_ARGS (4, 5); | 3765 const CIbyte *, ...) PRINTF_ARGS (4, 5); |
3929 Lisp_Object signal_continuable_ferror (Lisp_Object, const CIbyte *, ...) | 3766 Lisp_Object signal_continuable_ferror (Lisp_Object, const CIbyte *, ...) |
3930 PRINTF_ARGS (2, 3); | 3767 PRINTF_ARGS (2, 3); |
3931 Lisp_Object maybe_signal_continuable_ferror (Lisp_Object, Lisp_Object, | 3768 Lisp_Object maybe_signal_continuable_ferror (Lisp_Object, Lisp_Object, |
3941 Lisp_Object signal_continuable_error (Lisp_Object, const CIbyte *, | 3778 Lisp_Object signal_continuable_error (Lisp_Object, const CIbyte *, |
3942 Lisp_Object); | 3779 Lisp_Object); |
3943 Lisp_Object maybe_signal_continuable_error (Lisp_Object, const CIbyte *, | 3780 Lisp_Object maybe_signal_continuable_error (Lisp_Object, const CIbyte *, |
3944 Lisp_Object, | 3781 Lisp_Object, |
3945 Lisp_Object, Error_Behavior); | 3782 Lisp_Object, Error_Behavior); |
3946 DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (signal_ferror_with_frob | 3783 DECLARE_DOESNT_RETURN (signal_ferror_with_frob (Lisp_Object, Lisp_Object, |
3947 (Lisp_Object, Lisp_Object, | 3784 const CIbyte *, ...)) |
3948 const CIbyte *, | 3785 PRINTF_ARGS(3, 4); |
3949 ...), 3, 4); | |
3950 void maybe_signal_ferror_with_frob (Lisp_Object, Lisp_Object, Lisp_Object, | 3786 void maybe_signal_ferror_with_frob (Lisp_Object, Lisp_Object, Lisp_Object, |
3951 Error_Behavior, | 3787 Error_Behavior, |
3952 const CIbyte *, ...) PRINTF_ARGS (5, 6); | 3788 const CIbyte *, ...) PRINTF_ARGS (5, 6); |
3953 Lisp_Object signal_continuable_ferror_with_frob (Lisp_Object, Lisp_Object, | 3789 Lisp_Object signal_continuable_ferror_with_frob (Lisp_Object, Lisp_Object, |
3954 const CIbyte *, | 3790 const CIbyte *, |
4026 DECLARE_DOESNT_RETURN (wtaerror (const CIbyte *reason, Lisp_Object frob)); | 3862 DECLARE_DOESNT_RETURN (wtaerror (const CIbyte *reason, Lisp_Object frob)); |
4027 MODULE_API DECLARE_DOESNT_RETURN (out_of_memory (const CIbyte *reason, | 3863 MODULE_API DECLARE_DOESNT_RETURN (out_of_memory (const CIbyte *reason, |
4028 Lisp_Object frob)); | 3864 Lisp_Object frob)); |
4029 DECLARE_DOESNT_RETURN (stack_overflow (const CIbyte *reason, | 3865 DECLARE_DOESNT_RETURN (stack_overflow (const CIbyte *reason, |
4030 Lisp_Object frob)); | 3866 Lisp_Object frob)); |
4031 MODULE_API | 3867 MODULE_API DECLARE_DOESNT_RETURN (printing_unreadable_object (const CIbyte *, |
4032 DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (printing_unreadable_object | 3868 ...)) |
4033 (const CIbyte *, | 3869 PRINTF_ARGS (1, 2); |
4034 ...), 1, 2); | |
4035 | 3870 |
4036 Lisp_Object signal_void_function_error (Lisp_Object); | 3871 Lisp_Object signal_void_function_error (Lisp_Object); |
4037 Lisp_Object signal_invalid_function_error (Lisp_Object); | 3872 Lisp_Object signal_invalid_function_error (Lisp_Object); |
4038 Lisp_Object signal_wrong_number_of_arguments_error (Lisp_Object, int); | 3873 Lisp_Object signal_wrong_number_of_arguments_error (Lisp_Object, int); |
4039 | 3874 |
4598 void stderr_out (const CIbyte *, ...) PRINTF_ARGS (1, 2); | 4433 void stderr_out (const CIbyte *, ...) PRINTF_ARGS (1, 2); |
4599 void stderr_out_lisp (const CIbyte *, int nargs, ...); | 4434 void stderr_out_lisp (const CIbyte *, int nargs, ...); |
4600 void stdout_out (const CIbyte *, ...) PRINTF_ARGS (1, 2); | 4435 void stdout_out (const CIbyte *, ...) PRINTF_ARGS (1, 2); |
4601 void external_out (int dest, const CIbyte *fmt, ...) PRINTF_ARGS (2, 3); | 4436 void external_out (int dest, const CIbyte *fmt, ...) PRINTF_ARGS (2, 3); |
4602 void debug_out (const CIbyte *, ...) PRINTF_ARGS (1, 2); | 4437 void debug_out (const CIbyte *, ...) PRINTF_ARGS (1, 2); |
4603 DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (fatal (const CIbyte *, | 4438 DECLARE_DOESNT_RETURN (fatal (const CIbyte *, ...)) PRINTF_ARGS(1, 2); |
4604 ...), 1, 2); | |
4605 | 4439 |
4606 /* Internal functions: */ | 4440 /* Internal functions: */ |
4607 Lisp_Object canonicalize_printcharfun (Lisp_Object printcharfun); | 4441 Lisp_Object canonicalize_printcharfun (Lisp_Object printcharfun); |
4608 void temp_output_buffer_setup (Lisp_Object); | 4442 void temp_output_buffer_setup (Lisp_Object); |
4609 void temp_output_buffer_show (Lisp_Object, Lisp_Object); | 4443 void temp_output_buffer_show (Lisp_Object, Lisp_Object); |
5298 extern Lisp_Object Vstandard_input, Vstandard_output, Vstdio_str; | 5132 extern Lisp_Object Vstandard_input, Vstandard_output, Vstdio_str; |
5299 extern Lisp_Object Vsynchronous_sounds, Vsystem_name; | 5133 extern Lisp_Object Vsynchronous_sounds, Vsystem_name; |
5300 extern Lisp_Object Vthis_command_keys, Vunread_command_event; | 5134 extern Lisp_Object Vthis_command_keys, Vunread_command_event; |
5301 extern Lisp_Object Vx_initial_argv_list; | 5135 extern Lisp_Object Vx_initial_argv_list; |
5302 | 5136 |
5303 #ifdef __cplusplus | 5137 END_C_DECLS |
5304 } | |
5305 #endif | |
5306 | 5138 |
5307 #endif /* INCLUDED_lisp_h_ */ | 5139 #endif /* INCLUDED_lisp_h_ */ |