]> Savannah Git Hosting - gnulib.git/commitdiff
New module 'mkdirat', split off from module 'openat'.
authorBruno Haible <bruno@clisp.org>
Fri, 4 Nov 2011 10:31:25 +0000 (11:31 +0100)
committerBruno Haible <bruno@clisp.org>
Fri, 4 Nov 2011 12:26:02 +0000 (13:26 +0100)
* m4/mkdirat.m4: New file. extracted from m4/openat.m4.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't require gl_SYS_STAT_H_DEFAULTS.
Don't test for mkdirat. Don't set GNULIB_MKDIRAT, HAVE_MKDIRAT.
* modules/mkdirat: New file, extracted from modules/openat.
* modules/openat (Files): Remove lib/mkdirat.c.
(Depends-on): Remove mkdir.
(configure.ac): Remove AC_LIBOBJ of mkdirat.
(Include): Remove <sys/stat.h>.
* modules/mkdirat-tests: New file, extracted from modules/openat-tests.
* modules/openat-tests (Files): Remove tests/test-mkdirat.c,
tests/test-mkdir.h.
(Depends-on): Remove ignore-value.
(Makefile.am): Remove rules for test-mkdirat.
* doc/posix-functions/mkdirat.texi: Mention module 'mkdirat' instead
of module 'openat'.
* NEWS: Mention the change.

ChangeLog
NEWS
doc/posix-functions/mkdirat.texi
m4/mkdirat.m4 [new file with mode: 0644]
m4/openat.m4
modules/mkdirat [new file with mode: 0644]
modules/mkdirat-tests [new file with mode: 0644]
modules/openat
modules/openat-tests

index 56cced382d1723d923721def2f4fad2ac43b63ad..ecf87a57e124528cf6e307906c92db6d552c2b63 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2011-11-04  Bruno Haible  <bruno@clisp.org>
+
+       New module 'mkdirat', split off from module 'openat'.
+       * m4/mkdirat.m4: New file. extracted from m4/openat.m4.
+       * m4/openat.m4 (gl_FUNC_OPENAT): Don't require gl_SYS_STAT_H_DEFAULTS.
+       Don't test for mkdirat. Don't set GNULIB_MKDIRAT, HAVE_MKDIRAT.
+       * modules/mkdirat: New file, extracted from modules/openat.
+       * modules/openat (Files): Remove lib/mkdirat.c.
+       (Depends-on): Remove mkdir.
+       (configure.ac): Remove AC_LIBOBJ of mkdirat.
+       (Include): Remove <sys/stat.h>.
+       * modules/mkdirat-tests: New file, extracted from modules/openat-tests.
+       * modules/openat-tests (Files): Remove tests/test-mkdirat.c,
+       tests/test-mkdir.h.
+       (Depends-on): Remove ignore-value.
+       (Makefile.am): Remove rules for test-mkdirat.
+       * doc/posix-functions/mkdirat.texi: Mention module 'mkdirat' instead
+       of module 'openat'.
+       * NEWS: Mention the change.
+
 2011-11-04  Bruno Haible  <bruno@clisp.org>
 
        closedir: Avoid warning on mingw.
diff --git a/NEWS b/NEWS
index 5cc3a6aaebbc1435c230f314e1419f65c54c34c6..495c81b8dfeb09f4075c910e366d3be8dd71c00e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,10 @@ User visible incompatible changes
 
 Date        Modules         Changes
 
+2011-11-04  openat          This module no longer provides the mkdirat()
+                            function. If you need this function, you now need
+                            to request the 'mkdirat' module.
+
 2011-11-04  openat          This module no longer provides the fstatat()
                             function. If you need this function, you now need
                             to request the 'fstatat' module.
index 603443c6d63e8f0737c2df0fce7120bee7e787fc..9609f2c79a8d189307651a5b11b6e6fb6b54f32c 100644 (file)
@@ -4,7 +4,7 @@
 
 POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/mkdirat.html}
 
-Gnulib module: openat
+Gnulib module: mkdirat
 
 Portability problems fixed by Gnulib:
 @itemize
diff --git a/m4/mkdirat.m4 b/m4/mkdirat.m4
new file mode 100644 (file)
index 0000000..f21f7e7
--- /dev/null
@@ -0,0 +1,23 @@
+# mkdirat.m4 serial 1
+dnl Copyright (C) 2004-2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_MKDIRAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([mkdirat])
+  if test $ac_cv_func_mkdirat != yes; then
+    HAVE_MKDIRAT=0
+  fi
+])
+
+# Prerequisite of mkdirat's declaration and of lib/mkdirat.c.
+AC_DEFUN([gl_PREREQ_MKDIRAT],
+[
+  AC_REQUIRE([AC_TYPE_MODE_T])
+])
index 86a8b629e1117dd39d7789bed729dd0c9c804dd4..97a821f9019f0a11c08826023cec3dc95d648d60 100644 (file)
@@ -1,4 +1,4 @@
-# serial 41
+# serial 42
 # See if we need to use our replacement for Solaris' openat et al functions.
 
 dnl Copyright (C) 2004-2011 Free Software Foundation, Inc.
