Diff for /embedaddon/libiconv/srclib/sys_stat.in.h between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/05/29 09:29:43 version 1.1.1.2, 2021/03/17 13:38:46
Line 1 Line 1
/* Provide a more complete sys/stat header file./* Provide a more complete sys/stat.h header file.
   Copyright (C) 2005-2011 Free Software Foundation, Inc.   Copyright (C) 2005-2019 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     it under the terms of the GNU General Public License as published by
Line 12 Line 12
    GNU General Public License for more details.     GNU General Public License for more details.
   
    You should have received a copy of the GNU General Public License     You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */ 
   
 /* Written by Eric Blake, Paul Eggert, and Jim Meyering.  */  /* Written by Eric Blake, Paul Eggert, and Jim Meyering.  */
   
Line 36 Line 35
   
 #ifndef _@GUARD_PREFIX@_SYS_STAT_H  #ifndef _@GUARD_PREFIX@_SYS_STAT_H
   
/* Get nlink_t.  *//* Get nlink_t.
    May also define off_t to a 64-bit type on native Windows.  */
 #include <sys/types.h>  #include <sys/types.h>
   
 /* Get struct timespec.  */  /* Get struct timespec.  */
Line 54 Line 54
   
 /* The definition of _GL_WARN_ON_USE is copied here.  */  /* The definition of _GL_WARN_ON_USE is copied here.  */
   
   /* Before doing "#define mknod rpl_mknod" below, we need to include all
      headers that may declare mknod().  OS/2 kLIBC declares mknod() in
      <unistd.h>, not in <sys/stat.h>.  */
   #ifdef __KLIBC__
   # include <unistd.h>
   #endif
   
 /* Before doing "#define mkdir rpl_mkdir" below, we need to include all  /* Before doing "#define mkdir rpl_mkdir" below, we need to include all
   headers that may declare mkdir().  */   headers that may declare mkdir().  Native Windows platforms declare mkdir
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__   in <io.h> and/or <direct.h>, not in <sys/stat.h>.  */
 #if defined _WIN32 && ! defined __CYGWIN__
 # include <io.h>     /* mingw32, mingw64 */  # include <io.h>     /* mingw32, mingw64 */
# include <direct.h> /* mingw64 */# include <direct.h> /* mingw64, MSVC 9 */
 #endif  #endif
   
   /* Native Windows platforms declare umask() in <io.h>.  */
   #if 0 && (defined _WIN32 && ! defined __CYGWIN__)
   # include <io.h>
   #endif
   
   /* Large File Support on native Windows.  */
   #if @WINDOWS_64_BIT_ST_SIZE@
   # define stat _stati64
   #endif
   
   /* Optionally, override 'struct stat' on native Windows.  */
   #if @GNULIB_OVERRIDES_STRUCT_STAT@
   
   # undef stat
   # if @GNULIB_STAT@
   #  define stat rpl_stat
   # else
      /* Provoke a clear link error if stat() is used as a function and
         module 'stat' is not in use.  */
   #  define stat stat_used_without_requesting_gnulib_module_stat
   # endif
   
   # if !GNULIB_defined_struct_stat
   struct stat
   {
     dev_t st_dev;
     ino_t st_ino;
     mode_t st_mode;
     nlink_t st_nlink;
   #  if 0
     uid_t st_uid;
   #  else /* uid_t is not defined by default on native Windows.  */
     short st_uid;
   #  endif
   #  if 0
     gid_t st_gid;
   #  else /* gid_t is not defined by default on native Windows.  */
     short st_gid;
   #  endif
     dev_t st_rdev;
     off_t st_size;
   #  if 0
     blksize_t st_blksize;
     blkcnt_t st_blocks;
   #  endif
   
   #  if @WINDOWS_STAT_TIMESPEC@
     struct timespec st_atim;
     struct timespec st_mtim;
     struct timespec st_ctim;
   #  else
     time_t st_atime;
     time_t st_mtime;
     time_t st_ctime;
   #  endif
   };
   #  if @WINDOWS_STAT_TIMESPEC@
   #   define st_atime st_atim.tv_sec
   #   define st_mtime st_mtim.tv_sec
   #   define st_ctime st_ctim.tv_sec
       /* Indicator, for gnulib internal purposes.  */
   #   define _GL_WINDOWS_STAT_TIMESPEC 1
   #  endif
   #  define GNULIB_defined_struct_stat 1
   # endif
   
   /* Other possible values of st_mode.  */
   # if 0
   #  define _S_IFBLK  0x6000
   # endif
   # if 0
   #  define _S_IFLNK  0xA000
   # endif
   # if 0
   #  define _S_IFSOCK 0xC000
   # endif
   
   #endif
   
   #ifndef S_IFIFO
   # ifdef _S_IFIFO
   #  define S_IFIFO _S_IFIFO
   # endif
   #endif
   
 #ifndef S_IFMT  #ifndef S_IFMT
 # define S_IFMT 0170000  # define S_IFMT 0170000
 #endif  #endif
