[Python-checkins] r80110 - in python/branches/release31-maint: Misc/NEWS Modules/posixmodule.c
victor.stinner
python-checkins at python.org
Fri Apr 16 14:47:52 CEST 2010
Author: victor.stinner
Date: Fri Apr 16 14:47:52 2010
New Revision: 80110
Log:
Merged revisions 80105 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r80105 | victor.stinner | 2010-04-16 13:45:13 +0200 (ven., 16 avril 2010) | 3 lines
Issue #8412: os.system() now accepts bytes, bytearray and str with
surrogates.
........
Modified:
python/branches/release31-maint/ (props changed)
python/branches/release31-maint/Misc/NEWS
python/branches/release31-maint/Modules/posixmodule.c
Modified: python/branches/release31-maint/Misc/NEWS
==============================================================================
--- python/branches/release31-maint/Misc/NEWS (original)
+++ python/branches/release31-maint/Misc/NEWS Fri Apr 16 14:47:52 2010
@@ -184,6 +184,9 @@
Library
-------
+- Issue #8412: os.system() now accepts bytes, bytearray and str with
+ surrogates.
+
- Issue #4282: Fix the main function of the profile module for a non-ASCII
script, open the file in binary mode and not in text mode with the default
(utf8) encoding.
Modified: python/branches/release31-maint/Modules/posixmodule.c
==============================================================================
--- python/branches/release31-maint/Modules/posixmodule.c (original)
+++ python/branches/release31-maint/Modules/posixmodule.c Fri Apr 16 14:47:52 2010
@@ -2814,18 +2814,23 @@
wchar_t *command;
if (!PyArg_ParseTuple(args, "u:system", &command))
return NULL;
+
+ Py_BEGIN_ALLOW_THREADS
+ sts = _wsystem(command);
+ Py_END_ALLOW_THREADS
#else
+ PyObject *command_obj;
char *command;
- if (!PyArg_ParseTuple(args, "s:system", &command))
+ if (!PyArg_ParseTuple(args, "O&:system",
+ PyUnicode_FSConverter, &command_obj))
return NULL;
-#endif
+
+ command = bytes2str(command_obj, 1);
Py_BEGIN_ALLOW_THREADS
-#ifdef MS_WINDOWS
- sts = _wsystem(command);
-#else
sts = system(command);
-#endif
Py_END_ALLOW_THREADS
+ release_bytes(command_obj);
+#endif
return PyLong_FromLong(sts);
}
#endif
More information about the Python-checkins
mailing list