1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
From b29ad600d416d157486035e71c94b127e6a6fb27 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Fri, 21 Jun 2019 08:08:33 +0200
Subject: [PATCH] fix compatibility with 0.8.7
---
config.m4 | 13 ++++++++++++-
kernel/write.c | 5 +++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/config.m4 b/config.m4
index 0519129..0d0b379 100644
--- a/config.m4
+++ b/config.m4
@@ -76,6 +76,13 @@ if test "$PHP_XLSWRITER" != "no"; then
],[
-L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
])
+ PHP_CHECK_LIBRARY(xlsxwriter, workbook_add_vba_project,
+ [
+ AC_DEFINE(HAVE_WORKBOOK_ADD_VBA_PROJECT, 1, [ workbook_add_vba_project available in 0.8.7 ])
+ ],[
+ ],[
+ -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
+ ])
fi
AC_DEFINE(HAVE_LIBXLSXWRITER, 1, [ use system libxlsxwriter ])
else
@@ -85,13 +92,17 @@ if test "$PHP_XLSWRITER" != "no"; then
XLSXWRITER_VERSION=`$EGREP "define LXW_VERSION" $srcdir/library/include/xlsxwriter.h | $SED -e 's/[[^0-9\.]]//g'`
- if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -lt 800; then
+ if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 709; then
AC_DEFINE(HAVE_LXW_VERSION, 1, [ lxw_version available in 0.7.9 ])
fi
if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 800; then
AC_DEFINE(HAVE_LXW_CHARTSHEET_NEW, 1, [ lxw_chartsheet_new available in 0.8.0 ])
fi
+
+ if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 807; then
+ AC_DEFINE(HAVE_WORKBOOK_ADD_VBA_PROJECT, 1, [ workbook_add_vba_project available in 0.8.7 ])
+ fi
fi
if test -z "$PHP_DEBUG"; then
diff --git a/kernel/write.c b/kernel/write.c
index 975c666..ab365f9 100644
--- a/kernel/write.c
+++ b/kernel/write.c
@@ -159,8 +159,13 @@ workbook_file(xls_resource_t *self)
/* Add cached data to charts. */
_add_chart_cache_data(self->workbook);
+/* ugly test, new param (use_zip_64) was added in 0.8.7 with workbook_add_vba_project */
+#ifdef HAVE_WORKBOOK_ADD_VBA_PROJECT
/* Create a packager object to assemble sub-elements into a zip file. */
+ packager = lxw_packager_new(self->workbook->filename, self->workbook->options.tmpdir, 0);
+#else
packager = lxw_packager_new(self->workbook->filename, self->workbook->options.tmpdir);
+#endif
/* If the packager fails it is generally due to a zip permission error. */
if (packager == NULL) {
|