mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
KG changes
This commit is contained in:
commit
51636c05c7
@ -46,7 +46,7 @@ class LinuxFreeze(Command):
|
|||||||
'/usr/lib/libsqlite3.so.0',
|
'/usr/lib/libsqlite3.so.0',
|
||||||
'/usr/lib/libsqlite3.so.0',
|
'/usr/lib/libsqlite3.so.0',
|
||||||
'/usr/lib/libmng.so.1',
|
'/usr/lib/libmng.so.1',
|
||||||
'/usr/lib/libpodofo.so.0.6.99',
|
'/usr/lib/libpodofo.so.0.8.1',
|
||||||
'/lib/libz.so.1',
|
'/lib/libz.so.1',
|
||||||
'/lib/libuuid.so.1',
|
'/lib/libuuid.so.1',
|
||||||
'/usr/lib/libtiff.so.3',
|
'/usr/lib/libtiff.so.3',
|
||||||
|
@ -265,6 +265,9 @@ class Py2App(object):
|
|||||||
@flush
|
@flush
|
||||||
def get_local_dependencies(self, path_to_lib):
|
def get_local_dependencies(self, path_to_lib):
|
||||||
for x in self.get_dependencies(path_to_lib):
|
for x in self.get_dependencies(path_to_lib):
|
||||||
|
if x.startswith('libpodofo'):
|
||||||
|
yield x, x
|
||||||
|
continue
|
||||||
for y in (SW+'/lib/', '/usr/local/lib/', SW+'/qt/lib/',
|
for y in (SW+'/lib/', '/usr/local/lib/', SW+'/qt/lib/',
|
||||||
'/opt/local/lib/',
|
'/opt/local/lib/',
|
||||||
'/Library/Frameworks/Python.framework/', SW+'/freetype/lib/'):
|
'/Library/Frameworks/Python.framework/', SW+'/freetype/lib/'):
|
||||||
@ -397,7 +400,7 @@ class Py2App(object):
|
|||||||
@flush
|
@flush
|
||||||
def add_podofo(self):
|
def add_podofo(self):
|
||||||
info('\nAdding PoDoFo')
|
info('\nAdding PoDoFo')
|
||||||
pdf = join(SW, 'lib', 'libpodofo.0.6.99.dylib')
|
pdf = join(SW, 'lib', 'libpodofo.0.8.1.dylib')
|
||||||
self.install_dylib(pdf)
|
self.install_dylib(pdf)
|
||||||
|
|
||||||
@flush
|
@flush
|
||||||
|
@ -162,9 +162,50 @@ SET(WANT_LIB64 FALSE)
|
|||||||
SET(PODOFO_BUILD_SHARED TRUE)
|
SET(PODOFO_BUILD_SHARED TRUE)
|
||||||
SET(PODOFO_BUILD_STATIC FALSE)
|
SET(PODOFO_BUILD_STATIC FALSE)
|
||||||
|
|
||||||
cp build/podofo-0.7.0/build/src/Release/podofo.dll bin/
|
cp build/podofo/build/src/Release/podofo.dll bin/
|
||||||
cp build/podofo-0.7.0/build/src/Release/podofo.lib lib/
|
cp build/podofo/build/src/Release/podofo.lib lib/
|
||||||
cp build/podofo-0.7.0/build/src/Release/podofo.exp lib/
|
cp build/podofo/build/src/Release/podofo.exp lib/
|
||||||
|
|
||||||
|
cp build/podofo/build/podofo_config.h include/podofo/
|
||||||
|
cp -r build/podofo/src/* include/podofo/
|
||||||
|
|
||||||
|
The following patch was required to get it to compile:
|
||||||
|
|
||||||
|
Index: src/PdfImage.cpp
|
||||||
|
===================================================================
|
||||||
|
--- src/PdfImage.cpp (revision 1261)
|
||||||
|
+++ src/PdfImage.cpp (working copy)
|
||||||
|
@@ -627,7 +627,7 @@
|
||||||
|
|
||||||
|
long lLen = static_cast<long>(pInfo->rowbytes * height);
|
||||||
|
char* pBuffer = static_cast<char*>(malloc(sizeof(char) * lLen));
|
||||||
|
- png_bytep pRows[height];
|
||||||
|
+ png_bytepp pRows = static_cast<png_bytepp>(malloc(sizeof(png_bytep)*height));
|
||||||
|
for(int y=0; y<height; y++)
|
||||||
|
{
|
||||||
|
pRows[y] = reinterpret_cast<png_bytep>(pBuffer + (y * pInfo->rowbytes));
|
||||||
|
@@ -672,6 +672,7 @@
|
||||||
|
this->SetImageData( width, height, pInfo->bit_depth, &stream );
|
||||||
|
|
||||||
|
free(pBuffer);
|
||||||
|
+ free(pRows);
|
||||||
|
}
|
||||||
|
#endif // PODOFO_HAVE_PNG_LIB
|
||||||
|
|
||||||
|
Index: src/PdfFiltersPrivate.cpp
|
||||||
|
===================================================================
|
||||||
|
--- src/PdfFiltersPrivate.cpp (revision 1261)
|
||||||
|
+++ src/PdfFiltersPrivate.cpp (working copy)
|
||||||
|
@@ -1019,7 +1019,7 @@
|
||||||
|
/*
|
||||||
|
* Prepare for input from a memory buffer.
|
||||||
|
*/
|
||||||
|
-GLOBAL(void)
|
||||||
|
+void
|
||||||
|
jpeg_memory_src (j_decompress_ptr cinfo, const JOCTET * buffer, size_t bufsize)
|
||||||
|
{
|
||||||
|
my_src_ptr src;
|
||||||
|
|
||||||
|
|
||||||
ImageMagick
|
ImageMagick
|
||||||
--------------
|
--------------
|
||||||
|
@ -153,18 +153,10 @@
|
|||||||
<Property Id="WixShellExecTarget" Value="[#{exe_map[calibre]}]" />
|
<Property Id="WixShellExecTarget" Value="[#{exe_map[calibre]}]" />
|
||||||
<CustomAction Id="LaunchApplication" BinaryKey="WixCA"
|
<CustomAction Id="LaunchApplication" BinaryKey="WixCA"
|
||||||
DllEntry="WixShellExec" Impersonate="yes"/>
|
DllEntry="WixShellExec" Impersonate="yes"/>
|
||||||
<InstallExecuteSequence>
|
|
||||||
<FileCost Suppress="yes" />
|
|
||||||
</InstallExecuteSequence>
|
|
||||||
<InstallUISequence>
|
<InstallUISequence>
|
||||||
<FileCost Suppress="yes" />
|
<FileCost Suppress="yes" />
|
||||||
</InstallUISequence>
|
</InstallUISequence>
|
||||||
<AdminExecuteSequence>
|
|
||||||
<FileCost Suppress="yes" />
|
|
||||||
</AdminExecuteSequence>
|
|
||||||
<AdminUISequence>
|
|
||||||
<FileCost Suppress="yes" />
|
|
||||||
</AdminUISequence>
|
|
||||||
|
|
||||||
</Product>
|
</Product>
|
||||||
</Wix>
|
</Wix>
|
||||||
|
@ -290,7 +290,7 @@ class USBMS(CLI, Device):
|
|||||||
js = [item.to_json() for item in booklists[listid] if
|
js = [item.to_json() for item in booklists[listid] if
|
||||||
hasattr(item, 'to_json')]
|
hasattr(item, 'to_json')]
|
||||||
with open(self.normalize_path(os.path.join(prefix, self.METADATA_CACHE)), 'wb') as f:
|
with open(self.normalize_path(os.path.join(prefix, self.METADATA_CACHE)), 'wb') as f:
|
||||||
json.dump(js, f, indent=2, encoding='utf-8')
|
f.write(json.dumps(js, indent=2, encoding='utf-8'))
|
||||||
write_prefix(self._main_prefix, 0)
|
write_prefix(self._main_prefix, 0)
|
||||||
write_prefix(self._card_a_prefix, 1)
|
write_prefix(self._card_a_prefix, 1)
|
||||||
write_prefix(self._card_b_prefix, 2)
|
write_prefix(self._card_b_prefix, 2)
|
||||||
|
@ -495,7 +495,7 @@ class DeviceMenu(QMenu): # {{{
|
|||||||
self.connect_to_folder_action = mitem
|
self.connect_to_folder_action = mitem
|
||||||
|
|
||||||
mitem = self.addAction(QIcon(I('devices/itunes.png')),
|
mitem = self.addAction(QIcon(I('devices/itunes.png')),
|
||||||
_('Connect to iTunes (EXPERIMENTAL)'))
|
_('Connect to iTunes'))
|
||||||
mitem.setEnabled(True)
|
mitem.setEnabled(True)
|
||||||
mitem.triggered.connect(lambda x : self.connect_to_itunes.emit())
|
mitem.triggered.connect(lambda x : self.connect_to_itunes.emit())
|
||||||
self.connect_to_itunes_action = mitem
|
self.connect_to_itunes_action = mitem
|
||||||
|
@ -164,7 +164,7 @@ podofo_convert_pystring(PyObject *py) {
|
|||||||
Py_UNICODE* u = PyUnicode_AS_UNICODE(py);
|
Py_UNICODE* u = PyUnicode_AS_UNICODE(py);
|
||||||
PyObject *u8 = PyUnicode_EncodeUTF8(u, PyUnicode_GET_SIZE(py), "replace");
|
PyObject *u8 = PyUnicode_EncodeUTF8(u, PyUnicode_GET_SIZE(py), "replace");
|
||||||
if (u8 == NULL) { PyErr_NoMemory(); return NULL; }
|
if (u8 == NULL) { PyErr_NoMemory(); return NULL; }
|
||||||
pdf_utf8 *s8 = (pdf_utf8 *)PyString_AS_STRING(u8);
|
pdf_utf8 *s8 = reinterpret_cast<pdf_utf8 *>(PyString_AS_STRING(u8));
|
||||||
PdfString *ans = new PdfString(s8);
|
PdfString *ans = new PdfString(s8);
|
||||||
Py_DECREF(u8);
|
Py_DECREF(u8);
|
||||||
if (ans == NULL) PyErr_NoMemory();
|
if (ans == NULL) PyErr_NoMemory();
|
||||||
@ -219,9 +219,10 @@ podofo_PDFDoc_setter(podofo_PDFDoc *self, PyObject *val, int field) {
|
|||||||
PyErr_SetString(PyExc_Exception, "You must first load a PDF Document");
|
PyErr_SetString(PyExc_Exception, "You must first load a PDF Document");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PdfString *s = podofo_convert_pystring(val);
|
PdfString *s = podofo_convert_pystring(val);
|
||||||
if (s == NULL) return -1;
|
if (s == NULL) return -1;
|
||||||
|
|
||||||
|
|
||||||
switch (field) {
|
switch (field) {
|
||||||
case 0:
|
case 0:
|
||||||
info->SetTitle(*s); break;
|
info->SetTitle(*s); break;
|
||||||
@ -240,7 +241,9 @@ podofo_PDFDoc_setter(podofo_PDFDoc *self, PyObject *val, int field) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
self->doc->set_info(info);
|
self->doc->set_info(info);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user