xref: /minix/external/bsd/nvi/usr.bin/nvi/compat.h (revision 84d9c625)
1 /* $Id: compat.h,v 1.1 2013/11/22 16:00:45 christos Exp $ (Berkeley) $Date: 2013/11/22 16:00:45 $ */
2 
3 /*
4  * Declare the basic types, if they aren't already declared.  Named and
5  * some system's db.h files protect them with __BIT_TYPES_DEFINED__.
6  */
7 #ifndef __BIT_TYPES_DEFINED__
8 #define __BIT_TYPES_DEFINED__
9 
10 
11 
12 
13 
14 #endif
15 
16 
17 
18 
19 
20 
21 /*
22  * XXX
23  * Handle function prototypes.  This steps on name space that vi doesn't
24  * control, but all of the other solutions are worse.
25  */
26 #undef	__P
27 #if defined(__STDC__) || defined(__cplusplus)
28 #define	__P(protos)	protos		/* ANSI C prototypes */
29 #else
30 #define	__P(protos)	()		/* K&R C preprocessor */
31 #endif
32 
33 /*
34  * XXX
35  * Some versions of System V changed the number of arguments to gettimeofday
36  * without changing the name.
37  */
38 #ifdef HAVE_BROKEN_GETTIMEOFDAY
39 #define	gettimeofday(tv, tz)	gettimeofday(tv)
40 #endif
41 
42 /*
43  * XXX
44  * If we don't have mmap, we fake it with read and write, but we'll
45  * still need the header information.
46  */
47 #ifndef HAVE_SYS_MMAN_H
48 #define	MAP_SHARED	1		/* share changes */
49 #define	MAP_PRIVATE	2		/* changes are private */
50 #define	PROT_READ	0x1		/* pages can be read */
51 #define	PROT_WRITE	0x2		/* pages can be written */
52 #define	PROT_EXEC	0x4		/* pages can be executed */
53 #endif
54 
55 /*
56  * XXX
57  * POSIX 1003.1 names for file descriptors.
58  */
59 #ifndef STDERR_FILENO
60 #define STDIN_FILENO	0		/* ANSI C #defines */
61 #define STDOUT_FILENO	1
62 #define STDERR_FILENO	2
63 #endif
64 
65 /*
66  * XXX
67  * POSIX 1003.1 names for seek settings.
68  */
69 #ifndef SEEK_END
70 #define	SEEK_SET	0		/* POSIX 1003.1 seek values */
71 #define	SEEK_CUR	1
72 #define	SEEK_END	2
73 #endif
74 
75 /*
76  * Hack _POSIX_VDISABLE to \377 since Ultrix doesn't honor _POSIX_VDISABLE
77  * (treats it as ^@).  The symptom is that the ^@ keystroke immediately
78  * drops core.
79  */
80 #ifdef HAVE_BROKEN_VDISABLE
81 #undef	_POSIX_VDISABLE
82 #define	_POSIX_VDISABLE	((unsigned char)'\377')
83 #endif
84 
85 /*
86  * XXX
87  * POSIX 1003.1 tty disabling character.
88  */
89 #ifndef _POSIX_VDISABLE
90 #define	_POSIX_VDISABLE	0		/* Some systems used 0. */
91 #endif
92 
93 /*
94  * XXX
95  * 4.4BSD extension to only set the software termios bits.
96  */
97 #ifndef	TCSASOFT			/* 4.4BSD extension. */
98 #define	TCSASOFT	0
99 #endif
100 
101 /*
102  * XXX
103  * POSIX 1003.1 maximum path length.
104  */
105 #ifndef MAXPATHLEN
106 #ifdef PATH_MAX
107 #define	MAXPATHLEN	PATH_MAX
108 #else
109 #define	MAXPATHLEN	1024
110 #endif
111 #endif
112 
113 /*
114  * XXX
115  * MIN, MAX, historically in <sys/param.h>
116  */
117 #ifndef	MAX
118 #define	MAX(_a,_b)	((_a)<(_b)?(_b):(_a))
119 #endif
120 #ifndef	MIN
121 #define	MIN(_a,_b)	((_a)<(_b)?(_a):(_b))
122 #endif
123 
124 /*
125  * XXX
126  * "DB" isn't always portable, and we want the private information.
127  */
128 #define DB      L__DB
129 #undef	pgno_t			/* IRIX has its own version. */
130 #define	pgno_t	L__db_pgno_t
131 
132 /*
133  * XXX
134  * 4.4BSD extension to provide lock values in the open(2) call.
135  */
136 #ifndef O_EXLOCK
137 #define	O_EXLOCK	0
138 #endif
139 
140 #ifndef O_SHLOCK
141 #define	O_SHLOCK	0
142 #endif
143 
144 /*
145  * XXX
146  * POSIX 1003.1 bad file format errno.
147  */
148 #ifndef EFTYPE
149 #define	EFTYPE		EINVAL
150 #endif
151 
152 /*
153  * XXX
154  * POSIX 1003.2 RE length limit.
155  */
156 #ifndef	_POSIX2_RE_DUP_MAX
157 #define	_POSIX2_RE_DUP_MAX	255
158 #endif
159 
160 /*
161  * XXX
162  * 4.4BSD extension to determine if a program dropped core from the exit
163  * status.
164  */
165 #ifndef	WCOREDUMP
166 #define	WCOREDUMP(a)	0
167 #endif
168 
169 /*
170  * XXX
171  * Endian-ness of the machine.
172  */
173 #if !defined(LITTLE_ENDIAN)
174 #define	LITTLE_ENDIAN	1234
175 #endif
176 #if !defined(BIG_ENDIAN)
177 #define	BIG_ENDIAN	4321
178 #endif
179 #if !defined(BYTE_ORDER)
180 #if WORDS_BIGENDIAN == 1
181 #define	BYTE_ORDER	BIG_ENDIAN
182 #else
183 #define	BYTE_ORDER	LITTLE_ENDIAN
184 #endif
185 #endif
186 
187 #ifndef HAVE_MEMCPY
188 #define memcpy memmove
189 #endif
190 
191 #ifdef NEED_FPRINTF_PROTO
192 extern  int     fprintf( FILE *, const char *, ... );
193 #endif
194 
195 #ifdef HAVE_PTHREAD
196 #define VI_DB_THREAD DB_THREAD
197 #else
198 #define VI_DB_THREAD 0
199 #endif
200