Issue #8412: os.system() now accepts bytes, bytearray and str with

surrogates.
This commit is contained in:
Victor Stinner 2010-04-16 11:45:13 +00:00
parent ad02d239ff
commit cfa72789c4
2 changed files with 17 additions and 9 deletions

View file

@ -312,6 +312,9 @@ C-API
Library
-------
- Issue #8412: os.system() now accepts bytes, bytearray and str with
surrogates.
- Issue #2987: RFC2732 support for urlparse (IPv6 addresses). Patch by Tony
Locke and Hans Ulrich Niedermann.

View file

@ -2688,18 +2688,23 @@ posix_system(PyObject *self, PyObject *args)
wchar_t *command;
if (!PyArg_ParseTuple(args, "u:system", &command))
return NULL;
#else
char *command;
if (!PyArg_ParseTuple(args, "s:system", &command))
return NULL;
#endif
Py_BEGIN_ALLOW_THREADS
#ifdef MS_WINDOWS
sts = _wsystem(command);
#else
sts = system(command);
#endif
Py_END_ALLOW_THREADS
#else
PyObject *command_obj;
char *command;
if (!PyArg_ParseTuple(args, "O&:system",
PyUnicode_FSConverter, &command_obj))
return NULL;
command = bytes2str(command_obj, 1);
Py_BEGIN_ALLOW_THREADS
sts = system(command);
Py_END_ALLOW_THREADS
release_bytes(command_obj);
#endif
return PyLong_FromLong(sts);
}
#endif