On mingw and MSVC, the rmdir() function is declared in <io.h> and/or <direct.h>,
not <unistd.h>.


2011-09-23  Bruno Haible  <[email protected]>

        rmdir: Support for mingw, MSVC 9.
        * lib/unistd.in.h: Include <io.h> and <direct.h> also for rmdir.
        * doc/posix-functions/getcwd.texi: Mention problem on native Windows.

--- doc/posix-functions/rmdir.texi.orig Fri Sep 23 12:08:21 2011
+++ doc/posix-functions/rmdir.texi      Fri Sep 23 12:03:01 2011
@@ -9,6 +9,10 @@
 Portability problems fixed by Gnulib:
 @itemize
 @item
+This function is declared in different header files (namely, @code{<io.h>} or
+@code{<direct.h>}) on some platforms:
+mingw, MSVC 9.
+@item
 This function mistakenly removes a directory with
 @code{rmdir("dir/./")} on some platforms:
 Cygwin 1.5.x.
--- lib/unistd.in.h.orig        Fri Sep 23 12:08:21 2011
+++ lib/unistd.in.h     Fri Sep 23 12:06:41 2011
@@ -83,9 +83,9 @@
 # include <stdlib.h>
 #endif
 
-/* Native Windows platforms declare getcwd in
+/* Native Windows platforms declare getcwd, rmdir in
    <io.h> and/or <direct.h>, not in <unistd.h>.  */
-#if ((@GNULIB_GETCWD@ || defined GNULIB_POSIXCHECK) \
+#if ((@GNULIB_GETCWD@ || @GNULIB_RMDIR@ || defined GNULIB_POSIXCHECK) \
      && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
 # include <io.h>     /* mingw32, mingw64 */
 # include <direct.h> /* mingw64, MSVC 9 */
-- 
In memoriam Ghazala Khan <http://en.wikipedia.org/wiki/Ghazala_Khan>

Reply via email to