~ubuntu-branches/ubuntu/trusty/exuberant-ctags/trusty

1 by Colin Watson
Import upstream version 5.5.4
1
/*
1.1.2 by Colin Watson
Import upstream version 5.7
2
*   $Id: e_mac.h 443 2006-05-30 04:37:13Z darren $
1 by Colin Watson
Import upstream version 5.5.4
3
*
4
*   Copyright (c) 2001, Maarten L. Hekkelman
5
*
6
*   Author: Maarten L. Hekkelman <maarten@hekkelman.com>
7
*           http://www.hekkelman.com
8
*
9
*   This source code is released for free distribution under the terms of the
10
*   GNU General Public License. It is provided on an as-is basis and no
11
*   responsibility is accepted for its failure to perform as expected.
12
*
13
*   Configures ctags for Macintosh environment.
14
*/
15
#ifndef E_MAC_H
16
#define E_MAC_H
17
18
#define BUILD_MPW_TOOL 1
19
20
#define MACROS_USE_PATTERNS	1
21
#define DEFAULT_FILE_FORMAT 2
22
#define INTERNAL_SORT 1
23
#define TMPDIR "/tmp"
24
#define NEED_PROTO_TRUNCATE 1
25
#define STDC_HEADERS 1
26
#define HAVE_CLOCK 1
27
#define HAVE_FGETPOS 1
28
#define HAVE_OPENDIR 1
29
#define HAVE_REMOVE 1
30
#define HAVE_SETENV 1
31
#define HAVE_STRERROR 1
32
#define HAVE_STRSTR 1
33
#define HAVE_FCNTL_H 1
34
#define HAVE_STDLIB_H 1
35
#define HAVE_STRING_H 1
36
#define HAVE_SYS_DIR_H 1
37
#define HAVE_SYS_TIMES_H 1
38
#define HAVE_TIME_H 1
39
#define HAVE_TYPES_H 1
40
#define HAVE_STDLIB_H 1
41
42
#include <time.h>
43
#include <errno.h>
44
#include <stdlib.h>
45
#include <fcntl.h>
46
#include <stdio.h>
47
48
#include <Files.h>
49
50
#if BUILD_MPW_TOOL
51
52
/*
53
	The following defines are collected from various header files from some
54
	Linux distribution
55
*/
56
1.1.1 by Colin Watson
Import upstream version 5.6
57
typedef unsigned long  mode_t;
58
typedef unsigned long  ino_t;
59
typedef unsigned long  dev_t;
60
typedef short          nlink_t;
61
typedef unsigned long  uid_t;
62
typedef unsigned long  gid_t;
1 by Colin Watson
Import upstream version 5.5.4
63
64
/* Encoding of the file mode.  */
1.1.1 by Colin Watson
Import upstream version 5.6
65
#define	S_IFMT  0170000  /* These bits determine file type.  */
1 by Colin Watson
Import upstream version 5.5.4
66
67
/* File types.  */
1.1.1 by Colin Watson
Import upstream version 5.6
68
#define	S_IFDIR  0040000  /* Directory.  */
69
#define	S_IFCHR  0020000  /* Character device.  */
70
#define	S_IFBLK  0060000  /* Block device.  */
71
#define	S_IFREG  0100000  /* Regular file.  */
72
73
#define	S_ISTYPE(mode, mask)  (((mode) & S_IFMT) == (mask))
74
75
#define	S_ISDIR(mode)  S_ISTYPE((mode), S_IFDIR)
76
#define	S_ISCHR(mode)  S_ISTYPE((mode), S_IFCHR)
77
#define	S_ISBLK(mode)  S_ISTYPE((mode), S_IFBLK)
78
#define	S_ISREG(mode)  S_ISTYPE((mode), S_IFREG)
1 by Colin Watson
Import upstream version 5.5.4
79
80
struct stat {
1.1.1 by Colin Watson
Import upstream version 5.6
81
	dev_t              st_dev;      /* Device.  */
82
	unsigned short int __pad1;
83
	ino_t              st_ino;      /* File serial number.	*/
84
	mode_t             st_mode;     /* File mode.  */
85
	nlink_t            st_nlink;    /* Link count.  */
86
	uid_t              st_uid;      /* User ID of the file's owner.	*/
87
	gid_t              st_gid;      /* Group ID of the file's group.*/
88
	off_t              st_size;     /* Size of file, in bytes.  */
89
	unsigned long int  st_blksize;  /* Optimal block size for I/O.  */
90
	long               st_blocks;   /* Number 512-byte blocks allocated. */
91
	time_t             st_atime;    /* Time of last access.  */
92
	time_t             st_mtime;    /* Time of last modification.  */
93
	time_t             st_ctime;    /* Time of last status change.  */
1 by Colin Watson
Import upstream version 5.5.4
94
};
95
96
int fstat(int fildes, struct stat *buf);
97
98
#else
99
#include <console.h>
100
#include <stat.mac.h>
101
#endif
102
103
#ifndef PATH_MAX
104
#define PATH_MAX 1024
105
#endif
106
107
/*
108
	Our own stat, accepts unix like paths.
109
*/
110
int mstat(const char *path, struct stat *buf);
111
112
struct dirent {
1.1.1 by Colin Watson
Import upstream version 5.6
113
	char d_name[64];
1 by Colin Watson
Import upstream version 5.5.4
114
};
115
116
typedef struct {
1.1.1 by Colin Watson
Import upstream version 5.6
117
	FSSpec file;
118
	int index;
119
	struct dirent ent;
1 by Colin Watson
Import upstream version 5.5.4
120
} DIR;
121
1.1.1 by Colin Watson
Import upstream version 5.6
122
extern DIR* opendir(const char *dirname);
123
extern struct dirent* readdir(DIR* dirp);
124
extern int closedir(DIR* dirp);
125
extern void rewinddir(DIR* dirp);
126
extern char* getcwd(char*, int);
1 by Colin Watson
Import upstream version 5.5.4
127
128
/*
129
	Our own fopen, accepts unix like paths.
130
*/
1.1.1 by Colin Watson
Import upstream version 5.6
131
extern FILE* mfopen(const char* file, const char* mode);
1 by Colin Watson
Import upstream version 5.5.4
132
133
/*
134
	Dirty, define the standard functions fopen, stat and lstat to map to our
135
	own routines.
136
*/
1.1.1 by Colin Watson
Import upstream version 5.6
137
#define fopen       mfopen
138
#define stat(a,b)   mstat(a,b)
139
#define lstat(a,b)  mstat(a,b)
1 by Colin Watson
Import upstream version 5.5.4
140
141
#endif
142
143
/* vi:set tabstop=4 shiftwidth=4: */