This commit is contained in:
Kovid Goyal 2019-02-26 08:39:42 +05:30
commit 9695a6e1cc
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
9 changed files with 49 additions and 46 deletions

View File

@ -111,8 +111,8 @@ def get_sip_dir():
pyqt['pyqt_sip_dir'] = get_sip_dir()
pyqt['sip_inc_dir'] = os.environ.get('SIP_INC_DIR', sysconfig.get_path('include'))
glib_flags = subprocess.check_output([PKGCONFIG, '--libs', 'glib-2.0']).strip() if islinux or ishaiku else ''
fontconfig_flags = subprocess.check_output([PKGCONFIG, '--libs', 'fontconfig']).strip() if islinux or ishaiku else ''
glib_flags = subprocess.check_output([PKGCONFIG, '--libs', 'glib-2.0']).decode('utf-8').strip() if islinux or ishaiku else ''
fontconfig_flags = subprocess.check_output([PKGCONFIG, '--libs', 'fontconfig']).decode('utf-8').strip() if islinux or ishaiku else ''
qt_inc = pyqt['inc']
qt_lib = pyqt['lib']
ft_lib_dirs = []

View File

@ -87,7 +87,7 @@ else:
filesystem_encoding = 'utf-8'
DEBUG = b'CALIBRE_DEBUG' in os.environ
DEBUG = 'CALIBRE_DEBUG' in os.environ
def debug():

View File

@ -184,7 +184,7 @@ Device_dealloc(Device* self)
Py_XDECREF(self->serial_number); self->serial_number = NULL;
Py_XDECREF(self->device_version); self->device_version = NULL;
self->ob_type->tp_free((PyObject*)self);
Py_TYPE(self)->tp_free((PyObject*)self);
}
static int

View File

@ -32,7 +32,7 @@ dealloc(Device* self)
Py_XDECREF(self->device_information); self->device_information = NULL;
self->ob_type->tp_free((PyObject*)self);
Py_TYPE(self)->tp_free((PyObject*)self);
}
static int
@ -244,4 +244,3 @@ PyTypeObject wpd::DeviceType = { // {{{
0, /* tp_alloc */
0, /* tp_new */
}; // }}}

View File

@ -48,7 +48,11 @@ PyObject* get_glyphs(const QPointF &p, const QTextItem &text_item) {
indices = PyTuple_New(glyphs.count());
if (indices == NULL) { Py_DECREF(points); return PyErr_NoMemory(); }
for (int i = 0; i < glyphs.count(); i++) {
#if PY_MAJOR_VERSION >= 3
temp = PyLong_FromLong((long)glyphs[i]);
#else
temp = PyInt_FromLong((long)glyphs[i]);
#endif
if (temp == NULL) { Py_DECREF(indices); Py_DECREF(points); return PyErr_NoMemory(); }
PyTuple_SET_ITEM(indices, i, temp); temp = NULL;
}
@ -74,10 +78,13 @@ PyObject* get_glyph_map(const QTextItem &text_item) {
for (uint uc = 0; uc < 0x10000; ++uc) {
QChar ch(uc);
ti.fontEngine->stringToCMap(&ch, 1, &glyphs, &nglyphs, QFontEngine::GlyphIndicesOnly);
#if PY_MAJOR_VERSION >= 3
t = PyLong_FromLong(glyphs.glyphs[0]);
#else
t = PyInt_FromLong(glyphs.glyphs[0]);
#endif
if (t == NULL) { Py_DECREF(ans); return PyErr_NoMemory(); }
PyTuple_SET_ITEM(ans, uc, t); t = NULL;
}
return ans;
}

View File

@ -7,14 +7,14 @@
#pragma once
// Per python C-API docs, Python.h must always be the first header
#include <Python.h>
#include <QGlyphRun>
#include <QTextItem>
#include <QPointF>
#include <Python.h>
PyObject* get_glyphs(const QPointF &p, const QTextItem &text_item);
PyObject* get_sfnt_table(const QTextItem &text_item, const char* tag_name);
PyObject* get_glyph_map(const QTextItem &text_item);

View File

@ -47,7 +47,7 @@ Face_dealloc(Face* self)
Py_XDECREF(self->data);
self->data = NULL;
self->ob_type->tp_free((PyObject*)self);
Py_TYPE(self)->tp_free((PyObject*)self);
}
static int
@ -160,7 +160,7 @@ dealloc(FreeType* self)
}
self->library = NULL;
self->ob_type->tp_free((PyObject*)self);
Py_TYPE(self)->tp_free((PyObject*)self);
}
static int
@ -319,4 +319,3 @@ initfreetype(void) {
PyModule_AddObject(m, "FreeType", (PyObject *)&FreeTypeType);
PyModule_AddObject(m, "Face", (PyObject *)&FaceType);
}

View File

@ -14,7 +14,7 @@ static void
PDFDoc_dealloc(PDFDoc* self)
{
if (self->doc != NULL) delete self->doc;
self->ob_type->tp_free((PyObject*)self);
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *

View File

@ -13,7 +13,7 @@ using namespace pdf;
static void
dealloc(PDFOutlineItem* self)
{
self->ob_type->tp_free((PyObject*)self);
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
@ -138,5 +138,3 @@ PyTypeObject pdf::PDFOutlineItemType = {
};
// }}}