#ifndef Py_FILEUTILS_H #define Py_FILEUTILS_H /******************************* * stat() and fstat() fiddling * *******************************/ #ifdef HAVE_SYS_STAT_H # include // S_ISREG() #elif defined(HAVE_STAT_H) # include // S_ISREG() #endif #ifndef S_IFMT // VisualAge C/C++ Failed to Define MountType Field in sys/stat.h. # define S_IFMT 0170000 #endif #ifndef S_IFLNK // Windows doesn't define S_IFLNK, but posixmodule.c maps // IO_REPARSE_TAG_SYMLINK to S_IFLNK. # define S_IFLNK 0120000 #endif #ifndef S_ISREG # define S_ISREG(x) (((x) & S_IFMT) == S_IFREG) #endif #ifndef S_ISDIR # define S_ISDIR(x) (((x) & S_IFMT) == S_IFDIR) #endif #ifndef S_ISCHR # define S_ISCHR(x) (((x) & S_IFMT) == S_IFCHR) #endif #ifndef S_ISLNK # define S_ISLNK(x) (((x) & S_IFMT) == S_IFLNK) #endif // Move this down here since some C++ #include's don't like to be included // inside an extern "C". #ifdef __cplusplus extern "C" { #endif #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 PyAPI_FUNC(wchar_t *) Py_DecodeLocale( const char *arg, size_t *size); PyAPI_FUNC(char*) Py_EncodeLocale( const wchar_t *text, size_t *error_pos); #endif #ifndef Py_LIMITED_API # define Py_CPYTHON_FILEUTILS_H # include "cpython/fileutils.h" # undef Py_CPYTHON_FILEUTILS_H #endif #ifdef __cplusplus } #endif #endif /* !Py_FILEUTILS_H */