From ca064402079f889226cb107b26b329891431c319 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 9 Dec 2020 20:54:31 +0100 Subject: [PATCH] bpo-32381: Remove unused _Py_fopen() function (GH-23711) Remove the private _Py_fopen() function which is no longer needed. Use _Py_wfopen() or _Py_fopen_obj() instead. --- Include/cpython/fileutils.h | 4 --- .../2020-12-09-00-35-25.bpo-32381.Je08Ny.rst | 3 +++ Python/fileutils.c | 27 ------------------- 3 files changed, 3 insertions(+), 31 deletions(-) create mode 100644 Misc/NEWS.d/next/C API/2020-12-09-00-35-25.bpo-32381.Je08Ny.rst diff --git a/Include/cpython/fileutils.h b/Include/cpython/fileutils.h index e79d03e24f5..312fd958284 100644 --- a/Include/cpython/fileutils.h +++ b/Include/cpython/fileutils.h @@ -95,10 +95,6 @@ PyAPI_FUNC(FILE *) _Py_wfopen( const wchar_t *path, const wchar_t *mode); -PyAPI_FUNC(FILE*) _Py_fopen( - const char *pathname, - const char *mode); - PyAPI_FUNC(FILE*) _Py_fopen_obj( PyObject *path, const char *mode); diff --git a/Misc/NEWS.d/next/C API/2020-12-09-00-35-25.bpo-32381.Je08Ny.rst b/Misc/NEWS.d/next/C API/2020-12-09-00-35-25.bpo-32381.Je08Ny.rst new file mode 100644 index 00000000000..ded75fa54a4 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2020-12-09-00-35-25.bpo-32381.Je08Ny.rst @@ -0,0 +1,3 @@ +Remove the private :c:func:`_Py_fopen` function which is no longer needed. +Use :c:func:`_Py_wfopen` or :c:func:`_Py_fopen_obj` instead. Patch by Victor +Stinner. diff --git a/Python/fileutils.c b/Python/fileutils.c index ac382821174..8dc90fbe2b2 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -1455,33 +1455,6 @@ _Py_wfopen(const wchar_t *path, const wchar_t *mode) return f; } -/* Wrapper to fopen(). - - The file descriptor is created non-inheritable. - - If interrupted by a signal, fail with EINTR. */ -FILE* -_Py_fopen(const char *pathname, const char *mode) -{ - PyObject *pathname_obj = PyUnicode_DecodeFSDefault(pathname); - if (pathname_obj == NULL) { - return NULL; - } - if (PySys_Audit("open", "Osi", pathname_obj, mode, 0) < 0) { - Py_DECREF(pathname_obj); - return NULL; - } - Py_DECREF(pathname_obj); - - FILE *f = fopen(pathname, mode); - if (f == NULL) - return NULL; - if (make_non_inheritable(fileno(f)) < 0) { - fclose(f); - return NULL; - } - return f; -} /* Open a file. Call _wfopen() on Windows, or encode the path to the filesystem encoding and call fopen() otherwise.