Browse Source

Merge pull request #227 from remicollet/issue-uplib093

Upgrade bundled libxlsxwriter to 0.9.3
viest 5 years ago
parent
commit
5bee121dab
5 changed files with 19 additions and 76 deletions
  1. 7 40
      config.m4
  2. 1 23
      kernel/write.c
  3. 1 1
      library/libxlsxwriter
  4. 10 10
      package.xml
  5. 0 2
      xlswriter.c

+ 7 - 40
config.m4

@@ -36,8 +36,11 @@ if test "$PHP_XLSWRITER" != "no"; then
 
     libxlsxwriter_sources="
     library/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c \
+    library/libxlsxwriter/third_party/md5/md5.c \
     library/libxlsxwriter/src/app.c \
     library/libxlsxwriter/src/chart.c \
+    library/libxlsxwriter/src/chartsheet.c \
+    library/libxlsxwriter/src/comment.c \
     library/libxlsxwriter/src/content_types.c \
     library/libxlsxwriter/src/core.c \
     library/libxlsxwriter/src/custom.c \
@@ -50,6 +53,7 @@ if test "$PHP_XLSWRITER" != "no"; then
     library/libxlsxwriter/src/styles.c \
     library/libxlsxwriter/src/theme.c \
     library/libxlsxwriter/src/utility.c \
+    library/libxlsxwriter/src/vml.c \
     library/libxlsxwriter/src/workbook.c \
     library/libxlsxwriter/src/worksheet.c \
     library/libxlsxwriter/src/xmlwriter.c \
@@ -84,32 +88,11 @@ if test "$PHP_XLSWRITER" != "no"; then
             AC_MSG_ERROR([libxlsxwriter library not found])
         else
             PHP_ADD_INCLUDE($XLSXWRITER_DIR/include)
-            PHP_CHECK_LIBRARY(xlsxwriter, worksheet_write_string,
+            PHP_CHECK_LIBRARY(xlsxwriter, lxw_worksheet_find_cell_in_row,
             [
                 PHP_ADD_LIBRARY_WITH_PATH(xlsxwriter, $i/$PHP_LIBDIR, XLSWRITER_SHARED_LIBADD)
             ],[
-                AC_MSG_ERROR([Wrong libxlsxwriter version or library not found])
-            ],[
-                -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
-            ])
-            PHP_CHECK_LIBRARY(xlsxwriter, lxw_version,
-            [
-                AC_DEFINE(HAVE_LXW_VERSION, 1, [ lxw_version available in 0.7.9 ])
-            ],[
-            ],[
-                -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
-            ])
-            PHP_CHECK_LIBRARY(xlsxwriter, lxw_chartsheet_new,
-            [
-                AC_DEFINE(HAVE_LXW_CHARTSHEET_NEW, 1, [ lxw_chartsheet_new available in 0.8.0 ])
-            ],[
-            ],[
-                -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 ])
-            ],[
+                AC_MSG_ERROR([Wrong libxlsxwriter version or library not found, 0.9.3 required])
             ],[
                 -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
             ])
@@ -128,23 +111,6 @@ if test "$PHP_XLSWRITER" != "no"; then
         xls_writer_sources="$xls_writer_sources $libxlsxwriter_sources"
         PHP_ADD_INCLUDE([$srcdir/library/libxlsxwriter/include])
 
-        XLSXWRITER_VERSION=`$EGREP "define LXW_VERSION" $srcdir/library/include/libxlsxwriter/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}'` -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
-
-        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
@@ -214,6 +180,7 @@ if test "$PHP_XLSWRITER" != "no"; then
     PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxwriter/src])
     PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxwriter/third_party/minizip])
     PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxwriter/third_party/tmpfileplus])
+    PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxwriter/third_party/md5])
 
     PHP_ADD_BUILD_DIR([$abs_builddir/library/libexpat/expat/lib])
     PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxio/lib])

+ 1 - 23
kernel/write.c

