00001
00002
00003
00004
00005 #ifndef TRADSTDC_H
00006 #define TRADSTDC_H
00007
00008 #if defined(DUMB) && !defined(NOVOID)
00009 #define NOVOID
00010 #endif
00011
00012 #ifdef NOVOID
00013 #define void int
00014 #endif
00015
00016
00017
00018
00019
00020
00021
00022 #if (defined(__STDC__) || defined(__TURBOC__)) && !defined(NOTSTDC)
00023 #define NHSTDC
00024 #endif
00025
00026 #if defined(ultrix) && defined(__STDC__) && !defined(__LANGUAGE_C)
00027
00028
00029
00030 #ifdef mips
00031 #define __mips mips
00032 #endif
00033
00034 #ifdef LANGUAGE_C
00035 #define __LANGUAGE_C LANGUAGE_C
00036 #endif
00037
00038 #endif
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058 #if defined(apollo)
00059 # define USE_VARARGS
00060 #endif
00061
00062 #if defined(NHSTDC) || defined(ULTRIX_PROTO) || defined(MAC)
00063 # if !defined(USE_VARARGS) && !defined(USE_OLDARGS) && !defined(USE_STDARG)
00064 # define USE_STDARG
00065 # endif
00066 #endif
00067
00068 #ifdef NEED_VARARGS
00069 #ifdef USE_STDARG
00070 #include <stdarg.h>
00071 # define VA_DECL(typ1,var1) (typ1 var1, ...) { va_list the_args;
00072 # define VA_DECL2(typ1,var1,typ2,var2) \
00073 (typ1 var1, typ2 var2, ...) { va_list the_args;
00074 # define VA_INIT(var1,typ1)
00075 # define VA_NEXT(var1,typ1) var1 = va_arg(the_args, typ1)
00076 # define VA_ARGS the_args
00077 # define VA_START(x) va_start(the_args, x)
00078 # define VA_END() va_end(the_args)
00079 # if defined(ULTRIX_PROTO) && !defined(_VA_LIST_)
00080 # define _VA_LIST_
00081 # endif
00082 #else
00083 # ifdef USE_VARARGS
00084 #include <varargs.h>
00085 # define VA_DECL(typ1,var1) (va_alist) va_dcl {\
00086 va_list the_args; typ1 var1;
00087 # define VA_DECL2(typ1,var1,typ2,var2) (va_alist) va_dcl {\
00088 va_list the_args; typ1 var1; typ2 var2;
00089 # define VA_ARGS the_args
00090 # define VA_START(x) va_start(the_args)
00091 # define VA_INIT(var1,typ1) var1 = va_arg(the_args, typ1)
00092 # define VA_NEXT(var1,typ1) var1 = va_arg(the_args,typ1)
00093 # define VA_END() va_end(the_args)
00094 # else
00095 # define VA_ARGS arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9
00096 # define VA_DECL(typ1,var1) (var1,VA_ARGS) typ1 var1; \
00097 char *arg1,*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,*arg8,*arg9; {
00098 # define VA_DECL2(typ1,var1,typ2,var2) (var1,var2,VA_ARGS) \
00099 typ1 var1; typ2 var2;\
00100 char *arg1,*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,*arg8,*arg9; {
00101 # define VA_START(x)
00102 # define VA_INIT(var1,typ1)
00103 # define VA_END()
00104 # endif
00105 #endif
00106 #endif
00107
00108 #if defined(NHSTDC) || defined(MSDOS) || defined(MAC) || defined(ULTRIX_PROTO) || defined(__BEOS__)
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122 # define NDECL(f) f(void)
00123
00124 # define FDECL(f,p) f p
00125
00126 # if defined(MSDOS) || defined(USE_STDARG)
00127 # define VDECL(f,p) f p
00128 # else
00129 # define VDECL(f,p) f()
00130 # endif
00131
00132
00133 # define genericptr void *
00134
00135 # if (defined(ULTRIX_PROTO) && !defined(__GNUC__)) || defined(OS2_CSET2)
00136
00137
00138
00139
00140
00141
00142 # define genericptr_t genericptr
00143 # else
00144 # if !defined(NHSTDC) && !defined(MAC)
00145 # define const
00146 # define signed
00147 # define volatile
00148 # endif
00149 # endif
00150
00151
00152
00153
00154
00155
00156
00157 # if (defined(ULTRIX_PROTO) && !defined(NHSTDC)) || defined(apollo)
00158
00159 # ifndef const
00160 # define const
00161 # endif
00162 # endif
00163
00164 #else
00165
00166 # define NDECL(f) f()
00167 # define FDECL(f,p) f()
00168 # define VDECL(f,p) f()
00169
00170 # if defined(AMIGA) || defined(HPUX) || defined(POSIX_TYPES) || defined(__DECC) || defined(__BORLANDC__)
00171 # define genericptr void *
00172 # endif
00173 # ifndef genericptr
00174 # define genericptr char *
00175 # endif
00176
00177
00178
00179
00180 # define signed
00181 # define const
00182 # define volatile
00183
00184 #endif
00185
00186
00187 #ifndef genericptr_t
00188 typedef genericptr genericptr_t;
00189 #endif
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200 #if defined(MSDOS) && !defined(__GO32__)
00201 #define UNWIDENED_PROTOTYPES
00202 #endif
00203 #if defined(AMIGA) && !defined(AZTEC_50)
00204 #define UNWIDENED_PROTOTYPES
00205 #endif
00206 #if defined(macintosh) && (defined(__SC__) || defined(__MRC__))
00207 #define WIDENED_PROTOTYPES
00208 #endif
00209 #if defined(__MWERKS__) && defined(__BEOS__)
00210 #define UNWIDENED_PROTOTYPES
00211 #endif
00212 #if defined(WIN32)
00213 #define UNWIDENED_PROTOTYPES
00214 #endif
00215
00216 #if defined(ULTRIX_PROTO) && defined(ULTRIX_CC20)
00217 #define UNWIDENED_PROTOTYPES
00218 #endif
00219 #if defined(apollo)
00220 #define UNWIDENED_PROTOTYPES
00221 #endif
00222
00223 #ifndef UNWIDENED_PROTOTYPES
00224 # if defined(NHSTDC) || defined(ULTRIX_PROTO) || defined(THINK_C)
00225 # define WIDENED_PROTOTYPES
00226 # endif
00227 #endif
00228
00229 #if 0
00230
00231
00232
00233
00234 #if defined(__sgi) && !defined(__GNUC__)
00235
00236
00237
00238
00239
00240
00241
00242
00243 # undef NDECL
00244 # undef FDECL
00245 # undef VDECL
00246 # define NDECL(f) f()
00247 # define FDECL(f,p) f()
00248 # define VDECL(f,p) f()
00249 #endif
00250 #endif
00251
00252
00253
00254
00255 #if defined(__HC__) || defined(_AIX32)
00256 # undef signed
00257 #endif
00258
00259
00260
00261
00262
00263
00264 #ifdef __GNUC__
00265 # if __GNUC__ >= 2
00266 #define PRINTF_F(f,v) __attribute__ ((format (printf, f, v)))
00267 # endif
00268 #endif
00269 #ifndef PRINTF_F
00270 #define PRINTF_F(f,v)
00271 #endif
00272
00273 #endif