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_ */