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 #include <stdarg.h>
36 
37 /* Be sure we have constants from <unistd.h>.  */
38 #include <kpathsea/c-unistd.h>
39 
40 #ifdef HAVE_STDLIB_H
41 #include <stdlib.h>
42 /* Include <stdlib.h> before <stddef.h>, to help avoid NULL
43    redefinitions on some systems.  (We don't include <stddef.h>
44    ourselves any more, but FYI.)  */
45 #else
46 /* It's impossible to say for sure what the system will deign to put in
47    <stdlib.h>, but let's hope it's at least this.  */
48 extern char *getenv ();
49 #endif /* not HAVE_STDLIB_H */
50 
51 #ifdef WIN32
52 #include <malloc.h>
53 #else
54 #ifndef STDC_HEADERS
55 #ifndef ALLOC_RETURN_TYPE
56 #define ALLOC_RETURN_TYPE void
57 #endif /* not ALLOC_RETURN_TYPE */
58 extern ALLOC_RETURN_TYPE *calloc (), *malloc (), *realloc ();
59 #endif /* not STDC_HEADERS */
60 #endif /* not WIN32 */
61 
62 /* SunOS 4.1.1 gets STDC_HEADERS defined, but it doesn't provide
63    EXIT_FAILURE.  So far no system has defined one of EXIT_FAILURE and
64    EXIT_SUCCESS without the other.  */
65 #ifndef EXIT_SUCCESS
66 #ifdef VMS
67 #define EXIT_SUCCESS 1
68 #define EXIT_FAILURE 0
69 #else
70 #define EXIT_SUCCESS 0
71 #define EXIT_FAILURE 1
72 #endif
73 #endif /* not EXIT_SUCCESS */
74 
75 /* strchr vs. index, memcpy vs. bcopy, etc.  */
76 #include <kpathsea/c-memstr.h>
77 
78 /* Error numbers and errno declaration.  */
79 #include <kpathsea/c-errno.h>
80 
81 /* Numeric minima and maxima.  */
82 #include <kpathsea/c-minmax.h>
83 
84 /* Assertions are too useful to not make generally available.  */
85 #ifdef HAVE_ASSERT_H
86 #include <assert.h>
87 #else
88 #define assert(expr) /* as nothing */
89 #endif
90 
91 #ifdef VMS
92 #include <unixlib.h>
93 #include <unixio.h>
94 #endif /* not VMS */
95 
96 #endif /* not KPATHSEA_C_STD_H */
97