Line 133 Line 226
 # endif  # endif
 #endif  #endif
   
   #ifndef S_ISMPX /* AIX */
   # define S_ISMPX(m) 0
   #endif
   
 #ifndef S_ISNAM /* Xenix */  #ifndef S_ISNAM /* Xenix */
 # ifdef S_IFNAM  # ifdef S_IFNAM
 #  define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM)  #  define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM)
Line 312  _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - Line 409  _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable -
 #endif  #endif
   
   
#if @REPLACE_FSTAT@#if @GNULIB_FSTAT@
if !(defined __cplusplus && defined GNULIB_NAMESPACE)# if @REPLACE_FSTAT@
#  define fstat rpl_fstat#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
endif#   undef fstat
 #   define fstat rpl_fstat
 #  endif
 _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2)));  _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2)));
 _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf));  _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf));
#else# else
 _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf));  _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf));
#endif# endif
 _GL_CXXALIASWARN (fstat);  _GL_CXXALIASWARN (fstat);
   #elif @GNULIB_OVERRIDES_STRUCT_STAT@
   # undef fstat
   # define fstat fstat_used_without_requesting_gnulib_module_fstat
   #elif @WINDOWS_64_BIT_ST_SIZE@
   /* Above, we define stat to _stati64.  */
   # define fstat _fstati64
   #elif defined GNULIB_POSIXCHECK
   # undef fstat
   # if HAVE_RAW_DECL_FSTAT
   _GL_WARN_ON_USE (fstat, "fstat has portability problems - "
                    "use gnulib module fstat for portability");
   # endif
   #endif
   
   
 #if @GNULIB_FSTATAT@  #if @GNULIB_FSTATAT@
Line 345  _GL_CXXALIAS_SYS (fstatat, int, Line 457  _GL_CXXALIAS_SYS (fstatat, int,
                   (int fd, char const *name, struct stat *st, int flags));                    (int fd, char const *name, struct stat *st, int flags));
 # endif  # endif
 _GL_CXXALIASWARN (fstatat);  _GL_CXXALIASWARN (fstatat);
   #elif @GNULIB_OVERRIDES_STRUCT_STAT@
   # undef fstatat
   # define fstatat fstatat_used_without_requesting_gnulib_module_fstatat
 #elif defined GNULIB_POSIXCHECK  #elif defined GNULIB_POSIXCHECK
 # undef fstatat  # undef fstatat
 # if HAVE_RAW_DECL_FSTATAT  # if HAVE_RAW_DECL_FSTATAT
