Kaydet (Commit) fc55789c authored tarafından Alexander Belopolsky's avatar Alexander Belopolsky

Updated UCD version and unicode.org links to Unicode 6.0.0

üst 070ec70c
...@@ -13,14 +13,15 @@ ...@@ -13,14 +13,15 @@
single: character single: character
pair: Unicode; database pair: Unicode; database
This module provides access to the Unicode Character Database which defines This module provides access to the Unicode Character Database (UCD) which
character properties for all Unicode characters. The data in this database is defines character properties for all Unicode characters. The data contained in
based on the :file:`UnicodeData.txt` file version 5.2.0 which is publicly this database is compiled from the `UCD version 6.0.0
available from ftp://ftp.unicode.org/. <http://www.unicode.org/Public/6.0.0/ucd>`_.
The module uses the same names and symbols as defined by the UnicodeData File The module uses the same names and symbols as defined by Unicode
Format 5.2.0 (see http://www.unicode.org/reports/tr44/tr44-4.html). Standard Annex #44, `"Unicode Character Database"
It defines the following functions: <http://www.unicode.org/reports/tr44/tr44-6.html>`_. It defines the
following functions:
.. function:: lookup(name) .. function:: lookup(name)
......
...@@ -176,31 +176,21 @@ normalizeUserObj(PyObject *obj) ...@@ -176,31 +176,21 @@ normalizeUserObj(PyObject *obj)
if (fn->m_self == NULL) { if (fn->m_self == NULL) {
/* built-in function: look up the module name */ /* built-in function: look up the module name */
PyObject *mod = fn->m_module; PyObject *mod = fn->m_module;
const char *modname; PyObject *modname;
if (mod && PyUnicode_Check(mod)) { if (mod != NULL) {
/* XXX: The following will truncate module names with embedded if (PyUnicode_Check(mod)) {
* null-characters. It is unlikely that this can happen in modname = mod;
* practice and the concequences are not serious enough to Py_INCREF(modname);
* introduce extra checks here. }
*/ else if (PyModule_Check(mod)) {
modname = _PyUnicode_AsString(mod); modname = PyModule_GetNameObject(mod);
if (modname == NULL) { if (modname == NULL)
modname = "<encoding error>";
PyErr_Clear();
}
}
else if (mod && PyModule_Check(mod)) {
modname = PyModule_GetName(mod);
if (modname == NULL) {
PyErr_Clear(); PyErr_Clear();
modname = "builtins";
}
} }
else {
modname = "builtins";
} }
if (strcmp(modname, "builtins") != 0) if (modname != NULL &&
return PyUnicode_FromFormat("<%s.%s>", PyUnicode_CompareWithASCIIString(modname, "builtins") != 0)
return PyUnicode_FromFormat("<%U.%s>",
modname, modname,
fn->m_ml->ml_name); fn->m_ml->ml_name);
else else
......
...@@ -168,8 +168,8 @@ PyModule_GetDict(PyObject *m) ...@@ -168,8 +168,8 @@ PyModule_GetDict(PyObject *m)
return d; return d;
} }
const char * PyObject *
PyModule_GetName(PyObject *m) PyModule_GetNameObject(PyObject *m)
{ {
PyObject *d; PyObject *d;
PyObject *nameobj; PyObject *nameobj;
...@@ -185,7 +185,21 @@ PyModule_GetName(PyObject *m) ...@@ -185,7 +185,21 @@ PyModule_GetName(PyObject *m)
PyErr_SetString(PyExc_SystemError, "nameless module"); PyErr_SetString(PyExc_SystemError, "nameless module");
return NULL; return NULL;
} }
return _PyUnicode_AsString(nameobj); Py_INCREF(nameobj);
return nameobj;
}
const char *
PyModule_GetName(PyObject *m)
{
PyObject *nameobj;
char *utf8;
nameobj = PyModule_GetNameObject(m);
if (nameobj == NULL)
return NULL;
utf8 = _PyUnicode_AsString(nameobj);
Py_DECREF(nameobj);
return utf8;
} }
PyObject* PyObject*
......
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