@@ -337,13 +337,8 @@ workbook_file(xls_resource_write_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) {
@@ -547,22 +542,14 @@ 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;
 
@@ -570,23 +557,14 @@ _prepare_drawings(lxw_workbook *self)
 
         STAILQ_FOREACH(image_options, worksheet->chart_data, list_pointers) {
             chart_ref_id++;
-#ifdef HAVE_LXW_CHARTSHEET_NEW
             lxw_worksheet_prepare_chart(worksheet, chart_ref_id, drawing_id,
                                         image_options, 0);
-#else
-            lxw_worksheet_prepare_chart(worksheet, chart_ref_id, drawing_id,
-                                        image_options);
-#endif
             if (image_options->chart)
                 STAILQ_INSERT_TAIL(self->ordered_charts, image_options->chart,
                                    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;
@@ -935,7 +913,7 @@ _populate_range_data_cache(lxw_workbook *self, lxw_series_range *range)
                 return;
             }
 
-            cell_obj = lxw_worksheet_find_cell(row_obj, col_num);
+            cell_obj = lxw_worksheet_find_cell_in_row(row_obj, col_num);
 
             if (cell_obj) {
                 if (cell_obj->type == NUMBER_CELL) {

+ 1 - 1
library/libxlsxwriter

@@ -1 +1 @@
-Subproject commit f59bdffe692e97789ff570d08aae20cb6e4781a9
+Subproject commit 5de3c005c60545d75fc10a66c4a8ac2be60fd2b1

+ 10 - 10
package.xml

@@ -187,16 +187,16 @@
    <file name="tests/const_memory_index_out_range.phpt" role="test" />
    <file name="tests/default_format.phpt" role="test" />
    <file name="tests/fix-207.phpt" role="test" />
-   <file md5sum="df2a6af4ced4ea7660a1691d18e75e8c" name="tests/format_align.phpt" role="test" />
-   <file md5sum="6f9186fb9d8eb2ad4d96d149c97ef5f8" name="tests/format_background.phpt" role="test" />
-   <file md5sum="c67d20fdc2f1d4b4b429ac905cb4cbf9" name="tests/format_border.phpt" role="test" />
-   <file md5sum="666669e50723870fe7fc7ebbb3354cb4" name="tests/format_font.phpt" role="test" />
-   <file md5sum="c4d791e16e40e172ebc516520cf35e5f" name="tests/format_font_color.phpt" role="test" />
-   <file md5sum="cf25b25c4320818e5c54041d154ddc78" name="tests/format_font_size.phpt" role="test" />
-   <file md5sum="4dfaa3f81e9c7138aca39da99a67f270" name="tests/format_font_strikeout.phpt" role="test" />
-   <file md5sum="c32a045fc8d621cbbaf8f00008ddb8b5" name="tests/format_number.phpt" role="test" />
-   <file md5sum="f9c233fedf10a2bbb2ac5534cf8f20ef" name="tests/format_wrap.phpt" role="test" />
-   <file md5sum="4d46bc759ff8d41c8c919a0f50c595b0" name="tests/freeze_panes.phpt" role="test" />
+   <file name="tests/format_align.phpt" role="test" />
+   <file name="tests/format_background.phpt" role="test" />
+   <file name="tests/format_border.phpt" role="test" />
+   <file name="tests/format_font.phpt" role="test" />
+   <file name="tests/format_font_color.phpt" role="test" />
+   <file name="tests/format_font_size.phpt" role="test" />
+   <file name="tests/format_font_strikeout.phpt" role="test" />
+   <file name="tests/format_number.phpt" role="test" />
+   <file name="tests/format_wrap.phpt" role="test" />
+   <file name="tests/freeze_panes.phpt" role="test" />
    <file name="tests/gridlines.phpt" role="test" />
    <file name="tests/header_format.phpt" role="test" />
    <file md5sum="b4c6f2949c46ab89099e5f971f152a1f" name="tests/image_no_styles.phpt" role="test" />

+ 0 - 2
xlswriter.c

@@ -82,10 +82,8 @@ PHP_MINFO_FUNCTION(xlswriter)
 #ifdef HAVE_LIBXLSXWRITER
     /* Build time */
     php_info_print_table_row(2, "libxlsxwriter headers version", LXW_VERSION);
-#ifdef HAVE_LXW_VERSION
     /* Run time, available since 0.7.9 */
     php_info_print_table_row(2, "libxlsxwriter library version", lxw_version());
-#endif
 #else
     php_info_print_table_row(2, "bundled libxlsxwriter version", LXW_VERSION);
 #endif