[3.9] bpo-41069: Make TESTFN and the CWD for tests containing non-ascii characters. (GH-21035). (GH-21156)
(cherry picked from commit 700cfa8c90a90016638bac13c4efd03786b2b2a0)
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 5302641..8e1ee85 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -4235,15 +4235,15 @@
pymarshal_write_long_to_file(PyObject* self, PyObject *args)
{
long value;
- char *filename;
+ PyObject *filename;
int version;
FILE *fp;
- if (!PyArg_ParseTuple(args, "lsi:pymarshal_write_long_to_file",
+ if (!PyArg_ParseTuple(args, "lOi:pymarshal_write_long_to_file",
&value, &filename, &version))
return NULL;
- fp = fopen(filename, "wb");
+ fp = _Py_fopen_obj(filename, "wb");
if (fp == NULL) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
@@ -4261,15 +4261,15 @@
pymarshal_write_object_to_file(PyObject* self, PyObject *args)
{
PyObject *obj;
- char *filename;
+ PyObject *filename;
int version;
FILE *fp;
- if (!PyArg_ParseTuple(args, "Osi:pymarshal_write_object_to_file",
+ if (!PyArg_ParseTuple(args, "OOi:pymarshal_write_object_to_file",
&obj, &filename, &version))
return NULL;
- fp = fopen(filename, "wb");
+ fp = _Py_fopen_obj(filename, "wb");
if (fp == NULL) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
@@ -4288,13 +4288,13 @@
{
int value;
long pos;
- char *filename;
+ PyObject *filename;
FILE *fp;
- if (!PyArg_ParseTuple(args, "s:pymarshal_read_short_from_file", &filename))
+ if (!PyArg_ParseTuple(args, "O:pymarshal_read_short_from_file", &filename))
return NULL;
- fp = fopen(filename, "rb");
+ fp = _Py_fopen_obj(filename, "rb");
if (fp == NULL) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
@@ -4313,13 +4313,13 @@
pymarshal_read_long_from_file(PyObject* self, PyObject *args)
{
long value, pos;
- char *filename;
+ PyObject *filename;
FILE *fp;
- if (!PyArg_ParseTuple(args, "s:pymarshal_read_long_from_file", &filename))
+ if (!PyArg_ParseTuple(args, "O:pymarshal_read_long_from_file", &filename))
return NULL;
- fp = fopen(filename, "rb");
+ fp = _Py_fopen_obj(filename, "rb");
if (fp == NULL) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
@@ -4339,13 +4339,13 @@
{
PyObject *obj;
long pos;
- char *filename;
+ PyObject *filename;
FILE *fp;
- if (!PyArg_ParseTuple(args, "s:pymarshal_read_last_object_from_file", &filename))
+ if (!PyArg_ParseTuple(args, "O:pymarshal_read_last_object_from_file", &filename))
return NULL;
- fp = fopen(filename, "rb");
+ fp = _Py_fopen_obj(filename, "rb");
if (fp == NULL) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
@@ -4363,13 +4363,13 @@
{
PyObject *obj;
long pos;
- char *filename;
+ PyObject *filename;
FILE *fp;
- if (!PyArg_ParseTuple(args, "s:pymarshal_read_object_from_file", &filename))
+ if (!PyArg_ParseTuple(args, "O:pymarshal_read_object_from_file", &filename))
return NULL;
- fp = fopen(filename, "rb");
+ fp = _Py_fopen_obj(filename, "rb");
if (fp == NULL) {
PyErr_SetFromErrno(PyExc_OSError);
return NULL;