summaryrefslogtreecommitdiff
path: root/Build/source/texk/kpathsea/simpletypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/kpathsea/simpletypes.h')
-rw-r--r--Build/source/texk/kpathsea/simpletypes.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/Build/source/texk/kpathsea/simpletypes.h b/Build/source/texk/kpathsea/simpletypes.h
new file mode 100644
index 00000000000..8403f55ab55
--- /dev/null
+++ b/Build/source/texk/kpathsea/simpletypes.h
@@ -0,0 +1,70 @@
+/* simpletypes.h: basic string, boolean, etc., that we use in kpathsea.
+
+ This is needed to avoid a loop between types.h and str-llist.h.
+ Otherwise, types.h would have to be included before str-llist.h,
+ because types.h itself also includes str-llist.h, and its following
+ use of str_llist_type would not be defined. So instead we have
+ str-llist.h #include this, instead of the full types.h. All follows
+ from types.h including nearly everything, so that MetaPost can be a
+ threaded library.
+
+ Copyright 1993, 1994, 2008, 2010, 2014 Karl Berry.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef KPATHSEA_SIMPLETYPES_H
+#define KPATHSEA_SIMPLETYPES_H
+
+#include <kpathsea/simpletypes.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Booleans. */
+/* NeXT wants to define their own boolean type. */
+#ifndef HAVE_BOOLEAN
+#define HAVE_BOOLEAN
+typedef int boolean;
+/* `true' and `false' are reserved words in C++. */
+#ifndef __cplusplus
+#ifndef true
+#define true 1
+#define false 0
+#endif /* not true */
+#endif /* not __cplusplus */
+#endif /* not HAVE_BOOLEAN */
+
+/* The X library (among other things) defines `FALSE' and `TRUE', and so
+ we only want to define them if necessary, for use by application code. */
+#ifndef FALSE
+#define FALSE false
+#define TRUE true
+#endif /* FALSE */
+
+/* The usual null-terminated string. */
+typedef char *string;
+
+/* A pointer to constant data. (ANSI says `const string' is
+ `char * const', which is a constant pointer to non-constant data.) */
+typedef const char *const_string;
+
+/* A generic pointer. */
+typedef void *address;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* not KPATHSEA_TYPES_H */