From 9fc57a384825530635ef5ec093a31d864ea14f7c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 7 Nov 2018 00:44:03 +0100 Subject: [PATCH] bpo-35081: Add pycore_fileutils.h (GH-10371) Move Py_BUILD_CORE code from Include/fileutils.h to a new Include/internal/pycore_fileutils.h file. --- Include/fileutils.h | 59 +++++++---------------------- Include/internal/pycore_fileutils.h | 36 ++++++++++++++++++ Modules/getpath.c | 1 + Objects/unicodeobject.c | 1 + Python/coreconfig.c | 1 + Python/fileutils.c | 1 + Python/pathconfig.c | 1 + 7 files changed, 54 insertions(+), 46 deletions(-) create mode 100644 Include/internal/pycore_fileutils.h diff --git a/Include/fileutils.h b/Include/fileutils.h index 232d9664cd..fdd60fffcd 100644 --- a/Include/fileutils.h +++ b/Include/fileutils.h @@ -1,28 +1,9 @@ #ifndef Py_FILEUTILS_H #define Py_FILEUTILS_H - #ifdef __cplusplus extern "C" { #endif - -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03080000 -typedef enum { - _Py_ERROR_UNKNOWN=0, - _Py_ERROR_STRICT, - _Py_ERROR_SURROGATEESCAPE, - _Py_ERROR_REPLACE, - _Py_ERROR_IGNORE, - _Py_ERROR_BACKSLASHREPLACE, - _Py_ERROR_SURROGATEPASS, - _Py_ERROR_XMLCHARREFREPLACE, - _Py_ERROR_OTHER -} _Py_error_handler; - -PyAPI_FUNC(_Py_error_handler) _Py_GetErrorHandler(const char *errors); -#endif - - #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 PyAPI_FUNC(wchar_t *) Py_DecodeLocale( const char *arg, @@ -37,30 +18,22 @@ PyAPI_FUNC(char*) _Py_EncodeLocaleRaw( size_t *error_pos); #endif -#ifdef Py_BUILD_CORE -PyAPI_FUNC(int) _Py_DecodeUTF8Ex( - const char *arg, - Py_ssize_t arglen, - wchar_t **wstr, - size_t *wlen, - const char **reason, - _Py_error_handler errors); - -PyAPI_FUNC(int) _Py_EncodeUTF8Ex( - const wchar_t *text, - char **str, - size_t *error_pos, - const char **reason, - int raw_malloc, - _Py_error_handler errors); -PyAPI_FUNC(wchar_t*) _Py_DecodeUTF8_surrogateescape( - const char *arg, - Py_ssize_t arglen); -#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03080000 +typedef enum { + _Py_ERROR_UNKNOWN=0, + _Py_ERROR_STRICT, + _Py_ERROR_SURROGATEESCAPE, + _Py_ERROR_REPLACE, + _Py_ERROR_IGNORE, + _Py_ERROR_BACKSLASHREPLACE, + _Py_ERROR_SURROGATEPASS, + _Py_ERROR_XMLCHARREFREPLACE, + _Py_ERROR_OTHER +} _Py_error_handler; +PyAPI_FUNC(_Py_error_handler) _Py_GetErrorHandler(const char *errors); -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03080000 PyAPI_FUNC(int) _Py_DecodeLocaleEx( const char *arg, wchar_t **wstr, @@ -204,13 +177,7 @@ PyAPI_FUNC(int) _Py_GetLocaleconvNumeric( #endif /* Py_LIMITED_API */ - -#ifdef Py_BUILD_CORE -PyAPI_FUNC(int) _Py_GetForceASCII(void); -#endif - #ifdef __cplusplus } #endif - #endif /* !Py_FILEUTILS_H */ diff --git a/Include/internal/pycore_fileutils.h b/Include/internal/pycore_fileutils.h new file mode 100644 index 0000000000..d577e099d1 --- /dev/null +++ b/Include/internal/pycore_fileutils.h @@ -0,0 +1,36 @@ +#ifndef Py_INTERNAL_FILEUTILS_H +#define Py_INTERNAL_FILEUTILS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "Py_BUILD_CORE must be defined to include this header" +#endif + +PyAPI_FUNC(int) _Py_DecodeUTF8Ex( + const char *arg, + Py_ssize_t arglen, + wchar_t **wstr, + size_t *wlen, + const char **reason, + _Py_error_handler errors); + +PyAPI_FUNC(int) _Py_EncodeUTF8Ex( + const wchar_t *text, + char **str, + size_t *error_pos, + const char **reason, + int raw_malloc, + _Py_error_handler errors); + +PyAPI_FUNC(wchar_t*) _Py_DecodeUTF8_surrogateescape( + const char *arg, + Py_ssize_t arglen); + +PyAPI_FUNC(int) _Py_GetForceASCII(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FILEUTILS_H */ diff --git a/Modules/getpath.c b/Modules/getpath.c index 0e210710ec..6b443f62b0 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -2,6 +2,7 @@ #include "Python.h" #include "osdefs.h" +#include "pycore_fileutils.h" #include "pycore_pathconfig.h" #include "pycore_state.h" diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 3692da6412..5338781edc 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -40,6 +40,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #define PY_SSIZE_T_CLEAN #include "Python.h" +#include "pycore_fileutils.h" #include "pycore_state.h" #include "ucnhash.h" #include "bytes_methods.h" diff --git a/Python/coreconfig.c b/Python/coreconfig.c index b6fc33c3c9..c81cd8bab7 100644 --- a/Python/coreconfig.c +++ b/Python/coreconfig.c @@ -1,4 +1,5 @@ #include "Python.h" +#include "pycore_fileutils.h" #include "pycore_lifecycle.h" #include "pycore_mem.h" #include "pycore_pathconfig.h" diff --git a/Python/fileutils.c b/Python/fileutils.c index 2c4061e269..c9a8e58dd1 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -1,4 +1,5 @@ #include "Python.h" +#include "pycore_fileutils.h" #include "osdefs.h" #include diff --git a/Python/pathconfig.c b/Python/pathconfig.c index f8bcc2886a..2d8b417d31 100644 --- a/Python/pathconfig.c +++ b/Python/pathconfig.c @@ -3,6 +3,7 @@ #include "Python.h" #include "osdefs.h" #include "pycore_mem.h" +#include "pycore_fileutils.h" #include "pycore_pathconfig.h" #include "pycore_state.h" #include -- 2.40.0