New timezone files from Arthur Olson and Paul Eggert
[unix-history] / share / zoneinfo / private.h
CommitLineData
1bd76676
GW
1#ifndef PRIVATE_H
2
3#define PRIVATE_H
4
5/*
6** This header is for use ONLY with the time conversion code.
7** There is no guarantee that it will remain unchanged,
8** or that it will remain at all.
9** Do NOT copy it to any system include directory.
10** Thank you!
11*/
12
13/*
14** ID
15*/
16
17#ifndef lint
18#ifndef NOID
19static char privatehid[] = "@(#)private.h 7.4";
20#endif /* !defined NOID */
21#endif /* !defined lint */
22
23/*
24** const
25*/
26
27#ifndef const
28#ifndef __STDC__
29#define const
30#endif /* !defined __STDC__ */
31#endif /* !defined const */
32
33/*
34** void
35*/
36
37#ifndef void
38#ifndef __STDC__
39#ifndef vax
40#ifndef sun
41#define void char
42#endif /* !defined sun */
43#endif /* !defined vax */
44#endif /* !defined __STDC__ */
45#endif /* !defined void */
46
47/*
48** P((args))
49*/
50
51#ifndef P
52#ifdef __STDC__
53#define P(x) x
54#else /* !defined __STDC__ */
55#define ASTERISK *
56#define P(x) ( /ASTERISK x ASTERISK/ )
57#endif /* !defined __STDC__ */
58#endif /* !defined P */
59
60/*
61** genericptr_t
62*/
63
64#ifdef __STDC__
65typedef void * genericptr_t;
66#else /* !defined __STDC__ */
67typedef char * genericptr_t;
68#endif /* !defined __STDC__ */
69
70#include "sys/types.h" /* for time_t */
71#include "stdio.h"
72#include "ctype.h"
73#include "errno.h"
74#include "string.h"
75#include "limits.h" /* for CHAR_BIT */
76#ifndef _TIME_
77#include "time.h"
78#endif /* !defined _TIME_ */
79
80#ifndef remove
81extern int unlink P((const char * filename));
82#define remove unlink
83#endif /* !defined remove */
84
85#ifndef FILENAME_MAX
86
87#ifndef MAXPATHLEN
88#ifdef unix
89#include "sys/param.h"
90#endif /* defined unix */
91#endif /* !defined MAXPATHLEN */
92
93#ifdef MAXPATHLEN
94#define FILENAME_MAX MAXPATHLEN
95#else /* !defined MAXPATHLEN */
96#define FILENAME_MAX 1024 /* Pure guesswork */
97#endif /* !defined MAXPATHLEN */
98
99#endif /* !defined FILENAME_MAX */
100
101#ifndef EXIT_SUCCESS
102#define EXIT_SUCCESS 0
103#endif /* !defined EXIT_SUCCESS */
104
105#ifndef EXIT_FAILURE
106#define EXIT_FAILURE 1
107#endif /* !defined EXIT_FAILURE */
108
109#ifdef __STDC__
110
111#define alloc_size_t size_t
112#define qsort_size_t size_t
113#define fwrite_size_t size_t
114
115#else /* !defined __STDC__ */
116
117#ifndef alloc_size_t
118#define alloc_size_t unsigned
119#endif /* !defined alloc_size_t */
120
121#ifndef qsort_size_t
122#ifdef USG
123#define qsort_size_t unsigned
124#else /* !defined USG */
125#define qsort_size_t int
126#endif /* !defined USG */
127#endif /* !defined qsort_size_t */
128
129#ifndef fwrite_size_t
130#define fwrite_size_t int
131#endif /* !defined fwrite_size_t */
132
133#ifndef USG
134extern char * sprintf P((char * buf, const char * format, ...));
135#endif /* !defined USG */
136
137#endif /* !defined __STDC__ */
138
139/*
140** Ensure that these are declared--redundantly declaring them shouldn't hurt.
141*/
142
143extern char * getenv P((const char * name));
144extern genericptr_t malloc P((alloc_size_t size));
145extern genericptr_t calloc P((alloc_size_t nelem, alloc_size_t elsize));
146extern genericptr_t realloc P((genericptr_t oldptr, alloc_size_t newsize));
147
148#ifdef USG
149extern void exit P((int s));
150extern void qsort P((genericptr_t base, qsort_size_t nelem,
151 qsort_size_t elsize, int (*comp)()));
152extern void perror P((const char * string));
153extern void free P((char * buf));
154#endif /* defined USG */
155
156#ifndef TRUE
157#define TRUE 1
158#endif /* !defined TRUE */
159
160#ifndef FALSE
161#define FALSE 0
162#endif /* !defined FALSE */
163
164#ifndef INT_STRLEN_MAXIMUM
165/*
166** 302 / 1000 is log10(2.0) rounded up.
167** Subtract one for the sign bit;
168** add one for integer division truncation;
169** add one more for a minus sign.
170*/
171#define INT_STRLEN_MAXIMUM(type) \
172 ((sizeof(type) * CHAR_BIT - 1) * 302 / 1000 + 2)
173#endif /* !defined INT_STRLEN_MAXIMUM */
174
175/*
176** UNIX is a registered trademark of AT&T.
177** VAX is a trademark of Digital Equipment Corporation.
178*/
179
180#endif /* !defined PRIVATE_H */