summaryrefslogtreecommitdiff
path: root/Build/source/texk/kpathsea/mingw32.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/kpathsea/mingw32.h')
-rw-r--r--Build/source/texk/kpathsea/mingw32.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/Build/source/texk/kpathsea/mingw32.h b/Build/source/texk/kpathsea/mingw32.h
new file mode 100644
index 00000000000..cfa49a65737
--- /dev/null
+++ b/Build/source/texk/kpathsea/mingw32.h
@@ -0,0 +1,97 @@
+/* mingw32.h: declarations for mingw32.
+
+ Copyright 2009-2016 Taco Hoekwater <taco@luatex.org>.
+
+ 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 _MINGW32_H_
+#define _MINGW32_H_
+
+/* We need GetLongPathName and perhaps others. */
+#if !defined WINVER || WINVER < 0x0500
+#undef WINVER
+#define WINVER 0x0500
+#endif
+
+#include <stdlib.h>
+/* The embedded rndnpc.h defines boolean as 'unsigned char',
+ and we do not want that.
+ This should be safe as long as we don't use npc ourselves. */
+#define boolean saved_boolean
+/* With WINVER >= 0x0403 winuser.h declares INPUT as `struct tagINPUT`,
+ and we do not want that. */
+#define INPUT saved_INPUT
+#include <windows.h>
+#include <winerror.h>
+#include <winnt.h>
+#undef boolean
+#undef INPUT
+#include <dirent.h>
+#include <direct.h>
+#include <fcntl.h>
+#include <ctype.h>
+
+/* sys/types.h defines off_t as `long' and we do not want that.
+ We need to include unistd.h and sys/stat.h using off_t
+ before defining off_t (no need to include wchar.h). */
+#include <unistd.h>
+#include <sys/stat.h>
+#define off_t off64_t
+#define ftello ftello64
+#define fseeko fseeko64
+
+#ifndef MAXPATHLEN
+#define MAXPATHLEN _MAX_PATH
+#endif
+
+#ifndef MAX_PIPES
+#define MAX_PIPES 128
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef MAKE_KPSE_DLL /* libkpathsea internal only */
+
+extern void init_user_info (void);
+extern BOOL look_for_cmd (const char *, char **);
+extern char *quote_args(char **);
+
+#endif /* MAKE_KPSE_DLL */
+
+extern KPSEDLL BOOL win32_get_long_filename (char *, char *, int);
+extern KPSEDLL void texlive_gs_init (void);
+extern KPSEDLL double win32_floor (double);
+
+static inline FILE *
+win32_popen (const char *command, const char *fmode)
+{
+ char mode[3];
+
+ /* We always use binary mode */
+ mode[0] = fmode[0];
+ mode[1] = 'b';
+ mode[2] = '\0';
+
+ return _popen (command, mode);
+}
+#undef popen
+#define popen(cmd, mode) win32_popen(cmd, mode)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif