/* System description file for Windows NT.
-Copyright (C) 1993-1995, 2001-2013 Free Software Foundation, Inc.
+Copyright (C) 1993-1995, 2001-2014 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#define WINDOWSNT
#endif
+#include <mingw_time.h>
+
/* #undef const */
/* Number of chars of output in the buffer of a stdio stream. */
#define MAXPATHLEN _MAX_PATH
#endif
+/* This is used to hold UTF-8 encoded file names. */
+#define MAX_UTF8_PATH (MAXPATHLEN * 4)
+
#ifdef HAVE_NTGUI
# ifndef HAVE_WINDOW_SYSTEM
# define HAVE_WINDOW_SYSTEM 1
# endif
-# ifndef HAVE_MENUS
-# define HAVE_MENUS 1
-# endif
#endif
/* Get some redefinitions in place. */
extern struct tm * sys_localtime (const time_t *);
/* MinGW64 uses a 2-argument _setjmp, and setjmp is a macro defined to
supply the 2nd arg correctly, so don't use _setjmp directly in that
- case. */
+ case. */
#undef HAVE__SETJMP
#endif
#define link sys_link
#define localtime sys_localtime
#define mkdir sys_mkdir
-#undef mktemp
-#define mktemp sys_mktemp
#undef open
#define open sys_open
-#define pipe sys_pipe
#undef read
#define read sys_read
#define rename sys_rename
#define strerror sys_strerror
#undef unlink
#define unlink sys_unlink
+#undef opendir
+#define opendir sys_opendir
+#undef closedir
+#define closedir sys_closedir
+#undef readdir
+#define readdir sys_readdir
+#undef seekdir
+#define seekdir sys_seekdir
/* This prototype is needed because some files include config.h
_after_ the standard headers, so sys_unlink gets no prototype from
stdio.h or io.h. */
extern int sys_unlink (const char *);
#undef write
#define write sys_write
+#undef umask
+#define umask sys_umask
+extern int sys_umask (int);
/* Subprocess calls that are emulated. */
#define spawnve sys_spawnve
#define lseek _lseek
#define popen _popen
#define pclose _pclose
-#define umask _umask
#define strdup _strdup
#define strupr _strupr
#define strnicmp _strnicmp
extern int sigaddset (sigset_t *, int);
extern int sigfillset (sigset_t *);
extern int sigprocmask (int, const sigset_t *, sigset_t *);
+/* MinGW64 defines pthread_sigmask as zero in its pthread_signal.h
+ header, but we have an implementation for that function in w32proc.c. */
+#ifdef pthread_sigmask
+#undef pthread_sigmask
+#endif
extern int pthread_sigmask (int, const sigset_t *, sigset_t *);
extern int sigismember (const sigset_t *, int);
extern int setpgrp (int, int);
extern int sigaction (int, const struct sigaction *, struct sigaction *);
extern int alarm (int);
-extern int sys_kill (int, int);
+extern int sys_kill (pid_t, int);
/* For integration with MSDOS support. */
extern void * memrchr (void const *, int, size_t);
+extern int mkostemp (char *, int);
+
#if defined (__MINGW32__)