00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef FIG_H
00019 #define FIG_H
00020
00021 extern char *my_strdup();
00022
00023
00024
00025
00026 #if defined(ultrix) || defined(__bsdi__) || defined(Mips) || defined(apollo)
00027 #include <sys/types.h>
00028 #endif
00029 #include <sys/stat.h>
00030
00031 #if defined(__convex__) && defined(__STDC__)
00032 #define S_IFDIR _S_IFDIR
00033 #define S_IWRITE _S_IWRITE
00034 #endif
00035
00036 #ifndef SYSV
00037 #ifndef SVR4
00038 #include <fcntl.h>
00039 #endif
00040 #endif
00041
00042 #include <pwd.h>
00043 #include <signal.h>
00044 #include <stdio.h>
00045 #include <ctype.h>
00046 #include <errno.h>
00047
00048 #ifdef NEED_STRERROR
00049 extern char *strerror();
00050 # if !defined(__bsdi__) && !defined(__NetBSD__) && !defined(__GNU_LIBRARY__)
00051 extern int errno;
00052 extern int sys_nerr;
00053 # if ( !(defined(BSD) && (BSD - 0 >= 199306)) && !defined(__NetBSD__) && \
00054 !defined(__GNU_LIBRARY__) && !defined(__FreeBSD__) && !defined(__GLIBC__))
00055 extern char *sys_errlist[];
00056 # endif
00057 # endif
00058 #endif
00059
00060 extern char *mktemp();
00061
00062 #include <math.h>
00063
00064 #include <X11/Xlib.h>
00065 #include <X11/Intrinsic.h>
00066
00067 #include <X11/Xos.h>
00068
00069
00070
00071
00072
00073
00074 #ifdef X_NOT_POSIX
00075 #include <fcntl.h>
00076 #ifdef USL
00077 #include <unistd.h>
00078 #endif
00079 #ifdef CRAY
00080 #include <unistd.h>
00081 #endif
00082 #ifdef MOTOROLA
00083 #include <unistd.h>
00084 #endif
00085 #ifdef SYSV386
00086 #include <unistd.h>
00087 #endif
00088 #include <sys/file.h>
00089 #else
00090 #if !defined(_POSIX_SOURCE) && defined(macII)
00091 #define _POSIX_SOURCE
00092 #include <fcntl.h>
00093 #undef _POSIX_SOURCE
00094 #else
00095 #include <fcntl.h>
00096 #endif
00097 #include <unistd.h>
00098 #endif
00099
00100 #if XtSpecificationRelease > 4
00101 #include <X11/Xfuncs.h>
00102 #else
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133 #ifndef _XOSDEFS_H_
00134 #define _XOSDEFS_H_
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145 #ifdef NOSTDHDRS
00146 #define X_NOT_POSIX
00147 #define X_NOT_STDC_ENV
00148 #endif
00149
00150 #ifdef sony
00151 #ifndef SYSTYPE_SYSV
00152 #define X_NOT_POSIX
00153 #endif
00154 #endif
00155
00156 #ifdef UTEK
00157 #define X_NOT_POSIX
00158 #define X_NOT_STDC_ENV
00159 #endif
00160
00161 #ifdef CRAY
00162 #define X_NOT_POSIX
00163 #endif
00164
00165 #ifdef vax
00166 #ifndef ultrix
00167 #define X_NOT_POSIX
00168 #define X_NOT_STDC_ENV
00169 #endif
00170 #endif
00171
00172 #ifdef luna
00173 #define X_NOT_POSIX
00174 #define X_NOT_STDC_ENV
00175 #endif
00176
00177 #ifdef Mips
00178 #define X_NOT_POSIX
00179 #define X_NOT_STDC_ENV
00180 #endif
00181
00182 #ifdef USL
00183 #ifdef SYSV
00184 #define X_NOT_POSIX
00185 #define X_NOT_STDC_ENV
00186 #endif
00187 #endif
00188
00189 #ifdef SYSV386
00190 #ifdef SYSV
00191 #define X_NOT_POSIX
00192 #define X_NOT_STDC_ENV
00193 #endif
00194 #endif
00195
00196 #ifdef MOTOROLA
00197 #ifdef SYSV
00198 #define X_NOT_STDC_ENV
00199 #endif
00200 #endif
00201
00202 #endif
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220 #ifndef _XFUNCS_H_
00221 #define _XFUNCS_H_
00222
00223 #ifdef X_USEBFUNCS
00224 void bcopy();
00225 void bzero();
00226 int bcmp();
00227 #else
00228 #if (__STDC__ && !defined(X_NOT_STDC_ENV) && !defined(sun) && !defined(macII)) || defined(SVR4) || defined(hpux) || defined(_IBMR2)
00229 #include <string.h>
00230 #define bcopy(b1,b2,len) memmove(b2, b1, (size_t)(len))
00231 #define bzero(b,len) memset(b, 0, (size_t)(len))
00232 #define bcmp(b1,b2,len) memcmp(b1, b2, (size_t)(len))
00233 #else
00234 #ifdef sgi
00235 #include <bstring.h>
00236 #else
00237 #ifdef SYSV
00238 #include <memory.h>
00239 #if defined(_XBCOPYFUNC) && !defined(macII)
00240 #define bcopy _XBCOPYFUNC
00241 #define _XNEEDBCOPYFUNC
00242 #endif
00243 void bcopy();
00244 #define bzero(b,len) memset(b, 0, len)
00245 #define bcmp(b1,b2,len) memcmp(b1, b2, len)
00246 #else
00247 void bcopy();
00248 void bzero();
00249 int bcmp();
00250 #endif
00251 #endif
00252 #endif
00253 #endif
00254
00255 #endif
00256
00257 #endif
00258
00259 #ifdef X_NOT_STDC_ENV
00260 #ifdef SYSV
00261 #include <string.h>
00262 #else
00263 #include <strings.h>
00264 #ifndef strchr
00265 #define strchr index
00266 #endif
00267 #ifndef strrchr
00268 #define strrchr rindex
00269 #endif
00270 #endif
00271 #endif
00272
00273 #if defined(SYSV) && defined(SYSV386)
00274 #if defined(__STDC__)
00275 #ifdef ISC
00276 extern double atof(char const *);
00277 #endif
00278 #ifdef SCO
00279 #ifdef SCO324
00280 #include <stdlib.h>
00281 #else
00282 extern double atof(const char *);
00283 #endif
00284 #else
00285 extern double atof();
00286 #endif
00287 #else
00288 extern double atof();
00289 #endif
00290 #else
00291 #ifdef X_NOT_STDC_ENV
00292 #if defined(ultrix) || defined(sun) && !defined(sparc) || defined(titan) || \
00293 (defined(ibm032) && !defined(_AIX))
00294 extern double atof();
00295 extern char *getenv();
00296 #endif
00297 #else
00298 #include <stdlib.h>
00299 #endif
00300 #endif
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311 #ifdef HAVE_NO_DIRENT
00312 #define DIRSTRUCT struct direct
00313 #else
00314 #define DIRSTRUCT struct dirent
00315 #endif
00316
00317
00318 #ifndef X_NOT_POSIX
00319 #ifdef _POSIX_SOURCE
00320 #include <limits.h>
00321 #else
00322 #if !defined(sun) || defined(sparc) || (defined(SVR4) && defined(i386))
00323 #define _POSIX_SOURCE
00324 #include <limits.h>
00325 #undef _POSIX_SOURCE
00326 #endif
00327 #endif
00328 #endif
00329
00330
00331 #ifndef PATH_MAX
00332 #include <sys/param.h>
00333 #ifndef PATH_MAX
00334 #ifdef MAXPATHLEN
00335 #define PATH_MAX MAXPATHLEN
00336 #else
00337 #define PATH_MAX 1024
00338 #endif
00339 #endif
00340 #endif
00341
00342
00343
00344
00345 #undef M_PI
00346 #undef M_PI_2
00347 #undef M_2PI
00348 #define M_PI 3.14159265358979323846
00349 #define M_PI_2 1.57079632679489661923
00350 #define M_2PI 6.28318530717958647692
00351
00352 #define min2(a, b) (((a) < (b)) ? (a) : (b))
00353 #define max2(a, b) (((a) > (b)) ? (a) : (b))
00354 #define min3(a,b,c) ((((a<b)?a:b)<c)?((a<b)?a:b):c)
00355 #define max3(a,b,c) ((((a>b)?a:b)>c)?((a>b)?a:b):c)
00356 #define round(a) (int)(((a)<0.0)?(a)-.5:(a)+.5)
00357 #define signof(a) (((a) < 0) ? -1 : 1)
00358
00359 #ifdef USE_INLINE
00360 #define INLINE __inline
00361 #else
00362 #define INLINE
00363 #endif
00364
00365 #endif
00366
00367 #ifdef NOSTRSTR
00368 extern char *strstr();
00369 #endif
00370
00371 #if defined(SYSV) || defined(SVR4)
00372 extern void srand48();
00373 extern long lrand48();
00374 extern double drand48();
00375 #define srandom(seed) srand48((seed))
00376 #define random() lrand48()
00377 #define frandom() drand48()
00378
00379 #elif defined(BSD)
00380 #define srandom(seed) srand48((long)(seed))
00381 #define random() lrand48()
00382 #define frandom() drand48()
00383
00384 #elif (defined(linux) && !defined(glibc) && !defined(__GLIBC__))
00385 extern long random();
00386 extern void srandom(unsigned int);
00387
00388 #elif !defined(__osf__)
00389 extern void srandom();
00390
00391 #endif
00392
00393 #ifndef frandom
00394 #define frandom() (random()*(1./2147483648.))
00395 #endif