Hello community, here is the log from the commit of package liborcus for openSUSE:Factory checked in at 2018-02-22 14:59:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/liborcus (Old) and /work/SRC/openSUSE:Factory/.liborcus.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "liborcus" Thu Feb 22 14:59:37 2018 rev:24 rq:576922 version:0.13.3 Changes: -------- --- /work/SRC/openSUSE:Factory/liborcus/liborcus.changes 2018-02-03 15:36:29.634210179 +0100 +++ /work/SRC/openSUSE:Factory/.liborcus.new/liborcus.changes 2018-02-22 14:59:41.639944258 +0100 @@ -1,0 +2,7 @@ +Thu Feb 15 08:11:00 UTC 2018 - tchva...@suse.com + +- Version update to 0.13.3: + * Various improvements in 2003 XML imports +- Rename name-python3 to python3-name to match other python modules + +------------------------------------------------------------------- Old: ---- liborcus-0.13.2.tar.xz New: ---- liborcus-0.13.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ liborcus.spec ++++++ --- /var/tmp/diff_new_pack.R163kM/_old 2018-02-22 14:59:42.407916628 +0100 +++ /var/tmp/diff_new_pack.R163kM/_new 2018-02-22 14:59:42.407916628 +0100 @@ -18,7 +18,7 @@ %define libname liborcus-0_13-0 Name: liborcus -Version: 0.13.2 +Version: 0.13.3 Release: 0 Summary: Spreadsheet file processing library License: MPL-2.0 @@ -73,11 +73,13 @@ %description tools Tools to work with various xml streams. -%package python3 +%package -n python3-%{name} Summary: Python bindings for liborcus +# Renamed in 15.0 Group: Productivity/Publishing/Word +Provides: %{name}-python3 = %{version} -%description python3 +%description -n python3-%{name} Python 3 bindings for %{name}. %prep @@ -103,6 +105,7 @@ %postun -n %{libname} -p /sbin/ldconfig %files -n %{libname} +%license LICENSE %{_libdir}/*.so.* %files devel @@ -113,7 +116,7 @@ %files tools %{_bindir}/* -%files python3 +%files -n python3-%{name} %dir %{python3_sitelib}/orcus/ %{python3_sitelib}/orcus/__init__.py %{python3_sitelib}/orcus/json.py ++++++ liborcus-0.13.2.tar.xz -> liborcus-0.13.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/ChangeLog new/liborcus-0.13.3/ChangeLog --- old/liborcus-0.13.2/ChangeLog 2018-01-27 03:08:17.000000000 +0100 +++ new/liborcus-0.13.3/ChangeLog 2018-02-15 02:36:56.000000000 +0100 @@ -1,9 +1,55 @@ -2018-01-26 Kohei Yoshida <kohei.yosh...@gmail.com> [dadc490ce903a9ccd9688f25af5e848b78bf8f23] +2018-02-14 Kohei Yoshida <kohei.yosh...@gmail.com> [7ca73a7c83504a30a1d24444a27f57a86451100f] + + Up the version to 0.13.3. + + +2018-02-13 Kohei Yoshida <kohei.yosh...@gmail.com> [66bbbd42f5d135b7e7dd57eaa7fdf6fd69c664df] + + xls-xml: Import hidden row and column flags. + + (cherry picked from commit 95420c1a1e8c082bb5953b2a49f0d56eef0e5f7e) + +2018-02-08 Kohei Yoshida <kohei.yosh...@gmail.com> [0798d81a4c771b69b4b8eade396c88ffb5416b04] + + xlsx: Remove carriage returns from multi-line strings. + + Let's try to consistently only use linefeed characters for multi- + line strings. + + (cherry picked from commit 0412bd269983825e5019a8a12267b54f51117aba) + +2018-02-08 Kohei Yoshida <kohei.yosh...@gmail.com> [0a4e8c44fc8229818191c6b9b46e4de079d0ca3b] + + xls-xml: Pick up border colors. + + (cherry picked from commit e065d26dabafea465ec49e7d79775e62014ac0db) + +2018-02-07 Kohei Yoshida <kohei.yosh...@gmail.com> [9662fce62ce77f87a4a8ba61f4507ec08e705b57] + + xlsx: Let's not forget to apply color for diagonal borders too. + + (cherry picked from commit c392ea15000b331bb6580b09c1045fd14b449b46) + +2018-01-31 Kohei Yoshida <kohei.yosh...@gmail.com> [473526e1ca3a7117e2daf977e1b82a0a3977fc84] + + We are supposed to use the foreground color for solid fill. + + (cherry picked from commit f821995022df8dd1e580dd22cf131584b2b1ac4f) + +2018-01-31 Kohei Yoshida <kohei.yosh...@gmail.com> [98d2b3377da71b713a37f9004acff3c02c22ce2b] + + Alpha value of 0 means fully transparent. I'm sure 255 was intended. + + (cherry picked from commit f7953a814d6a43205791b6cc01c528ef5d4b1ce3) + +2018-01-26 Kohei Yoshida <kohei.yosh...@gmail.com> [5aba1df254cf4e052ad013d4b8ac886e274b74fa] Revert "fix automake warning" This reverts commit e4e1e3eb41755a4520a22b904a638da0770836f1. + This fixes the breakage on 'make distcheck'. + 2018-01-26 Kohei Yoshida <kohei.yosh...@gmail.com> [d26cfd097e33f2ab05182bc63a54599667d1fc34] Up the version to 0.13.2. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/configure new/liborcus-0.13.3/configure --- old/liborcus-0.13.2/configure 2018-01-27 03:07:29.000000000 +0100 +++ new/liborcus-0.13.3/configure 2018-02-15 02:35:40.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for liborcus 0.13.2. +# Generated by GNU Autoconf 2.69 for liborcus 0.13.3. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='liborcus' PACKAGE_TARNAME='liborcus' -PACKAGE_VERSION='0.13.2' -PACKAGE_STRING='liborcus 0.13.2' +PACKAGE_VERSION='0.13.3' +PACKAGE_STRING='liborcus 0.13.3' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1420,7 +1420,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures liborcus 0.13.2 to adapt to many kinds of systems. +\`configure' configures liborcus 0.13.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1491,7 +1491,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of liborcus 0.13.2:";; + short | recursive ) echo "Configuration of liborcus 0.13.3:";; esac cat <<\_ACEOF @@ -1642,7 +1642,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -liborcus configure 0.13.2 +liborcus configure 0.13.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2291,7 +2291,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by liborcus $as_me 0.13.2, which was +It was created by liborcus $as_me 0.13.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3158,7 +3158,7 @@ # Define the identity of the package. PACKAGE='liborcus' - VERSION='0.13.2' + VERSION='0.13.3' cat >>confdefs.h <<_ACEOF @@ -17532,7 +17532,7 @@ ORCUS_API_VERSION=0.13 ORCUS_MAJOR_VERSION=0 ORCUS_MINOR_VERSION=13 -ORCUS_MICRO_VERSION=2 +ORCUS_MICRO_VERSION=3 @@ -21423,7 +21423,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by liborcus $as_me 0.13.2, which was +This file was extended by liborcus $as_me 0.13.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21489,7 +21489,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -liborcus config.status 0.13.2 +liborcus config.status 0.13.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/configure.ac new/liborcus-0.13.3/configure.ac --- old/liborcus-0.13.2/configure.ac 2018-01-27 03:07:20.000000000 +0100 +++ new/liborcus-0.13.3/configure.ac 2018-02-15 02:33:38.000000000 +0100 @@ -8,7 +8,7 @@ # =================== m4_define([orcus_major_version], [0]) m4_define([orcus_minor_version], [13]) -m4_define([orcus_micro_version], [2]) +m4_define([orcus_micro_version], [3]) m4_define([orcus_version], [orcus_major_version.orcus_minor_version.orcus_micro_version]) # =============== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/src/liborcus/gnumeric_sheet_context.cpp new/liborcus-0.13.3/src/liborcus/gnumeric_sheet_context.cpp --- old/liborcus-0.13.2/src/liborcus/gnumeric_sheet_context.cpp 2017-11-16 01:38:32.000000000 +0100 +++ new/liborcus-0.13.3/src/liborcus/gnumeric_sheet_context.cpp 2018-02-01 04:12:37.000000000 +0100 @@ -132,7 +132,7 @@ { spreadsheet::color_elem_t red, green, blue; gnumeric_helper::parse_RGB_color_attribute(red, green, blue, attr.value); - m_styles.set_fill_fg_color(0, red, green, blue); + m_styles.set_fill_fg_color(255, red, green, blue); m_fill = true; @@ -145,7 +145,7 @@ { spreadsheet::color_elem_t red, green, blue; gnumeric_helper::parse_RGB_color_attribute(red, green, blue, attr.value); - m_styles.set_fill_bg_color(0, red, green, blue); + m_styles.set_fill_bg_color(255, red, green, blue); m_fill = true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/src/liborcus/odf_styles_context.cpp new/liborcus-0.13.3/src/liborcus/odf_styles_context.cpp --- old/liborcus-0.13.2/src/liborcus/odf_styles_context.cpp 2017-11-16 01:38:32.000000000 +0100 +++ new/liborcus-0.13.3/src/liborcus/odf_styles_context.cpp 2018-02-01 04:25:48.000000000 +0100 @@ -739,7 +739,8 @@ { spreadsheet::color_elem_t red, green, blue; func.get_background_color(red, green, blue); - mp_styles->set_fill_bg_color(0, red, green, blue); + mp_styles->set_fill_pattern_type(ORCUS_ASCII("solid")); + mp_styles->set_fill_fg_color(255, red, green, blue); } size_t fill_id = mp_styles->commit_fill(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/src/liborcus/odf_styles_context_test.cpp new/liborcus-0.13.3/src/liborcus/odf_styles_context_test.cpp --- old/liborcus-0.13.2/src/liborcus/odf_styles_context_test.cpp 2017-11-16 01:38:32.000000000 +0100 +++ new/liborcus-0.13.3/src/liborcus/odf_styles_context_test.cpp 2018-02-01 04:25:48.000000000 +0100 @@ -48,10 +48,11 @@ std::cerr << std::hex << (int)fill; const orcus::spreadsheet::fill_t* cell_fill = styles.get_fill(fill); assert(cell_fill); - std::cerr << std::hex << (int)cell_fill->bg_color.red; - assert(cell_fill->bg_color.red == 0xfe); - assert(cell_fill->bg_color.green == 0xff); - assert(cell_fill->bg_color.blue == 0xcc); + std::cerr << std::hex << (int)cell_fill->fg_color.red; + assert(cell_fill->fg_color.red == 0xfe); + assert(cell_fill->fg_color.green == 0xff); + assert(cell_fill->fg_color.blue == 0xcc); + assert(cell_fill->pattern_type == "solid"); } void test_odf_border(orcus::spreadsheet::import_styles &styles) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/src/liborcus/xls_xml_context.cpp new/liborcus-0.13.3/src/liborcus/xls_xml_context.cpp --- old/liborcus-0.13.2/src/liborcus/xls_xml_context.cpp 2018-01-26 03:52:07.000000000 +0100 +++ new/liborcus-0.13.3/src/liborcus/xls_xml_context.cpp 2018-02-14 04:18:33.000000000 +0100 @@ -1069,6 +1069,7 @@ spreadsheet::border_direction_t dir = spreadsheet::border_direction_t::unknown; spreadsheet::border_style_t style = spreadsheet::border_style_t::unknown; + spreadsheet::color_rgb_t color; long weight = 0; for (const xml_token_attr_t& attr : attrs) @@ -1093,6 +1094,11 @@ weight = to_long(attr.value); break; } + case XML_Color: + { + color = spreadsheet::to_color_rgb(attr.value.data(), attr.value.size()); + break; + } default: ; } @@ -1105,6 +1111,7 @@ border_style_type& bs = m_current_style->borders.back(); bs.dir = dir; bs.style = style; + bs.color = color; switch (bs.style) { @@ -1215,6 +1222,7 @@ spreadsheet::col_t col_index = m_cur_prop_col; spreadsheet::col_t span = 0; double width = 0.0; + bool hidden = false; std::for_each(attrs.begin(), attrs.end(), [&](const xml_token_attr_t& attr) @@ -1237,6 +1245,8 @@ case XML_Span: span = to_long(attr.value); break; + case XML_Hidden: + hidden = to_long(attr.value) != 0; default: ; } @@ -1244,8 +1254,11 @@ ); for (; span >= 0; --span, ++col_index) + { // Column widths are stored as points. mp_sheet_props->set_column_width(col_index, width, orcus::length_unit_t::point); + mp_sheet_props->set_column_hidden(col_index, hidden); + } m_cur_prop_col = col_index; } @@ -1256,6 +1269,7 @@ m_cur_col = 0; spreadsheet::row_t row_index = -1; bool has_height = false; + bool hidden = false; double height = 0.0; for (const xml_token_attr_t& attr : attrs) @@ -1274,6 +1288,9 @@ has_height = true; height = to_double(attr.value); break; + case XML_Hidden: + hidden = to_long(attr.value) != 0; + break; default: ; } @@ -1286,8 +1303,14 @@ m_cur_row = row_index - 1; } - if (mp_sheet_props && has_height) - mp_sheet_props->set_row_height(m_cur_row, height, length_unit_t::point); + if (mp_sheet_props) + { + if (has_height) + mp_sheet_props->set_row_height(m_cur_row, height, length_unit_t::point); + + if (hidden) + mp_sheet_props->set_row_hidden(m_cur_row, true); + } } void xls_xml_context::end_element_borders() @@ -1525,7 +1548,10 @@ styles->set_border_count(style->borders.size()); for (const border_style_type& b : style->borders) + { styles->set_border_style(b.dir, b.style); + styles->set_border_color(b.dir, 255, b.color.red, b.color.green, b.color.blue); + } size_t border_id = styles->commit_border(); styles->set_xf_border(border_id); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/src/liborcus/xls_xml_context.hpp new/liborcus-0.13.3/src/liborcus/xls_xml_context.hpp --- old/liborcus-0.13.2/src/liborcus/xls_xml_context.hpp 2018-01-26 03:52:07.000000000 +0100 +++ new/liborcus-0.13.3/src/liborcus/xls_xml_context.hpp 2018-02-09 00:04:02.000000000 +0100 @@ -107,6 +107,7 @@ { spreadsheet::border_direction_t dir = spreadsheet::border_direction_t::unknown; spreadsheet::border_style_t style = spreadsheet::border_style_t::unknown; + spreadsheet::color_rgb_t color; }; struct font_style_type diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/src/liborcus/xlsx_context.cpp new/liborcus-0.13.3/src/liborcus/xlsx_context.cpp --- old/liborcus-0.13.2/src/liborcus/xlsx_context.cpp 2018-01-25 02:48:48.000000000 +0100 +++ new/liborcus-0.13.3/src/liborcus/xlsx_context.cpp 2018-02-09 04:12:21.000000000 +0100 @@ -240,6 +240,40 @@ if (cur_token.first == NS_ooxml_xlsx && cur_token.second == XML_t) { m_cur_str = str; + + // In case the string contains carriage returns (CRs), remove them. + m_cell_buffer.reset(); + const char* p = m_cur_str.data(); + const char* p_end = p + m_cur_str.size(); + const char* p0 = nullptr; + + for (; p != p_end; ++p) + { + if (!p0) + p0 = p; + + if (*p == 0x0D) + { + // Append the segment up to this CR, and skip the CR. + m_cell_buffer.append(p0, std::distance(p0, p)); + p0 = nullptr; + } + } + + if (!m_cell_buffer.empty()) + { + // This string contains at least one CR. + + if (p0) + // Append the tail end. + m_cell_buffer.append(p0, std::distance(p0, p)); + + m_cur_str = m_pool.intern( + m_cell_buffer.get(), m_cell_buffer.size()).first; + + transient = false; + } + if (transient) m_cur_str = m_pool.intern(m_cur_str).first; } @@ -612,6 +646,7 @@ case XML_bottom: case XML_left: case XML_right: + case XML_diagonal: // This color is for a border. start_border_color(attrs); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liborcus-0.13.2/src/liborcus/xlsx_context.hpp new/liborcus-0.13.3/src/liborcus/xlsx_context.hpp --- old/liborcus-0.13.2/src/liborcus/xlsx_context.hpp 2018-01-25 02:48:47.000000000 +0100 +++ new/liborcus-0.13.3/src/liborcus/xlsx_context.hpp 2018-02-09 04:12:21.000000000 +0100 @@ -10,6 +10,7 @@ #include "orcus/spreadsheet/types.hpp" #include "orcus/string_pool.hpp" +#include "orcus/cell_buffer.hpp" #include "xml_context_base.hpp" #include "xlsx_types.hpp" @@ -42,6 +43,7 @@ private: spreadsheet::iface::import_shared_strings* mp_strings; string_pool m_pool; + cell_buffer m_cell_buffer; pstring m_cur_str; bool m_in_segments; };