/* * $Id: e_mac.h 443 2006-05-30 04:37:13Z darren $ * * Copyright (c) 2001, Maarten L. Hekkelman * * Author: Maarten L. Hekkelman * http://www.hekkelman.com * * This source code is released for free distribution under the terms of the * GNU General Public License. It is provided on an as-is basis and no * responsibility is accepted for its failure to perform as expected. * * Configures ctags for Macintosh environment. */ #ifndef E_MAC_H #define E_MAC_H #define BUILD_MPW_TOOL 1 #define MACROS_USE_PATTERNS 1 #define DEFAULT_FILE_FORMAT 2 #define INTERNAL_SORT 1 #define TMPDIR "/tmp" #define NEED_PROTO_TRUNCATE 1 #define STDC_HEADERS 1 #define HAVE_CLOCK 1 #define HAVE_FGETPOS 1 #define HAVE_OPENDIR 1 #define HAVE_REMOVE 1 #define HAVE_SETENV 1 #define HAVE_STRERROR 1 #define HAVE_STRSTR 1 #define HAVE_FCNTL_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_DIR_H 1 #define HAVE_SYS_TIMES_H 1 #define HAVE_TIME_H 1 #define HAVE_TYPES_H 1 #define HAVE_STDLIB_H 1 #include #include #include #include #include #include #if BUILD_MPW_TOOL /* The following defines are collected from various header files from some Linux distribution */ typedef unsigned long mode_t; typedef unsigned long ino_t; typedef unsigned long dev_t; typedef short nlink_t; typedef unsigned long uid_t; typedef unsigned long gid_t; /* Encoding of the file mode. */ #define S_IFMT 0170000 /* These bits determine file type. */ /* File types. */ #define S_IFDIR 0040000 /* Directory. */ #define S_IFCHR 0020000 /* Character device. */ #define S_IFBLK 0060000 /* Block device. */ #define S_IFREG 0100000 /* Regular file. */ #define S_ISTYPE(mode, mask) (((mode) & S_IFMT) == (mask)) #define S_ISDIR(mode) S_ISTYPE((mode), S_IFDIR) #define S_ISCHR(mode) S_ISTYPE((mode), S_IFCHR) #define S_ISBLK(mode) S_ISTYPE((mode), S_IFBLK) #define S_ISREG(mode) S_ISTYPE((mode), S_IFREG) struct stat { dev_t st_dev; /* Device. */ unsigned short int __pad1; ino_t st_ino; /* File serial number. */ mode_t st_mode; /* File mode. */ nlink_t st_nlink; /* Link count. */ uid_t st_uid; /* User ID of the file's owner. */ gid_t st_gid; /* Group ID of the file's group.*/ off_t st_size; /* Size of file, in bytes. */ unsigned long int st_blksize; /* Optimal block size for I/O. */ long st_blocks; /* Number 512-byte blocks allocated. */ time_t st_atime; /* Time of last access. */ time_t st_mtime; /* Time of last modification. */ time_t st_ctime; /* Time of last status change. */ }; int fstat(int fildes, struct stat *buf); #else #include #include #endif #ifndef PATH_MAX #define PATH_MAX 1024 #endif /* Our own stat, accepts unix like paths. */ int mstat(const char *path, struct stat *buf); struct dirent { char d_name[64]; }; typedef struct { FSSpec file; int index; struct dirent ent; } DIR; extern DIR* opendir(const char *dirname); extern struct dirent* readdir(DIR* dirp); extern int closedir(DIR* dirp); extern void rewinddir(DIR* dirp); extern char* getcwd(char*, int); /* Our own fopen, accepts unix like paths. */ extern FILE* mfopen(const char* file, const char* mode); /* Dirty, define the standard functions fopen, stat and lstat to map to our own routines. */ #define fopen mfopen #define stat(a,b) mstat(a,b) #define lstat(a,b) mstat(a,b) #endif /* vi:set tabstop=4 shiftwidth=4: */