Move some declarations from acl.h to acl-internal.h.
[gnulib.git] / lib / acl-internal.h
index c37a7c1..c23d6f4 100644 (file)
@@ -1,11 +1,11 @@
 /* Internal implementation of access control lists.
 
-   Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2008 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
    Written by Paul Eggert and Andreas Gruenbacher.  */
 
-#include <config.h>
-
 #include "acl.h"
 
 #include <stdbool.h>
 #include <stdlib.h>
 
+/* All systems define the ACL related API in <sys/acl.h>.  */
+#if HAVE_SYS_ACL_H
+# include <sys/acl.h>
+#endif
+#if defined HAVE_ACL && ! defined GETACLCNT && defined ACL_CNT
+# define GETACLCNT ACL_CNT
+#endif
+
+/* On Linux, additional ACL related API is available in <acl/libacl.h>.  */
 #ifdef HAVE_ACL_LIBACL_H
 # include <acl/libacl.h>
 #endif
 # define ENOTSUP (-1)
 #endif
 
-#if ENABLE_NLS
-# include <libintl.h>
-# define _(Text) gettext (Text)
-#else
-# define _(Text) Text
-#endif
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
 
 #ifndef HAVE_FCHMOD
 # define HAVE_FCHMOD false
 /* POSIX 1003.1e (draft 17) */
 #ifndef HAVE_ACL_GET_FD
 # define HAVE_ACL_GET_FD false
+# undef acl_get_fd
 # define acl_get_fd(fd) (NULL)
 #endif
 
 /* POSIX 1003.1e (draft 17) */
 #ifndef HAVE_ACL_SET_FD
 # define HAVE_ACL_SET_FD false
+# undef acl_set_fd
 # define acl_set_fd(fd, acl) (-1)
 #endif
 
@@ -80,8 +84,8 @@
 # define acl_from_mode(mode) (NULL)
 #endif
 
-#define ACL_NOT_WELL_SUPPORTED(Errno) \
-  (Errno == ENOTSUP || Errno == ENOSYS || Errno == EINVAL)
+#define ACL_NOT_WELL_SUPPORTED(Err) \
+  ((Err) == ENOTSUP || (Err) == ENOSYS || (Err) == EINVAL || (Err) == EBUSY)
 
 /* Define a replacement for acl_entries if needed.  */
 #if USE_ACL && HAVE_ACL_GET_FILE && HAVE_ACL_FREE && !HAVE_ACL_ENTRIES