+2020-12-06 Bruno Haible <bruno@clisp.org>
+
+ Tweak the Windows oldnames workaround.
+ Reported by Daniel R. Hurtmans <Daniel.Hurtmans@ulb.ac.be> in
+ <https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00073.html>.
+ * lib/unistd.in.h: On native Windows, include <io.h> and <direct.h>
+ always.
+ (getcwd): Use _GL_CXXALIAS_MDA_CAST.
+ * lib/stdlib.in.h (putenv): Likewise.
+
2020-12-06 Paul Eggert <eggert@cs.ucla.edu>
doc: fix flat address space discussion
# undef putenv
# define putenv _putenv
# endif
-_GL_CXXALIAS_MDA (putenv, int, (char *string));
+/* Need to cast, because on mingw, the parameter is either
+ 'const char *string' or 'char *string'. */
+_GL_CXXALIAS_MDA_CAST (putenv, int, (char *string));
# else
_GL_CXXALIAS_SYS (putenv, int, (char *string));
# endif
<io.h> and/or <direct.h>, not in <unistd.h>.
They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(),
_lseek(), _read(), _unlink(), _write() in <io.h>. */
-#if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \
- || defined GNULIB_POSIXCHECK) \
- && (defined _WIN32 && ! defined __CYGWIN__))
-# include <io.h> /* mingw32, mingw64 */
-# include <direct.h> /* mingw64, MSVC 9 */
-#elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \
- || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \
- || defined GNULIB_POSIXCHECK) \
- && (defined _WIN32 && ! defined __CYGWIN__)
+#if defined _WIN32 && !defined __CYGWIN__
# include <io.h>
+# include <direct.h>
#endif
/* Native Windows platforms declare _execl*, _execv* in <process.h>. */
# undef getcwd
# define getcwd _getcwd
# endif
-_GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size));
+/* Need to cast, because on mingw, the second parameter is either
+ 'int size' or 'size_t size'. */
+_GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size));
# else
_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
# endif