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