X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=lib%2Fopenat.h;h=945e032836bf2841e32a7f82743b8e9c682ad98c;hb=659cae49714b93487242525dfa0e5737463d78d8;hp=d646250bb354a19331fc2287741d7961ec20ad66;hpb=dc84183747ce1703eb99685b5dbde1f65a143c06;p=debian%2Fgzip diff --git a/lib/openat.h b/lib/openat.h index d646250..945e032 100644 --- a/lib/openat.h +++ b/lib/openat.h @@ -1,5 +1,5 @@ /* provide a replacement openat function - Copyright (C) 2004-2006, 2008-2012 Free Software Foundation, Inc. + Copyright (C) 2004-2006, 2008-2018 Free Software Foundation, Inc. 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 @@ -12,7 +12,7 @@ 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, see . */ + along with this program. If not, see . */ /* written by Jim Meyering */ @@ -26,6 +26,11 @@ #include #include +#ifndef _GL_INLINE_HEADER_BEGIN + #error "Please include config.h first." +#endif +_GL_INLINE_HEADER_BEGIN + #if !HAVE_OPENAT int openat_permissive (int fd, char const *file, int flags, mode_t mode, @@ -49,13 +54,17 @@ _Noreturn void openat_save_fail (int); #if GNULIB_FCHOWNAT -static inline int +# ifndef FCHOWNAT_INLINE +# define FCHOWNAT_INLINE _GL_INLINE +# endif + +FCHOWNAT_INLINE int chownat (int fd, char const *file, uid_t owner, gid_t group) { return fchownat (fd, file, owner, group, 0); } -static inline int +FCHOWNAT_INLINE int lchownat (int fd, char const *file, uid_t owner, gid_t group) { return fchownat (fd, file, owner, group, AT_SYMLINK_NOFOLLOW); @@ -65,13 +74,17 @@ lchownat (int fd, char const *file, uid_t owner, gid_t group) #if GNULIB_FCHMODAT -static inline int +# ifndef FCHMODAT_INLINE +# define FCHMODAT_INLINE _GL_INLINE +# endif + +FCHMODAT_INLINE int chmodat (int fd, char const *file, mode_t mode) { return fchmodat (fd, file, mode, 0); } -static inline int +FCHMODAT_INLINE int lchmodat (int fd, char const *file, mode_t mode) { return fchmodat (fd, file, mode, AT_SYMLINK_NOFOLLOW); @@ -79,15 +92,19 @@ lchmodat (int fd, char const *file, mode_t mode) #endif -#if GNULIB_FSTATAT +#if GNULIB_STATAT + +# ifndef STATAT_INLINE +# define STATAT_INLINE _GL_INLINE +# endif -static inline int +STATAT_INLINE int statat (int fd, char const *name, struct stat *st) { return fstatat (fd, name, st, 0); } -static inline int +STATAT_INLINE int lstatat (int fd, char const *name, struct stat *st) { return fstatat (fd, name, st, AT_SYMLINK_NOFOLLOW); @@ -101,4 +118,6 @@ lstatat (int fd, char const *name, struct stat *st) wrappers are not provided for accessat or euidaccessat, so as to avoid dragging in -lgen on some platforms. */ +_GL_INLINE_HEADER_END + #endif /* _GL_HEADER_OPENAT */