1 /* c-std.h: the first header files.
2 
3    Copyright 1992, 1993, 1994, 1995, 1996, 1997, 2008, 2012 Karl Berry.
4    Copyright 1999, 2005 Olaf Weber.
5 
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10 
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15 
16    You should have received a copy of the GNU Lesser General Public License
17    along with this library; if not, see <http://www.gnu.org/licenses/>.  */
18 
19 #ifndef KPATHSEA_C_STD_H
20 #define KPATHSEA_C_STD_H
21 
22 /* Header files that essentially all of our sources need, and
23    that all implementations have.  We include these first, to help with
24    NULL being defined multiple times.  */
25 /* Workaround against a <math.h> MSVC bug : it can't be declared
26    extern "C" in a c++ source file. */
27 #ifndef __cplusplus
28 #include <math.h>
29 /* apparently M_PI isn't defined by <math.h> under older VC */
30 #ifndef M_PI
31 #define M_PI 3.14159265358979323846
32 #endif
33 #endif
34 #include <stdio.h>
35 
36 /* Be sure we have constants from <unistd.h>.  */
37 #include <kpathsea/c-unistd.h>
38 
39 #ifdef HAVE_STDLIB_H
40 #include <stdlib.h>
41 /* Include <stdlib.h> before <stddef.h>, to help avoid NULL
42    redefinitions on some systems.  (We don't include <stddef.h>
43    ourselves any more, but FYI.)  */
44 #else
45 /* It's impossible to say for sure what the system will deign to put in
46    <stdlib.h>, but let's hope it's at least this.  */
47 extern char *getenv ();
48 #endif /* not HAVE_STDLIB_H */
49 
50 #ifdef WIN32
51 #include <malloc.h>
52 #else
53 #ifndef STDC_HEADERS
54 #ifndef ALLOC_RETURN_TYPE
55 #define ALLOC_RETURN_TYPE void
56 #endif /* not ALLOC_RETURN_TYPE */
57 extern ALLOC_RETURN_TYPE *calloc (), *malloc (), *realloc ();
58 #endif /* not STDC_HEADERS */
59 #endif /* not WIN32 */
60 
61 /* SunOS 4.1.1 gets STDC_HEADERS defined, but it doesn't provide
62    EXIT_FAILURE.  So far no system has defined one of EXIT_FAILURE and
63    EXIT_SUCCESS without the other.  */
64 #ifndef EXIT_SUCCESS
65 #ifdef VMS
66 #define EXIT_SUCCESS 1
67 #define EXIT_FAILURE 0
68 #else
69 #define EXIT_SUCCESS 0
70 #define EXIT_FAILURE 1
71 #endif
72 #endif /* not EXIT_SUCCESS */
73 
74 /* strchr vs. index, memcpy vs. bcopy, etc.  */
75 #include <kpathsea/c-memstr.h>
76 
77 /* Error numbers and errno declaration.  */
78 #include <kpathsea/c-errno.h>
79 
80 /* Numeric minima and maxima.  */
81 #include <kpathsea/c-minmax.h>
82 
83 /* Assertions are too useful to not make generally available.  */
84 #ifdef HAVE_ASSERT_H
85 #include <assert.h>
86 #else
87 #define assert(expr) /* as nothing */
88 #endif
89 
90 #ifdef VMS
91 #include <unixlib.h>
92 #include <unixio.h>
93 #endif /* not VMS */
94 
95 #endif /* not KPATHSEA_C_STD_H */
96