[Python-checkins] cpython (3.3): Close #18109: os.uname() now decodes fields from the locale encoding, and
victor.stinner
python-checkins at python.org
Mon Jun 3 22:15:07 CEST 2013
http://hg.python.org/cpython/rev/ffdee6b36305
changeset: 84019:ffdee6b36305
branch: 3.3
parent: 84016:f5906026a7e9
user: Victor Stinner <victor.stinner at gmail.com>
date: Mon Jun 03 22:07:27 2013 +0200
summary:
Close #18109: os.uname() now decodes fields from the locale encoding, and
socket.gethostname() now decodes the hostname from the locale encoding, instead
of using the UTF-8 encoding in strict mode.
files:
Misc/NEWS | 6 +++++-
Modules/posixmodule.c | 2 +-
Modules/socketmodule.c | 16 ++++++++--------
3 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,10 @@
Library
-------
+- Issue #18109: os.uname() now decodes fields from the locale encoding, and
+ socket.gethostname() now decodes the hostname from the locale encoding,
+ instead of using the UTF-8 encoding in strict mode.
+
- Issue #17403: urllib.parse.robotparser normalizes the urls before adding to
ruleline. This helps in handling certain types invalid urls in a conservative
manner.
@@ -69,7 +73,7 @@
- Issue #15392: Create a unittest framework for IDLE.
Initial patch by Rajagopalasarma Jayakrishnan.
-
+
- Issue #14146: Highlight source line while debugging on Windows.
- Issue #17532: Always include Options menu for IDLE on OS X.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -4514,7 +4514,7 @@
#define SET(i, field) \
{ \
- PyObject *o = PyUnicode_DecodeASCII(field, strlen(field), NULL); \
+ PyObject *o = PyUnicode_DecodeFSDefault(field); \
if (!o) { \
Py_DECREF(value); \
return NULL; \
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -1702,7 +1702,7 @@
return 0;
}
#endif
-
+
#ifdef PF_SYSTEM
case PF_SYSTEM:
switch (s->sock_proto) {
@@ -1710,10 +1710,10 @@
case SYSPROTO_CONTROL:
{
struct sockaddr_ctl *addr;
-
+
addr = (struct sockaddr_ctl *)addr_ret;
addr->sc_family = AF_SYSTEM;
- addr->ss_sysaddr = AF_SYS_CONTROL;
+ addr->ss_sysaddr = AF_SYS_CONTROL;
if (PyUnicode_Check(args)) {
struct ctl_info info;
@@ -1739,17 +1739,17 @@
"cannot find kernel control with provided name");
return 0;
}
-
+
addr->sc_id = info.ctl_id;
addr->sc_unit = 0;
} else if (!PyArg_ParseTuple(args, "II",
&(addr->sc_id), &(addr->sc_unit))) {
PyErr_SetString(PyExc_TypeError, "getsockaddrarg: "
"expected str or tuple of two ints");
-
+
return 0;
}
-
+
*len_ret = sizeof(*addr);
return 1;
}
@@ -1866,7 +1866,7 @@
return 1;
}
#endif
-
+
#ifdef PF_SYSTEM
case PF_SYSTEM:
switch(s->sock_proto) {
@@ -4111,7 +4111,7 @@
if (res < 0)
return set_error();
buf[sizeof buf - 1] = '\0';
- return PyUnicode_FromString(buf);
+ return PyUnicode_DecodeFSDefault(buf);
#endif
}
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list