@@ -13,11 +13,8 @@ AC_DEFUN([gl_FUNC_OPENAT],
   AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
   GNULIB_OPENAT=1
 
-  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
-  GNULIB_MKDIRAT=1
-
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  AC_CHECK_FUNCS_ONCE([mkdirat openat])
+  AC_CHECK_FUNCS_ONCE([openat])
   AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
   case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
   yes+yes)
@@ -31,9 +28,6 @@ AC_DEFUN([gl_FUNC_OPENAT],
     HAVE_OPENAT=0
     gl_PREREQ_OPENAT;;
   esac
-  if test $ac_cv_func_mkdirat != yes; then
-    HAVE_MKDIRAT=0
-  fi
 
   dnl This is tested at least via getcwd.c.
   gl_MODULE_INDICATOR([openat])
diff --git a/modules/mkdirat b/modules/mkdirat
new file mode 100644 (file)
index 0000000..d59689c
--- /dev/null
@@ -0,0 +1,43 @@
+Description:
+mkdirat() function: Create a directory relative to a given directory.
+
+Files:
+lib/mkdirat.c
+lib/at-func.c
+lib/openat.h
+lib/openat-priv.h
+m4/mkdirat.m4
+
+Depends-on:
+dirent
+dosname
+errno
+extensions
+fchdir
+fcntl-h
+mkdir           [test $HAVE_MKDIRAT = 0]
+openat
+openat-die
+save-cwd
+stdbool
+sys_stat
+unistd
+
+configure.ac:
+gl_FUNC_MKDIRAT
+if test $HAVE_MKDIRAT = 0; then
+  AC_LIBOBJ([mkdirat])
+  gl_PREREQ_MKDIRAT
+fi
+gl_SYS_STAT_MODULE_INDICATOR([mkdirat])
+
+Makefile.am:
+
+Include:
+<sys/stat.h>
+
+License:
+GPL
+
+Maintainer:
+Jim Meyering, Eric Blake
diff --git a/modules/mkdirat-tests b/modules/mkdirat-tests
new file mode 100644 (file)
index 0000000..103a5ac
--- /dev/null
@@ -0,0 +1,17 @@
+Files:
+tests/test-mkdirat.c
+tests/test-mkdir.h
+tests/signature.h
+tests/macros.h
+
+Depends-on:
+ignore-value
+progname
+symlink
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-mkdirat
+check_PROGRAMS += test-mkdirat
+test_mkdirat_LDADD = $(LDADD) @LIBINTL@
index 503c12135e982797aa2cf1d1aa76b8a4cf3659a6..c051e71823b8ac16edc027949245e822b898ef50 100644 (file)
@@ -3,7 +3,6 @@ Open a file at a directory.
 
 Files:
 lib/at-func.c
-lib/mkdirat.c
 lib/openat.c
 lib/openat.h
 lib/openat-priv.h
@@ -22,7 +21,6 @@ fstat
 gettext-h
 intprops
 largefile
-mkdir           [test $HAVE_MKDIRAT = 0]
 open
 openat-die
 save-cwd
@@ -33,9 +31,6 @@ unistd
 configure.ac:
 gl_FUNC_OPENAT
 AC_LIBOBJ([openat-proc])
-if test $HAVE_MKDIRAT = 0; then
-  AC_LIBOBJ([mkdirat])
-fi
 if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
   AC_LIBOBJ([openat])
 fi
@@ -44,7 +39,6 @@ Makefile.am:
 
 Include:
 <fcntl.h>
-<sys/stat.h>
 <unistd.h>
 "openat.h"
 
index cb38d2e114c471360f1e8b82c3834c6fb9598396..7cfe03e665a5aeaa2a322025caa94b61c1a69ba5 100644 (file)
@@ -1,21 +1,15 @@
 Files:
-tests/test-mkdir.h
-tests/test-mkdirat.c
 tests/test-openat.c
 tests/signature.h
 tests/macros.h
 
 Depends-on:
-ignore-value
 progname
 symlink
 
 configure.ac:
 
 Makefile.am:
-TESTS += \
-  test-mkdirat test-openat
-check_PROGRAMS += \
-  test-mkdirat test-openat
-test_mkdirat_LDADD = $(LDADD) @LIBINTL@
+TESTS += test-openat
+check_PROGRAMS += test-openat
 test_openat_LDADD = $(LDADD) @LIBINTL@