/* $Header: /usr/jjc/dvitops/RCS/util.h,v 1.7 90/10/16 07:53:45 jjc Exp $ */ #include #include #include #include #include #include #ifdef HAVE_MEMORY_H #include #endif /* HAVE_MEMORY_H */ #include "config.h" #ifndef DPI #define DPI 300 #endif #ifdef EBCDIC #define XCHAR atoe #endif #ifdef XCHAR #define STRXCHAR(s) { char *p_; \ for (p_ = s; *p_ != '\0'; p_++) *p_ = XCHAR(*p_); } #else #define STRXCHAR(s) /* as nothing */ #endif #ifndef XCHAR #define XCHAR(c) (c) #endif #ifndef FOPEN_RB #define FOPEN_RB(file) (fopen((file), "r")) #endif #ifndef NORMAL_EXIT_CODE #define NORMAL_EXIT_CODE 0 #endif #ifndef WARNING_EXIT_CODE #define WARNING_EXIT_CODE 1 #endif #ifndef ERROR_EXIT_CODE #define ERROR_EXIT_CODE 2 #endif #ifndef FATAL_ERROR_EXIT_CODE #define FATAL_ERROR_EXIT_CODE 3 #endif #ifdef BROKEN_PROTO #ifndef PROTO #define PROTO #endif #define PROMOTED_UNSIGNED_CHAR unsigned char #else #define PROMOTED_UNSIGNED_CHAR int #endif #ifdef STDARG #include #else #include #endif #ifndef SEEK_CUR #define SEEK_CUR 1 #endif #ifndef SEEK_SET #define SEEK_SET 0 #endif #ifndef SEEK_END #define SEEK_END 2 #endif #ifdef PROTO int abs(int); char *getenv(char *); int atoi(const char *); long atol(const char *); char *calloc(size_t, size_t); void exit(int); void free(char *); char *getenv(char *); char *malloc(size_t); void qsort(char *, int, int, int (*)()); char *realloc(char *, size_t); double atof(const char *); int getopt(int argc, char **argv, char *opts); FILE *xfopen(char *filename, int is_binary, char *area_list, char *extension); #ifdef NEED_MEM_FUNCTIONS int memcmp(char *, char *, int); char *memcpy(char *, char *, int); char *memset(char *, int, int); #endif /* NEED_MEM_FUNCTIONS */ time_t time(time_t *); #ifdef NEED_STRTOK char *strtok(char *, char *); #endif #ifdef CASE_INSENSITIVE_FILENAMES int stricmp(char *, char *); #endif #else int abs(); char *getenv(); double atof(); int atoi(); long atol(); char *calloc(); void exit(); void free(); char *getenv(); char *malloc(); void qsort(); char *realloc(); double atof(); long atol(); int getopt(); FILE *xfopen(); #ifdef NEED_MEM_FUNCTIONS int memcmp(); char *memcpy(); char *memset(); #endif /* NEED_MEM_FUNCTIONS */ void qsort(); time_t time(); #ifdef NEED_STRTOK char *strtok(); #endif #ifdef CASE_INSENSITIVE_FILENAMES int stricmp(); #endif #endif extern int opterr; extern int optind; extern int optopt; extern char *optarg; #define TRUE 1 #define FALSE 0 #ifdef __FILE__ #define cant_happen() message(FATAL_ERROR, "internal error: %s, line %d",\ __FILE__, __LINE__) #else #define cant_happen() message(FATAL_ERROR, "internal error") #endif #define out_of_memory() message(FATAL_ERROR, "out of memory") enum message_type {INFORMATION = 0, WARNING = 1, ERROR = 2, FATAL_ERROR = 3 }; extern enum message_type history; extern char *program_name; #ifdef STDARG void message(enum message_type, char *,...); #else void message(); #endif