Kaydet (Commit) 3d7a90de authored tarafından Neal Norwitz's avatar Neal Norwitz

Get the locale and pwd tests working on the Solaris box where there

are some unicode values used.  I'm not sure if this is the correct
on all operating systems, but this works on Linux w/o unicode.
üst 8866e0ab
......@@ -143,7 +143,7 @@ PyLocale_localeconv(PyObject* self)
involved herein */
#define RESULT_STRING(s)\
x = PyUnicode_FromString(l->s);\
x = PyUnicode_DecodeUnicodeEscape(l->s, strlen(l->s), "strict");\
if (!x) goto failed;\
PyDict_SetItemString(result, #s, x);\
Py_XDECREF(x)
......@@ -471,8 +471,10 @@ PyLocale_nl_langinfo(PyObject* self, PyObject* args)
/* Check NULL as a workaround for GNU libc's returning NULL
instead of an empty string for nl_langinfo(ERA). */
const char *result = nl_langinfo(item);
result = result != NULL ? result : "";
/* XXX may have to convert this to wcs first. */
return PyUnicode_FromString(result != NULL ? result : "");
return PyUnicode_DecodeUnicodeEscape(result, strlen(result),
"strict");
}
PyErr_SetString(PyExc_ValueError, "unsupported langinfo constant");
return NULL;
......
......@@ -48,8 +48,11 @@ static PyTypeObject StructPwdType;
static void
sets(PyObject *v, int i, const char* val)
{
if (val)
PyStructSequence_SET_ITEM(v, i, PyUnicode_FromString(val));
if (val) {
PyObject *o =
PyUnicode_DecodeUnicodeEscape(val, strlen(val), "strict");
PyStructSequence_SET_ITEM(v, i, o);
}
else {
PyStructSequence_SET_ITEM(v, i, Py_None);
Py_INCREF(Py_None);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment