This commit is contained in:
Kovid Goyal 2019-02-27 06:42:51 +05:30
commit 9fba382f7f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -58,7 +58,11 @@ Face_init(Face *self, PyObject *args, PyObject *kwds)
Py_ssize_t sz; Py_ssize_t sz;
PyObject *ft; PyObject *ft;
#if PY_MAJOR_VERSION >= 3
if (!PyArg_ParseTuple(args, "Oy#", &ft, &data, &sz)) return -1;
#else
if (!PyArg_ParseTuple(args, "Os#", &ft, &data, &sz)) return -1; if (!PyArg_ParseTuple(args, "Os#", &ft, &data, &sz)) return -1;
#endif
Py_BEGIN_ALLOW_THREADS; Py_BEGIN_ALLOW_THREADS;
error = FT_New_Memory_Face( ( (FreeType*)ft )->library, error = FT_New_Memory_Face( ( (FreeType*)ft )->library,
@ -181,45 +185,44 @@ init(FreeType *self, PyObject *args, PyObject *kwds)
// }}} // }}}
static PyTypeObject FaceType = { // {{{ static PyTypeObject FaceType = { // {{{
PyObject_HEAD_INIT(NULL) PyVarObject_HEAD_INIT(NULL, 0)
0, /*ob_size*/ /* tp_name */ "freetype.Face",
"freetype.Face", /*tp_name*/ /* tp_basicsize */ sizeof(Face),
sizeof(Face), /*tp_basicsize*/ /* tp_itemsize */ 0,
0, /*tp_itemsize*/ /* tp_dealloc */ (destructor)Face_dealloc,
(destructor)Face_dealloc, /*tp_dealloc*/ /* tp_print */ 0,
0, /*tp_print*/ /* tp_getattr */ 0,
0, /*tp_getattr*/ /* tp_setattr */ 0,
0, /*tp_setattr*/ /* tp_compare */ 0,
0, /*tp_compare*/ /* tp_repr */ 0,
0, /*tp_repr*/ /* tp_as_number */ 0,
0, /*tp_as_number*/ /* tp_as_sequence */ 0,
0, /*tp_as_sequence*/ /* tp_as_mapping */ 0,
0, /*tp_as_mapping*/ /* tp_hash */ 0,
0, /*tp_hash */ /* tp_call */ 0,
0, /*tp_call*/ /* tp_str */ 0,
0, /*tp_str*/ /* tp_getattro */ 0,
0, /*tp_getattro*/ /* tp_setattro */ 0,
0, /*tp_setattro*/ /* tp_as_buffer */ 0,
0, /*tp_as_buffer*/ /* tp_flags */ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/ /* tp_doc */ "Face",
"Face", /* tp_doc */ /* tp_traverse */ 0,
0, /* tp_traverse */ /* tp_clear */ 0,
0, /* tp_clear */ /* tp_richcompare */ 0,
0, /* tp_richcompare */ /* tp_weaklistoffset */ 0,
0, /* tp_weaklistoffset */ /* tp_iter */ 0,
0, /* tp_iter */ /* tp_iternext */ 0,
0, /* tp_iternext */ /* tp_methods */ Face_methods,
Face_methods, /* tp_methods */ /* tp_members */ 0,
0, /* tp_members */ /* tp_getset */ Face_getsetters,
Face_getsetters, /* tp_getset */ /* tp_base */ 0,
0, /* tp_base */ /* tp_dict */ 0,
0, /* tp_dict */ /* tp_descr_get */ 0,
0, /* tp_descr_get */ /* tp_descr_set */ 0,
0, /* tp_descr_set */ /* tp_dictoffset */ 0,
0, /* tp_dictoffset */ /* tp_init */ (initproc)Face_init,
(initproc)Face_init, /* tp_init */ /* tp_alloc */ 0,
0, /* tp_alloc */ /* tp_new */ 0,
0, /* tp_new */
}; // }}} }; // }}}
static PyObject* static PyObject*
@ -247,75 +250,100 @@ static PyMethodDef FreeType_methods[] = {
static PyTypeObject FreeTypeType = { // {{{ static PyTypeObject FreeTypeType = { // {{{
PyObject_HEAD_INIT(NULL) PyVarObject_HEAD_INIT(NULL, 0)
0, /*ob_size*/ /* tp_name */ "freetype.FreeType",
"freetype.FreeType", /*tp_name*/ /* tp_basicsize */ sizeof(FreeType),
sizeof(FreeType), /*tp_basicsize*/ /* tp_itemsize */ 0,
0, /*tp_itemsize*/ /* tp_dealloc */ (destructor)dealloc,
(destructor)dealloc, /*tp_dealloc*/ /* tp_print */ 0,
0, /*tp_print*/ /* tp_getattr */ 0,
0, /*tp_getattr*/ /* tp_setattr */ 0,
0, /*tp_setattr*/ /* tp_compare */ 0,
0, /*tp_compare*/ /* tp_repr */ 0,
0, /*tp_repr*/ /* tp_as_number */ 0,
0, /*tp_as_number*/ /* tp_as_sequence */ 0,
0, /*tp_as_sequence*/ /* tp_as_mapping */ 0,
0, /*tp_as_mapping*/ /* tp_hash */ 0,
0, /*tp_hash */ /* tp_call */ 0,
0, /*tp_call*/ /* tp_str */ 0,
0, /*tp_str*/ /* tp_getattro */ 0,
0, /*tp_getattro*/ /* tp_setattro */ 0,
0, /*tp_setattro*/ /* tp_as_buffer */ 0,
0, /*tp_as_buffer*/ /* tp_flags */ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/ /* tp_doc */ "FreeType",
"FreeType", /* tp_doc */ /* tp_traverse */ 0,
0, /* tp_traverse */ /* tp_clear */ 0,
0, /* tp_clear */ /* tp_richcompare */ 0,
0, /* tp_richcompare */ /* tp_weaklistoffset */ 0,
0, /* tp_weaklistoffset */ /* tp_iter */ 0,
0, /* tp_iter */ /* tp_iternext */ 0,
0, /* tp_iternext */ /* tp_methods */ FreeType_methods,
FreeType_methods, /* tp_methods */ /* tp_members */ 0,
0, /* tp_members */ /* tp_getset */ 0,
0, /* tp_getset */ /* tp_base */ 0,
0, /* tp_base */ /* tp_dict */ 0,
0, /* tp_dict */ /* tp_descr_get */ 0,
0, /* tp_descr_get */ /* tp_descr_set */ 0,
0, /* tp_descr_set */ /* tp_dictoffset */ 0,
0, /* tp_dictoffset */ /* tp_init */ (initproc)init,
(initproc)init, /* tp_init */ /* tp_alloc */ 0,
0, /* tp_alloc */ /* tp_new */ 0,
0, /* tp_new */
}; // }}} }; // }}}
static static char freetype_doc[] = "Interface to freetype";
PyMethodDef methods[] = {
static PyMethodDef freetype_methods[] = {
{NULL, NULL, 0, NULL} {NULL, NULL, 0, NULL}
}; };
CALIBRE_MODINIT_FUNC #if PY_MAJOR_VERSION >= 3
initfreetype(void) { #define INITERROR return NULL
#define INITMODULE PyModule_Create(&freetype_module)
static struct PyModuleDef freetype_module = {
/* m_base */ PyModuleDef_HEAD_INIT,
/* m_name */ "freetype",
/* m_doc */ freetype_doc,
/* m_size */ -1,
/* m_methods */ freetype_methods,
/* m_slots */ 0,
/* m_traverse */ 0,
/* m_clear */ 0,
/* m_free */ 0,
};
CALIBRE_MODINIT_FUNC PyInit_freetype(void) {
#else
#define INITERROR return
#define INITMODULE Py_InitModule3("freetype", freetype_methods, freetype_doc)
CALIBRE_MODINIT_FUNC initfreetype(void) {
#endif
PyObject *m; PyObject *m;
FreeTypeType.tp_new = PyType_GenericNew; FreeTypeType.tp_new = PyType_GenericNew;
if (PyType_Ready(&FreeTypeType) < 0) if (PyType_Ready(&FreeTypeType) < 0) {
return; INITERROR;
}
FaceType.tp_new = PyType_GenericNew; FaceType.tp_new = PyType_GenericNew;
if (PyType_Ready(&FaceType) < 0) if (PyType_Ready(&FaceType) < 0) {
return; INITERROR;
}
m = Py_InitModule3( m = INITMODULE;
"freetype", methods, if (m == NULL) {
"FreeType API" INITERROR;
); }
if (m == NULL) return;
FreeTypeError = PyErr_NewException((char*)"freetype.FreeTypeError", NULL, NULL); FreeTypeError = PyErr_NewException((char*)"freetype.FreeTypeError", NULL, NULL);
if (FreeTypeError == NULL) return; if (FreeTypeError == NULL) {
INITERROR;
}
PyModule_AddObject(m, "FreeTypeError", FreeTypeError); PyModule_AddObject(m, "FreeTypeError", FreeTypeError);
Py_INCREF(&FreeTypeType); Py_INCREF(&FreeTypeType);
PyModule_AddObject(m, "FreeType", (PyObject *)&FreeTypeType); PyModule_AddObject(m, "FreeType", (PyObject *)&FreeTypeType);
PyModule_AddObject(m, "Face", (PyObject *)&FaceType); PyModule_AddObject(m, "Face", (PyObject *)&FaceType);
#if PY_MAJOR_VERSION >= 3
return m;
#endif
} }