# include <Types.h> # include <Memory.h> # include <stddef.h> # include <setjmp.h> # define malloc(size) NewPtr(size) # define free(ptr) DisposePtr(ptr) # define frame iframe # define EOF (-1) extern int getevent(void); extern void exit(int status); extern void abort(void); extern void qsort(void *arr, size_t size, size_t sz, int (*cmp)(const void *a, const void *b)); extern void tminit(void); extern Uint m2utime(long t); # ifdef INCLUDE_CTYPE # define CTYPE_ALPHA 0x01 /* in alphabet */ # define CTYPE_ALNUM 0x02 /* alphanumeric */ # define CTYPE_UPPER 0x04 /* upper case */ # define CTYPE_LOWER 0x08 /* lower case */ # define CTYPE_DIGIT 0x10 /* digit */ # define CTYPE_XDIGIT 0x20 /* xdigit */ extern char ctype[]; # define isalpha(c) (ctype[UCHAR(c)] & CTYPE_ALPHA) # define isalnum(c) (ctype[UCHAR(c)] & CTYPE_ALNUM) # define isupper(c) (ctype[UCHAR(c)] & CTYPE_UPPER) # define islower(c) (ctype[UCHAR(c)] & CTYPE_LOWER) # define isdigit(c) (ctype[UCHAR(c)] & CTYPE_DIGIT) # define isxdigit(c) (ctype[UCHAR(c)] & CTYPE_XDIGIT) extern int tolower(int c); extern int toupper(int c); # endif # ifdef INCLUDE_FILE_IO /* open flags */ # define O_RDONLY 0x00 # define O_WRONLY 0x01 # define O_RDWR 0x02 # define O_APPEND 0x04 # define O_CREAT 0x08 # define O_TRUNC 0x10 # define O_EXCL 0x20 # define O_BINARY 0x00 /* lseek flags */ # define SEEK_SET 0 # define SEEK_CUR 1 # define SEEK_END 2 /* stat info */ # define S_IFMT 0x03 # define S_IFREG 0x01 # define S_IFDIR 0x02 struct stat { short st_mode; /* file type */ long st_size; /* size */ long st_mtime; /* modification time */ }; # define F_OK 0 # define R_OK 4 # define W_OK 2 extern void fsinit(long fcrea, long ftype); extern char *path_file(char *path); extern char *path_unfile(char *path); extern char *getpath(char *buf, short vref, unsigned char *fname); extern char *getfile(char *buf, long type); extern int open(const char *path, int flags, int mode); extern int close(int fd); extern int read(int fd, void *buf, int nbytes); extern int write(int fd, const void *buf, int nbytes); extern long lseek(int fd, long offset, int whence); extern int stat(const char *path, struct stat *sb); extern int fstat(int fd, struct stat *sb); extern int unlink(const char *path); extern int rename(const char *from, const char *to); extern int access(const char *path, int mode); extern int mkdir(const char *path, int mode); extern int rmdir(const char *path); extern int chdir(const char *path); # endif extern int memcmp(const void *b1, const void *b2, size_t len); extern void *memchr(const void *b, int c, size_t len); extern void *memset(void *b, int c, size_t len); extern void *memcpy(void *dst, const void *src, size_t len); extern size_t strlen(const char *s); extern int strcmp(const char *p, const char *q); extern int strncmp(const char *p, const char *q, size_t len); extern char *strchr(const char *p, int c); extern char *strrchr(const char *p, int c); extern char *strpbrk(const char *p, const char *set); extern char *strcpy(char *s, const char *q); extern char *strncpy(char *s, const char *q, size_t len); extern char *strcat(char *s, const char *q); extern long strtol(const char *s, char **end, int base); extern int sprintf(char *buf, const char *fmt, ...);