@@ -35,8 +35,10 @@ typedef enum {
3535 _Py_ERROR_OTHER
3636} _Py_error_handler ;
3737
38+ // Export for '_testinternalcapi' shared extension
3839PyAPI_FUNC (_Py_error_handler ) _Py_GetErrorHandler (const char * errors );
3940
41+ // Export for '_testinternalcapi' shared extension
4042PyAPI_FUNC (int ) _Py_DecodeLocaleEx (
4143 const char * arg ,
4244 wchar_t * * wstr ,
@@ -45,6 +47,7 @@ PyAPI_FUNC(int) _Py_DecodeLocaleEx(
4547 int current_locale ,
4648 _Py_error_handler errors );
4749
50+ // Export for '_testinternalcapi' shared extension
4851PyAPI_FUNC (int ) _Py_EncodeLocaleEx (
4952 const wchar_t * text ,
5053 char * * str ,
@@ -98,23 +101,27 @@ struct _Py_stat_struct {
98101# define _Py_stat_struct stat
99102#endif
100103
104+ // Export for 'mmap' shared extension
101105PyAPI_FUNC (int ) _Py_fstat (
102106 int fd ,
103107 struct _Py_stat_struct * status );
104108
109+ // Export for 'mmap' shared extension
105110PyAPI_FUNC (int ) _Py_fstat_noraise (
106111 int fd ,
107112 struct _Py_stat_struct * status );
108113
114+ // Export for '_tkinter' shared extension
109115PyAPI_FUNC (int ) _Py_stat (
110116 PyObject * path ,
111117 struct stat * status );
112118
113- // Export for 'select' shared extension (Solaris newDevPollObject() uses it )
119+ // Export for 'select' shared extension (Solaris newDevPollObject())
114120PyAPI_FUNC (int ) _Py_open (
115121 const char * pathname ,
116122 int flags );
117123
124+ // Export for '_posixsubprocess' shared extension
118125PyAPI_FUNC (int ) _Py_open_noraise (
119126 const char * pathname ,
120127 int flags );
@@ -128,12 +135,13 @@ extern Py_ssize_t _Py_read(
128135 void * buf ,
129136 size_t count );
130137
131- // Export for 'select' shared extension (Solaris devpoll_flush() uses it )
138+ // Export for 'select' shared extension (Solaris devpoll_flush())
132139PyAPI_FUNC (Py_ssize_t ) _Py_write (
133140 int fd ,
134141 const void * buf ,
135142 size_t count );
136143
144+ // Export for '_posixsubprocess' shared extension
137145PyAPI_FUNC (Py_ssize_t ) _Py_write_noraise (
138146 int fd ,
139147 const void * buf ,
@@ -165,12 +173,15 @@ extern wchar_t* _Py_wgetcwd(
165173
166174extern int _Py_get_inheritable (int fd );
167175
176+ // Export for '_socket' shared extension
168177PyAPI_FUNC (int ) _Py_set_inheritable (int fd , int inheritable ,
169178 int * atomic_flag_works );
170179
180+ // Export for '_posixsubprocess' shared extension
171181PyAPI_FUNC (int ) _Py_set_inheritable_async_safe (int fd , int inheritable ,
172182 int * atomic_flag_works );
173183
184+ // Export for '_socket' shared extension
174185PyAPI_FUNC (int ) _Py_dup (int fd );
175186
176187extern int _Py_get_blocking (int fd );
@@ -180,6 +191,7 @@ extern int _Py_set_blocking(int fd, int blocking);
180191#ifdef MS_WINDOWS
181192extern void * _Py_get_osfhandle_noraise (int fd );
182193
194+ // Export for '_testconsole' shared extension
183195PyAPI_FUNC (void * ) _Py_get_osfhandle (int fd );
184196
185197extern int _Py_open_osfhandle_noraise (void * handle , int flags );
@@ -234,7 +246,7 @@ extern int _Py_GetLocaleconvNumeric(
234246 PyObject * * decimal_point ,
235247 PyObject * * thousands_sep );
236248
237- PyAPI_FUNC ( void ) _Py_closerange (int first , int last );
249+ extern void _Py_closerange (int first , int last );
238250
239251extern wchar_t * _Py_GetLocaleEncoding (void );
240252extern PyObject * _Py_GetLocaleEncodingObject (void );
@@ -262,7 +274,10 @@ extern int _Py_add_relfile(wchar_t *dirname,
262274 const wchar_t * relfile ,
263275 size_t bufsize );
264276extern size_t _Py_find_basename (const wchar_t * filename );
277+
278+ // Export for '_testinternalcapi' shared extension
265279PyAPI_FUNC (wchar_t * ) _Py_normpath (wchar_t * path , Py_ssize_t size );
280+
266281extern wchar_t * _Py_normpath_and_size (wchar_t * path , Py_ssize_t size , Py_ssize_t * length );
267282
268283// The Windows Games API family does not provide these functions
0 commit comments