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
66
67
68
69
70
71
72
73
74
75
76
77
78
|
From dc34e4de787085ae0cbca373fb064d89c841ba05 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Mon, 18 Nov 2019 09:42:20 +0100
Subject: [PATCH] fix compatibility with libxlsxwriter 0.8.8
---
config.m4 | 11 +++++++++++
kernel/write.c | 12 ++++++++++++
2 files changed, 23 insertions(+)
diff --git a/config.m4 b/config.m4
index 56c26fb..c0121a6 100644
--- a/config.m4
+++ b/config.m4
@@ -113,6 +113,13 @@ if test "$PHP_XLSWRITER" != "no"; then
],[
-L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
])
+ PHP_CHECK_LIBRARY(xlsxwriter, lxw_fopen,
+ [
+ AC_DEFINE(HAVE_LXW_OPEN, 1, [ lxw_fopen available in 0.8.8 ])
+ ],[
+ ],[
+ -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
+ ])
fi
AC_DEFINE(HAVE_LIBXLSXWRITER, 1, [ use system libxlsxwriter ])
@@ -134,6 +141,10 @@ if test "$PHP_XLSWRITER" != "no"; then
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
+
+ if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 808; then
+ AC_DEFINE(HAVE_LXW_OPEN, 1, [ lxw_fopen available in 0.8.8 ])
+ fi
dnl see library/CMakeLists.txt
LIBOPT="-DNOCRYPT -DNOUNCRYPT"
fi
diff --git a/kernel/write.c b/kernel/write.c
index 099e176..c4c7e4b 100644
--- a/kernel/write.c
+++ b/kernel/write.c
@@ -507,14 +507,22 @@ STATIC void
_prepare_drawings(lxw_workbook *self)
{
lxw_worksheet *worksheet;
+#ifdef HAVE_LXW_OPEN
+ lxw_object_properties *image_options;
+#else
lxw_image_options *image_options;
+#endif
uint16_t chart_ref_id = 0;
uint16_t image_ref_id = 0;
uint16_t drawing_id = 0;
STAILQ_FOREACH(worksheet, self->worksheets, list_pointers) {
+#ifdef HAVE_LXW_OPEN
+ if (STAILQ_EMPTY(worksheet->image_props)
+#else
if (STAILQ_EMPTY(worksheet->image_data)
+#endif
&& STAILQ_EMPTY(worksheet->chart_data))
continue;
@@ -534,7 +542,11 @@ _prepare_drawings(lxw_workbook *self)
ordered_list_pointers);
}
+#ifdef HAVE_LXW_OPEN
+ STAILQ_FOREACH(image_options, worksheet->image_props, list_pointers) {
+#else
STAILQ_FOREACH(image_options, worksheet->image_data, list_pointers) {
+#endif
if (image_options->image_type == LXW_IMAGE_PNG)
self->has_png = LXW_TRUE;
|