| 
									
										
										
										
											2010-10-07 21:45:39 +00:00
										 |  |  | #ifndef Py_FILEUTILS_H
 | 
					
						
							|  |  |  | #define Py_FILEUTILS_H
 | 
					
						
							| 
									
										
										
										
											2023-09-03 23:32:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*******************************
 | 
					
						
							|  |  |  |  * stat() and fstat() fiddling * | 
					
						
							|  |  |  |  *******************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef HAVE_SYS_STAT_H
 | 
					
						
							|  |  |  | #  include <sys/stat.h>           // S_ISREG()
 | 
					
						
							|  |  |  | #elif defined(HAVE_STAT_H)
 | 
					
						
							|  |  |  | #  include <stat.h>               // 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".
 | 
					
						
							| 
									
										
										
										
											2010-10-07 21:45:39 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-27 14:57:39 +02:00
										 |  |  | #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
 | 
					
						
							| 
									
										
										
										
											2014-08-01 12:28:48 +02:00
										 |  |  | PyAPI_FUNC(wchar_t *) Py_DecodeLocale( | 
					
						
							| 
									
										
										
										
											2010-10-16 23:16:16 +00:00
										 |  |  |     const char *arg, | 
					
						
							|  |  |  |     size_t *size); | 
					
						
							| 
									
										
										
										
											2010-10-07 21:45:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-01 12:28:48 +02:00
										 |  |  | PyAPI_FUNC(char*) Py_EncodeLocale( | 
					
						
							| 
									
										
										
										
											2010-11-08 22:43:46 +00:00
										 |  |  |     const wchar_t *text, | 
					
						
							|  |  |  |     size_t *error_pos); | 
					
						
							| 
									
										
										
										
											2016-12-27 14:57:39 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-10-07 21:45:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-22 19:39:36 +02:00
										 |  |  | #ifndef Py_LIMITED_API
 | 
					
						
							| 
									
										
										
										
											2020-02-12 23:55:09 +01:00
										 |  |  | #  define Py_CPYTHON_FILEUTILS_H
 | 
					
						
							| 
									
										
										
										
											2021-10-15 01:50:04 +02:00
										 |  |  | #  include "cpython/fileutils.h"
 | 
					
						
							| 
									
										
										
										
											2020-02-12 23:55:09 +01:00
										 |  |  | #  undef Py_CPYTHON_FILEUTILS_H
 | 
					
						
							| 
									
										
										
										
											2018-10-18 01:05:04 +02:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-07 21:45:39 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif /* !Py_FILEUTILS_H */
 |