]> granicus.if.org Git - python/commitdiff
Avoid forward-declaring the methods array.
authorMartin v. Löwis <martin@v.loewis.de>
Fri, 10 Mar 2006 11:20:04 +0000 (11:20 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Fri, 10 Mar 2006 11:20:04 +0000 (11:20 +0000)
Rename unicodedata.db* to unicodedata.ucd*

Doc/lib/libunicodedata.tex
Include/ucnhash.h
Lib/encodings/idna.py
Lib/stringprep.py
Modules/unicodedata.c

index b52b7084b7ce17329a3e18ac09e0e95e40876781..dcbda773bab3c1d891c3a9222f507c5a66a1548e 100644 (file)
@@ -131,7 +131,7 @@ The version of the Unicode database used in this module.
 \versionadded{2.3}
 \end{datadesc}
 
-\begin{datadesc}{db_3_2_0}
+\begin{datadesc}{ucd_3_2_0}
 This is an object that has the same methods as the entire
 module, but uses the Unicode database version 3.2 instead,
 for applications that require this specific version of
index b7d3f08b6552148bba9bc297e24ae17c984ff959..6231c98b30001b5df3827de4df65e9321dcbe0e5 100644 (file)
@@ -16,7 +16,7 @@ typedef struct {
     /* Get name for a given character code.  Returns non-zero if
        success, zero if not.  Does not set Python exceptions. 
        If self is NULL, data come from the default version of the database.
-       If it is not NULL, it should be a unicodedata.db_X_Y_Z object */
+       If it is not NULL, it should be a unicodedata.ucd_X_Y_Z object */
     int (*getname)(PyObject *self, Py_UCS4 code, char* buffer, int buflen);
 
     /* Get character code for a given name.  Same error handling
index fde710b395f4d9b97aee290d0b7e3886f149ddba..3d3ed23ce6199bef6945adcb41581775b1cdacad 100644 (file)
@@ -1,7 +1,7 @@
 # This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep)
 
 import stringprep, re, codecs
-from unicodedata import db_3_2_0 as unicodedata
+from unicodedata import ucd_3_2_0 as unicodedata
 
 # IDNA section 3.1
 dots = re.compile(u"[\u002E\u3002\uFF0E\uFF61]")
index 225aedb85ce9555f6a7630bcac10f45741a04320..1d49dd1dddd2acea4aa0c8d3944da16825f3d93c 100644 (file)
@@ -5,7 +5,7 @@ There are two kinds of tables: sets, for which a member test is provided,
 and mappings, for which a mapping function is provided.
 """
 
-from unicodedata import db_3_2_0 as unicodedata
+from unicodedata import ucd_3_2_0 as unicodedata
 
 assert unicodedata.unidata_version == '3.2.0'
 
index a8548376b9d2a302d5c0746891659152fc607246..a3152c3de4832f715448d7f6cc5c60f4a8aadf98 100644 (file)
@@ -70,67 +70,20 @@ typedef struct previous_version {
 
 #define get_old_record(self, v)    ((((PreviousDBVersion*)self)->getrecord)(v))
 
-/* Forward declaration */
-static PyMethodDef unicodedata_functions[];
-
 static PyMemberDef DB_members[] = {
        {"unidata_version", T_STRING, offsetof(PreviousDBVersion, name), READONLY},
         {NULL}
 };
 
-static PyTypeObject Xxo_Type = {
-       /* The ob_type field must be initialized in the module init function
-        * to be portable to Windows without using C++. */
-       PyObject_HEAD_INIT(NULL)
-       0,                      /*ob_size*/
-       "unicodedata.DB",               /*tp_name*/
-       sizeof(PreviousDBVersion),      /*tp_basicsize*/
-       0,                      /*tp_itemsize*/
-       /* methods */
-       (destructor)PyObject_Del, /*tp_dealloc*/
-       0,                      /*tp_print*/
-       0,                      /*tp_getattr*/
-       0,                      /*tp_setattr*/
-       0,                      /*tp_compare*/
-       0,                      /*tp_repr*/
-       0,                      /*tp_as_number*/
-       0,                      /*tp_as_sequence*/
-       0,                      /*tp_as_mapping*/
-       0,                      /*tp_hash*/
-        0,                      /*tp_call*/
-        0,                      /*tp_str*/
-        PyObject_GenericGetAttr,/*tp_getattro*/
-        0,                      /*tp_setattro*/
-        0,                      /*tp_as_buffer*/
-        Py_TPFLAGS_DEFAULT,     /*tp_flags*/
-        0,                      /*tp_doc*/
-        0,                      /*tp_traverse*/
-        0,                      /*tp_clear*/
-        0,                      /*tp_richcompare*/
-        0,                      /*tp_weaklistoffset*/
-        0,                      /*tp_iter*/
-        0,                      /*tp_iternext*/
-        unicodedata_functions,  /*tp_methods*/
-        DB_members,             /*tp_members*/
-        0,                      /*tp_getset*/
-        0,                      /*tp_base*/
-        0,                      /*tp_dict*/
-        0,                      /*tp_descr_get*/
-        0,                      /*tp_descr_set*/
-        0,                      /*tp_dictoffset*/
-        0,                      /*tp_init*/
-        0,                      /*tp_alloc*/
-        0,                      /*tp_new*/
-        0,                      /*tp_free*/
-        0,                      /*tp_is_gc*/
-};
+// forward declaration
+static PyTypeObject UCD_Type;
 
 static PyObject*
 new_previous_version(const char*name, const change_record* (*getrecord)(Py_UCS4),
                      Py_UCS4 (*normalization)(Py_UCS4))
 {
        PreviousDBVersion *self;
-       self = PyObject_New(PreviousDBVersion, &Xxo_Type);
+       self = PyObject_New(PreviousDBVersion, &UCD_Type);
        if (self == NULL)
                return NULL;
        self->name = name;
@@ -1163,7 +1116,52 @@ static PyMethodDef unicodedata_functions[] = {
     {NULL, NULL}               /* sentinel */
 };
 
-
+static PyTypeObject UCD_Type = {
+       /* The ob_type field must be initialized in the module init function
+        * to be portable to Windows without using C++. */
+       PyObject_HEAD_INIT(NULL)
+       0,                      /*ob_size*/
+       "unicodedata.UCD",              /*tp_name*/
+       sizeof(PreviousDBVersion),      /*tp_basicsize*/
+       0,                      /*tp_itemsize*/
+       /* methods */
+       (destructor)PyObject_Del, /*tp_dealloc*/
+       0,                      /*tp_print*/
+       0,                      /*tp_getattr*/
+       0,                      /*tp_setattr*/
+       0,                      /*tp_compare*/
+       0,                      /*tp_repr*/
+       0,                      /*tp_as_number*/
+       0,                      /*tp_as_sequence*/
+       0,                      /*tp_as_mapping*/
+       0,                      /*tp_hash*/
+        0,                      /*tp_call*/
+        0,                      /*tp_str*/
+        PyObject_GenericGetAttr,/*tp_getattro*/
+        0,                      /*tp_setattro*/
+        0,                      /*tp_as_buffer*/
+        Py_TPFLAGS_DEFAULT,     /*tp_flags*/
+        0,                      /*tp_doc*/
+        0,                      /*tp_traverse*/
+        0,                      /*tp_clear*/
+        0,                      /*tp_richcompare*/
+        0,                      /*tp_weaklistoffset*/
+        0,                      /*tp_iter*/
+        0,                      /*tp_iternext*/
+        unicodedata_functions,  /*tp_methods*/
+        DB_members,             /*tp_members*/
+        0,                      /*tp_getset*/
+        0,                      /*tp_base*/
+        0,                      /*tp_dict*/
+        0,                      /*tp_descr_get*/
+        0,                      /*tp_descr_set*/
+        0,                      /*tp_dictoffset*/
+        0,                      /*tp_init*/
+        0,                      /*tp_alloc*/
+        0,                      /*tp_new*/
+        0,                      /*tp_free*/
+        0,                      /*tp_is_gc*/
+};
 
 PyDoc_STRVAR(unicodedata_docstring,
 "This module provides access to the Unicode Character Database which\n\
@@ -1180,17 +1178,20 @@ initunicodedata(void)
 {
     PyObject *m, *v;
 
+    UCD_Type.ob_type = &PyType_Type;
+
     m = Py_InitModule3(
         "unicodedata", unicodedata_functions, unicodedata_docstring);
     if (!m)
         return;
 
     PyModule_AddStringConstant(m, "unidata_version", UNIDATA_VERSION);
+    PyModule_AddObject(m, "UCD", (PyObject*)&UCD_Type);
 
     /* Previous versions */
     v = new_previous_version("3.2.0", get_change_3_2_0, normalization_3_2_0);
     if (v != NULL)
-        PyModule_AddObject(m, "db_3_2_0", v);
+        PyModule_AddObject(m, "ucd_3_2_0", v);
 
     /* Export C API */
     v = PyCObject_FromVoidPtr((void *) &hashAPI, NULL);