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