1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
/*
* $Id: e_mac.h 443 2006-05-30 04:37:13Z darren $
*
* Copyright (c) 2001, Maarten L. Hekkelman
*
* Author: Maarten L. Hekkelman <maarten@hekkelman.com>
* 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 <time.h>
#include <errno.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <Files.h>
#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 <console.h>
#include <stat.mac.h>
#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: */
|