Line 443  _GL_CXXALIAS_SYS (lstat, int, (const char *name, struc Line 558  _GL_CXXALIAS_SYS (lstat, int, (const char *name, struc
 # if @HAVE_LSTAT@  # if @HAVE_LSTAT@
 _GL_CXXALIASWARN (lstat);  _GL_CXXALIASWARN (lstat);
 # endif  # endif
   #elif @GNULIB_OVERRIDES_STRUCT_STAT@
   # undef lstat
   # define lstat lstat_used_without_requesting_gnulib_module_lstat
 #elif defined GNULIB_POSIXCHECK  #elif defined GNULIB_POSIXCHECK
 # undef lstat  # undef lstat
 # if HAVE_RAW_DECL_LSTAT  # if HAVE_RAW_DECL_LSTAT
Line 465  _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_ Line 583  _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_
    Additionally, it declares _mkdir (and depending on compile flags, an     Additionally, it declares _mkdir (and depending on compile flags, an
    alias mkdir), only in the nonstandard includes <direct.h> and <io.h>,     alias mkdir), only in the nonstandard includes <direct.h> and <io.h>,
    which are included above.  */     which are included above.  */
# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__# if defined _WIN32 && ! defined __CYGWIN__
   
 #  if !GNULIB_defined_rpl_mkdir  #  if !GNULIB_defined_rpl_mkdir
static inline intstatic int
 rpl_mkdir (char const *name, mode_t mode)  rpl_mkdir (char const *name, mode_t mode)
 {  {
   return _mkdir (name);    return _mkdir (name);
Line 592  _GL_WARN_ON_USE (mknodat, "mknodat is not portable - " Line 710  _GL_WARN_ON_USE (mknodat, "mknodat is not portable - "
   
 #if @GNULIB_STAT@  #if @GNULIB_STAT@
 # if @REPLACE_STAT@  # if @REPLACE_STAT@
/* We can't use the object-like #define stat rpl_stat, because of#  if !@GNULIB_OVERRIDES_STRUCT_STAT@
   struct stat.  This means that rpl_stat will not be used if the user    /* We can't use the object-like #define stat rpl_stat, because of
   does (stat)(a,b).  Oh well.  */       struct stat.  This means that rpl_stat will not be used if the user
#  undef stat       does (stat)(a,b).  Oh well.  */
#  ifdef _LARGE_FILES#   if defined _AIX && defined stat && defined _LARGE_FILES
    /* With _LARGE_FILES defined, AIX (only) defines stat to stat64,     /* With _LARGE_FILES defined, AIX (only) defines stat to stat64,
       so we have to replace stat64() instead of stat(). */        so we have to replace stat64() instead of stat(). */
#   define stat stat64#    undef stat64
#   undef stat64#    define stat64(name, st) rpl_stat (name, st)
#   define stat64(name, st) rpl_stat (name, st)#   elif @WINDOWS_64_BIT_ST_SIZE@
#  else /* !_LARGE_FILES */     /* Above, we define stat to _stati64.  */
#   define stat(name, st) rpl_stat (name, st)#    if defined __MINGW32__ && defined _stati64
#  endif /* !_LARGE_FILES */#     ifndef _USE_32BIT_TIME_T
        /* The system headers define _stati64 to _stat64.  */
 #      undef _stat64
 #      define _stat64(name, st) rpl_stat (name, st)
 #     endif
 #    elif defined _MSC_VER && defined _stati64
 #     ifdef _USE_32BIT_TIME_T
        /* The system headers define _stati64 to _stat32i64.  */
 #      undef _stat32i64
 #      define _stat32i64(name, st) rpl_stat (name, st)
 #     else
        /* The system headers define _stati64 to _stat64.  */
 #      undef _stat64
 #      define _stat64(name, st) rpl_stat (name, st)
 #     endif
 #    else
 #     undef _stati64
 #     define _stati64(name, st) rpl_stat (name, st)
 #    endif
 #   elif defined __MINGW32__ && defined stat
 #    ifdef _USE_32BIT_TIME_T
       /* The system headers define stat to _stat32i64.  */
 #     undef _stat32i64
 #     define _stat32i64(name, st) rpl_stat (name, st)
 #    else
       /* The system headers define stat to _stat64.  */
 #     undef _stat64
 #     define _stat64(name, st) rpl_stat (name, st)
 #    endif
 #   elif defined _MSC_VER && defined stat
 #    ifdef _USE_32BIT_TIME_T
       /* The system headers define stat to _stat32.  */
 #     undef _stat32
 #     define _stat32(name, st) rpl_stat (name, st)
 #    else
       /* The system headers define stat to _stat64i32.  */
 #     undef _stat64i32
 #     define _stat64i32(name, st) rpl_stat (name, st)
 #    endif
 #   else /* !(_AIX || __MINGW32__ || _MSC_VER) */
 #    undef stat
 #    define stat(name, st) rpl_stat (name, st)
 #   endif /* !_LARGE_FILES */
 #  endif /* !@GNULIB_OVERRIDES_STRUCT_STAT@ */
 _GL_EXTERN_C int stat (const char *name, struct stat *buf)  _GL_EXTERN_C int stat (const char *name, struct stat *buf)
                       _GL_ARG_NONNULL ((1, 2));                        _GL_ARG_NONNULL ((1, 2));
 # endif  # endif
   #elif @GNULIB_OVERRIDES_STRUCT_STAT@
   /* see above:
     #define stat stat_used_without_requesting_gnulib_module_stat
    */
 #elif defined GNULIB_POSIXCHECK  #elif defined GNULIB_POSIXCHECK
 # undef stat  # undef stat
 # if HAVE_RAW_DECL_STAT  # if HAVE_RAW_DECL_STAT

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>