Hello community,

here is the log from the commit of package libreoffice for openSUSE:Factory 
checked in at 2012-06-16 06:56:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libreoffice (Old)
 and      /work/SRC/openSUSE:Factory/.libreoffice.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libreoffice", Maintainer is "[email protected]"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/libreoffice/libreoffice-branding-upstream.changes    
    2012-06-01 22:32:07.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.libreoffice.new/libreoffice-branding-upstream.changes
   2012-06-16 06:56:59.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Jun 14 15:38:44 UTC 2012 - [email protected]
+
+- updated to libreoffice-3.5.4.4 (SUSE 3.5 beta2, based on upstream 3.5.5-rc1)
+
+-------------------------------------------------------------------
libreoffice-help-en-US.changes: same change
libreoffice-help-group1.changes: same change
libreoffice-help-group2.changes: same change
libreoffice-help-group3.changes: same change
libreoffice-help-group4.changes: same change
libreoffice-help-group5.changes: same change
libreoffice-icon-themes.changes: same change
libreoffice-l10n.changes: same change
--- /work/SRC/openSUSE:Factory/libreoffice/libreoffice.changes  2012-06-01 
22:32:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libreoffice.new/libreoffice.changes     
2012-06-16 06:57:18.000000000 +0200
@@ -1,0 +2,64 @@
+Thu Jun 14 15:38:44 UTC 2012 - [email protected]
+
+- updated to libreoffice-3.5.4.4 (SUSE 3.5 beta2, based on upstream 3.5.5-rc1)
+    * layout statusbar control
+    * handle opacity in gradients
+    * text over images (bnc#759212)
+    * clipped toolbar item (fdo#42379)
+    * 'Find' toolbar freeze (fdo#46687)
+    * can't open Base reports (fdo#47325)
+    * crash when copying table (fdo#45522)
+    * allow java 1.7, or any future version
+    * make style applying faster (bnc#745873)
+    * wrap values in DOCX import (bnc#750838)
+    * support Sheets.PrintPreview (bnc#757844)
+    * ignored small size icon setting (fdo#35972)
+    * rowheight problems in XLS export (fdo#50304)
+    * support for MousePointer attribute in controls
+    * Writer slow typing in large documents (fdo#48932)
+    * incorrect positions of imported shapes (fdo#49430)
+    * Base report does not sort by groupings (fdo#48018)
+    * attempt to anchor VML shapes properly (bnc#764005)
+    * shortcut names are not localized on Linux (fdo#50415)
+    * import VMLshape 'hidden' style attribute (bnc#757609)
+    * handle recursive <w:p> because of shapes (bnc#751077)
+    * import NS_ooxml::LN_CT_FFCheckBox_default (bnc#766477)
+    * floor borders were missing from 3D Charts (bnc#760029)
+    * do not rotate Calc shapes if twoCellAnchor (bnc#762542)
+    * fix horizontal rule width in DOC documents (bnc#757118)
+    * implement VBA Application.DisplayFullScreen (bnc#757885)
+    * Win/VC** STL messes up the namespace vector (bnc#759982)
+    * formcontrols: error message when deleting pages (fdo#45987)
+    * changing the keyboard of the Slide Show button (bnc#753458)
+    * toolbars may become irrevocably locked in place (fdo#42405)
+    * implement VBA API Application.DisplayScrollBars (bnc#757840)
+    * add stub VBA implementation Application methods (bnc#760999)
+    * implement relativeHeight (z-order) in DOCX import (bnc#747461)
+    * do not ignore character properties of text fields (bnc#760764)
+    * display wrong datasets when scrolling through tables (fdo#48345)
+    * fix incredible shrinking scrollbars when zooming in Calc preview
+    * WW8 import of textboxes with thin border/inner margin (bnc#757910)
+    * SwLineLayout::CalcLine: improve line height calculation (bnc#757905)
+    * column break without columns to be a page break (bnc#652364, bnc#750255)
+    * RTF import files (fdo#44174, fdo#45190, fdo#49178, fdo#49968, fdo#50539)
+    * language status bar control: Don't set radio buttons for some entries
+    * more on borders handling (fdo#33634, fdo#38116, fdo#40874, fdo#43249,
+      fdo#46112, fdo#48647, fdo#49438)
+    * UI improvements:
+        * border window: design by Mirek M. 
+        * layout status control: improved artwork by Mirek M.
+        * calc input line: native rendering of the input line
+        * start centre: solid color fits the new artwork better
+        * status bar: fix status selection menu drawing in Calc
+        * status bar: get rid of STD/BLK/..., use a menu instead
+        * status bar: standardize the size of modification status
+        * status bar: 'Overwrite' shown only when in overwrite mode
+        * status bar: normalize selection and modification status icons sizes
+        * writer UI: decrease the size of the border around the document
+        * zoom slider: improved design by Mirek M.
+- update 3rd-party modules:
+    * libvisio to version 0.0.17:
+        * misc bugfixes
+- do not add "/usr/sbin" twice into PATH
+
+-------------------------------------------------------------------

Old:
----
  2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2
  libreoffice-binfilter-3.5.4.3.tar.bz2
  libreoffice-core-3.5.4.3.tar.bz2
  libreoffice-help-3.5.4.3.tar.bz2
  libreoffice-translations-3.5.4.3.tar.bz2

New:
----
  90010e213dd25648e70f0cc12f8fed55-libvisio-0.0.17.tar.bz2
  libreoffice-binfilter-3.5.4.4.tar.bz2
  libreoffice-core-3.5.4.4.tar.bz2
  libreoffice-help-3.5.4.4.tar.bz2
  libreoffice-translations-3.5.4.4.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libreoffice-branding-upstream.spec ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:35.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:35.000000000 +0200
@@ -17,10 +17,10 @@
 
 
 Name:           libreoffice-branding-upstream
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
-%define         lo_build_version 3.5.4.3
-%define         lo_piece_version 3.5.4.3
+%define         lo_build_version 3.5.4.4
+%define         lo_piece_version 3.5.4.4
 %define         lo_sourcedirname libreoffice-build-%lo_piece_version
 %define         lo_home          libreoffice
 Summary:        Original Branding for LibreOffice

++++++ libreoffice-help-en-US.spec ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:35.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:35.000000000 +0200
@@ -22,7 +22,7 @@
 ## Generated by:
 ## perl lo-help-gen-spec libreoffice-help-en-US.spec.in lo-help-en-US
 ###################################################################
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
 %define         gnu_make_version  3.82
 %define         gnu_make_snapshot 20120301

++++++ libreoffice-help-group1.spec ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:35.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:35.000000000 +0200
@@ -22,7 +22,7 @@
 ## Generated by:
 ## perl lo-help-gen-spec libreoffice-help-groupX.spec.in lo-help-groupX
 ###################################################################
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
 %define         gnu_make_version  3.82
 %define         gnu_make_snapshot 20120301

libreoffice-help-group2.spec: same change
libreoffice-help-group3.spec: same change
libreoffice-help-group4.spec: same change
libreoffice-help-group5.spec: same change
++++++ libreoffice-icon-themes.spec ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:35.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:35.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           libreoffice-icon-themes
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
 %define         ooo_home          libreoffice
 BuildRequires:  libreoffice-icon-themes-prebuilt = %version

++++++ libreoffice-l10n.spec ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:35.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:35.000000000 +0200
@@ -22,7 +22,7 @@
 ## perl lo-l10n-gen-spec libreoffice-l10n.spec.in lo-l10n-data
 ###################################################################
 Name:           libreoffice-l10n
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
 %define         piece             l10n
 %define         ooo_home          libreoffice

++++++ libreoffice.spec ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:35.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:35.000000000 +0200
@@ -213,7 +213,7 @@
 # the manifest file must be in the right place; registration does not work 
with some repacked jars
 %define                __jar_repack    %{nil}
 %endif
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
 Requires:       libreoffice-branding < 4
 Requires:       libreoffice-branding > 3.2.99.3
@@ -568,11 +568,10 @@
 Source1039:     97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
 Source1040:     
0981bda6548a8c8233ffce2b6e4b2a23-mysql-connector-c++-1.1.0.tar.gz
 Source1041:     7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz
-Source1042:     2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2
+Source1042:     90010e213dd25648e70f0cc12f8fed55-libvisio-0.0.17.tar.bz2
 Source1043:     d7a242ca43e33e1b63d3073f9d46a6a8-librsvg-2.32.1.tar.gz
 #
-# allow to unpack source tarballs
-# pushed upstream for 3.5.3
+# mark share/config/javasettingsunopkginstall.xml as %config; it is updated by 
unopkg in %post
 Patch1:         javasetting-mark-config.diff
 # search application icons in /usr/share
 # FIXME: search both lib and lib64 and push into git
@@ -585,7 +584,7 @@
 Patch4:         solenv-carefull-patching-hack.diff
 # change user config dir name from ~/.libreoffice/3 to ~/.libreoffice/3-suse
 # to avoid BerkleyDB incompatibility with the plain build
-# FIXME: make it configurable in integrate into git
+# FIXME: make it configurable and push upstream
 Patch5:         scp2-user-config-suse.diff
 # fix library link order to work with link as needed
 # pushed upstream for 3.6.0 except for fpicker; it was moved to vcl and 
gbuildized
@@ -600,7 +599,7 @@
 # FIXME: make it configurable to push upstream
 Patch9:         office-cfg-linux-common-template-dir.diff
 # correctly bootstrap python stuff with system python, (deb#501028, i#90701)
-# is this solutions stull used in other distributions?
+# is this solutions still used in other distributions?
 Patch10:        system-python-ure-bootstrap.diff
 # do not use the broken help; unopkg complained about it when registering 
extensions
 # FIXME: the right fix is to compile the help and produce the .db_, .ht_, and 
other files
@@ -1424,7 +1423,7 @@
 export 
PATH="$RPM_BUILD_DIR/libreoffice-core-%version/make-%gnu_make_version-gbuild:$PATH:/usr/sbin"
 # use the extra built zip-3.0 on older distributions
 %if %suse_version < 1140
-export PATH="$RPM_BUILD_DIR/libreoffice-core-%version/zip30:$PATH:/usr/sbin"
+export PATH="$RPM_BUILD_DIR/libreoffice-core-%version/zip30:$PATH"
 %endif
 #
 %if %prepare_build != 0











++++++ 2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2 -> 
90010e213dd25648e70f0cc12f8fed55-libvisio-0.0.17.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/ChangeLog 
new/libvisio-0.0.17/ChangeLog
--- old/libvisio-0.0.16/ChangeLog       2012-04-16 11:31:51.000000000 +0200
+++ new/libvisio-0.0.17/ChangeLog       2012-05-31 15:36:33.000000000 +0200
@@ -1,3 +1,55 @@
+2012-05-31  Fridrich Štrba  <[email protected]>  
[6d92fd7a8824c9f7aa5c0570982dccc14333863f]
+
+       Unused variable
+
+
+2012-05-31  Julien Nabet  <[email protected]>  
[870bd8035177446209d70efb8c3272c9c9a56491]
+
+       Resolves: fdo#50178 Reading Visio file causes crash
+
+       Problem with iterators, more info here :
+       
http://nabble.documentfoundation.org/PATCH-fix-proposed-for-fdo-50178-Visio-td3985678.html
+
+2012-05-31  Fridrich Štrba  <[email protected]>  
[8d2d1c8c5b9a85b841843c51e546d7f121b414ec]
+
+       include stdint.h and inttypes.h inconditionally in no-autofoo 
no-windows build
+
+
+2012-05-30  Fridrich Štrba  <[email protected]>  
[e5b3ed97f3fa7e7ac74ffc2571e04513dbd22091]
+
+       Group the filled and stroked paths that are part of the same geometry
+
+
+2012-05-30  Fridrich Štrba  <[email protected]>  
[eeb3bf5fdbd59fcf2e20861abc15596c52a892eb]
+
+       Bumping version
+
+
+2012-05-30  Fridrich Štrba  <[email protected]>  
[93971d5cdf3521dc015fe968609c0d2dc643bb63]
+
+       Split fill and line to emulate Visio's idea about shapes
+
+
+2012-05-29  Fridrich Štrba  <[email protected]>  
[1e8f7afacffd50922e2798a9f7c237dd59459141]
+
+       Write out also the background pages after normal pages
+
+
+2012-05-29  Fridrich Štrba  <[email protected]>  
[9371595a11a0858fc55ea9fce67dba12b39a6e3e]
+
+       Drawing pages in right order
+
+
+2012-05-16  Fridrich Štrba  <[email protected]>  
[6d579c759f482b245ed350a4be04006a3cad32a8]
+
+       Don't allow typedetection propagate exceptions
+
+
+2012-04-16  Fridrich Štrba  <[email protected]>  
[3d59fc77396d29515227de1549e2db5207e17359]
+
+       Bump version
+
+
 2012-04-14  Fridrich Štrba  <[email protected]>  
[319615a261cc459cac600e20e21564f2ca8a2220]
 
        A better fix that does not alter Bruno's work
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/configure 
new/libvisio-0.0.17/configure
--- old/libvisio-0.0.16/configure       2012-04-16 11:30:56.000000000 +0200
+++ new/libvisio-0.0.17/configure       2012-05-31 15:17:35.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libvisio 0.0.16.
+# Generated by GNU Autoconf 2.68 for libvisio 0.0.17.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -567,8 +567,8 @@
 # Identity of this package.
 PACKAGE_NAME='libvisio'
 PACKAGE_TARNAME='libvisio'
-PACKAGE_VERSION='0.0.16'
-PACKAGE_STRING='libvisio 0.0.16'
+PACKAGE_VERSION='0.0.17'
+PACKAGE_STRING='libvisio 0.0.17'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1333,7 +1333,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 libvisio 0.0.16 to adapt to many kinds of systems.
+\`configure' configures libvisio 0.0.17 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1403,7 +1403,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libvisio 0.0.16:";;
+     short | recursive ) echo "Configuration of libvisio 0.0.17:";;
    esac
   cat <<\_ACEOF
 
@@ -1522,7 +1522,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libvisio configure 0.0.16
+libvisio configure 0.0.17
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1952,7 +1952,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libvisio $as_me 0.0.16, which was
+It was created by libvisio $as_me 0.0.17, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2770,7 +2770,7 @@
 
 # Define the identity of the package.
  PACKAGE='libvisio'
- VERSION='0.0.16'
+ VERSION='0.0.17'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15520,9 +15520,9 @@
 
 VSD_MINOR_VERSION=0
 
-VSD_MICRO_VERSION=16
+VSD_MICRO_VERSION=17
 
-VSD_VERSION=0.0.16
+VSD_VERSION=0.0.17
 
 # AC_SUBST(LT_RELEASE, [libvisio_version_major.libvisio_version_minor])
 LT_CURRENT=`expr 100 '*' 0 + 0`
@@ -15530,7 +15530,7 @@
 LT_AGE=0
 # LT_AGE=libvisio_version_minor
 
-LT_REVISION=16
+LT_REVISION=17
 
 
 
@@ -16469,7 +16469,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libvisio $as_me 0.0.16, which was
+This file was extended by libvisio $as_me 0.0.17, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16535,7 +16535,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libvisio config.status 0.0.16
+libvisio config.status 0.0.17
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/configure.ac 
new/libvisio-0.0.17/configure.ac
--- old/libvisio-0.0.16/configure.ac    2012-04-16 11:30:47.000000000 +0200
+++ new/libvisio-0.0.17/configure.ac    2012-05-30 14:29:03.000000000 +0200
@@ -7,7 +7,7 @@
 # ====================
 m4_define([libvisio_version_major],[0])
 m4_define([libvisio_version_minor],[0])
-m4_define([libvisio_version_micro],[16])
+m4_define([libvisio_version_micro],[17])
 
m4_define([libvisio_version],[libvisio_version_major.libvisio_version_minor.libvisio_version_micro])
 
 # =============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/libvisio.spec 
new/libvisio-0.0.17/libvisio.spec
--- old/libvisio-0.0.16/libvisio.spec   2012-04-16 11:31:29.000000000 +0200
+++ new/libvisio-0.0.17/libvisio.spec   2012-05-31 15:17:54.000000000 +0200
@@ -1,5 +1,5 @@
 %define name libvisio
-%define version 0.0.16
+%define version 0.0.17
 %define RELEASE 1
 %define release     %{?CUSTOM_RELEASE} %{!?CUSTOM_RELEASE:%RELEASE}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXCollector.h 
new/libvisio-0.0.17/src/lib/VSDXCollector.h
--- old/libvisio-0.0.16/src/lib/VSDXCollector.h 2012-01-17 19:19:29.000000000 
+0100
+++ new/libvisio-0.0.17/src/lib/VSDXCollector.h 2012-05-30 14:29:03.000000000 
+0200
@@ -119,7 +119,7 @@
   // Temporary hack
   virtual void startPage() = 0;
   virtual void endPage() = 0;
-  virtual void endPages() = 0;
+  virtual void endPages(const std::vector<unsigned> &pageOrder) = 0;
 
 protected:
   const ::WPXString getColourString(const Colour &c) const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXContentCollector.cpp 
new/libvisio-0.0.17/src/lib/VSDXContentCollector.cpp
--- old/libvisio-0.0.16/src/lib/VSDXContentCollector.cpp        2012-04-14 
17:29:03.000000000 +0200
+++ new/libvisio-0.0.17/src/lib/VSDXContentCollector.cpp        2012-05-31 
15:14:42.000000000 +0200
@@ -56,7 +56,7 @@
   m_painter(painter), m_isPageStarted(false), m_pageWidth(0.0), 
m_pageHeight(0.0),
   m_shadowOffsetX(0.0), m_shadowOffsetY(0.0),
   m_scale(1.0), m_x(0.0), m_y(0.0), m_originalX(0.0), m_originalY(0.0), 
m_xform(),
-  m_txtxform(0), m_currentGeometry(), m_groupXForms(groupXFormsSequence[0]),
+  m_txtxform(0), m_currentFillGeometry(), m_currentLineGeometry(), 
m_groupXForms(groupXFormsSequence[0]),
   m_currentForeignData(), m_currentOLEData(), m_currentForeignProps(),
   m_currentShapeId(0), m_foreignType(0), m_foreignFormat(0), 
m_foreignOffsetX(0.0),
   m_foreignOffsetY(0.0), m_foreignWidth(0.0), m_foreignHeight(0.0), 
m_styleProps(),
@@ -570,64 +570,78 @@
 void libvisio::VSDXContentCollector::_flushCurrentPath()
 {
   WPXPropertyListVector path;
-  double startX = 0;
-  double startY = 0;
-  double x = 0;
-  double y = 0;
+  WPXPropertyList fillPathProps(m_styleProps);
+  fillPathProps.insert("draw:stroke", "none");
+  WPXPropertyList linePathProps(m_styleProps);
+  linePathProps.insert("draw:fill", "none");
   bool firstPoint = true;
   bool wasMove = false;
+  bool needsGroup = true;
 
-  for (unsigned i = 0; i < m_currentGeometry.size(); i++)
+  if (!m_styleProps["draw:fill"] || m_styleProps["draw:fill"]->getStr() == 
"none")
+    needsGroup = false;
+  if (m_currentFillGeometry.empty())
+    needsGroup = false;
+  if (!m_styleProps["draw:stroke"] || m_styleProps["draw:stroke"]->getStr() == 
"none")
+    needsGroup = false;
+  if (m_currentLineGeometry.empty())
+    needsGroup = false;
+
+  if (needsGroup)
+    m_shapeOutputDrawing->addStartLayer(WPXPropertyList());
+
+  if (m_styleProps["draw:fill"] && m_styleProps["draw:fill"]->getStr() != 
"none")
   {
-    if (firstPoint)
+    for (unsigned i = 0; i < m_currentFillGeometry.size(); i++)
     {
-      x = m_currentGeometry[i]["svg:x"]->getDouble();
-      y = m_currentGeometry[i]["svg:y"]->getDouble();
-      startX = x;
-      startY = y;
-      firstPoint = false;
-      wasMove = true;
-    }
-    else if (m_currentGeometry[i]["libwpg:path-action"]->getStr() == "M")
-    {
-      if (((startX == x && startY == y)
-           || (m_styleProps["draw:fill"] && 
m_styleProps["draw:fill"]->getStr() != "none"
-               && m_styleProps["draw:stroke"] && 
m_styleProps["draw:stroke"]->getStr() == "none"))
-          && path.count() && !wasMove)
+      if (firstPoint)
+      {
+        firstPoint = false;
+        wasMove = true;
+      }
+      else if (m_currentFillGeometry[i]["libwpg:path-action"]->getStr() == "M")
       {
-        WPXPropertyList closedPath;
-        closedPath.insert("libwpg:path-action", "Z");
-        path.append(closedPath);
+        if (path.count() && !wasMove)
+        {
+          WPXPropertyList closedPath;
+          closedPath.insert("libwpg:path-action", "Z");
+          path.append(closedPath);
+        }
+        wasMove = true;
       }
-      x = m_currentGeometry[i]["svg:x"]->getDouble();
-      y = m_currentGeometry[i]["svg:y"]->getDouble();
-      startX = x;
-      startY = y;
-      wasMove = true;
+      else
+        wasMove = false;
+      path.append(m_currentFillGeometry[i]);
     }
-    else
+    if (path.count() && !wasMove)
     {
-      x = m_currentGeometry[i]["svg:x"]->getDouble();
-      y = m_currentGeometry[i]["svg:y"]->getDouble();
-      wasMove = false;
+      WPXPropertyList closedPath;
+      closedPath.insert("libwpg:path-action", "Z");
+      path.append(closedPath);
+    }
+    if (path.count())
+    {
+      m_shapeOutputDrawing->addStyle(fillPathProps, WPXPropertyListVector());
+      m_shapeOutputDrawing->addPath(path);
     }
-    path.append(m_currentGeometry[i]);
-  }
-  if (((startX == x && startY == y)
-       || (m_styleProps["draw:fill"] && m_styleProps["draw:fill"]->getStr() != 
"none"
-           && m_styleProps["draw:stroke"] && 
m_styleProps["draw:stroke"]->getStr() == "none"))
-      && path.count() && !wasMove)
-  {
-    WPXPropertyList closedPath;
-    closedPath.insert("libwpg:path-action", "Z");
-    path.append(closedPath);
   }
-  if (path.count() && !m_noShow)
+  m_currentFillGeometry.clear();
+  path = WPXPropertyListVector();
+
+  if (m_styleProps["draw:stroke"] && m_styleProps["draw:stroke"]->getStr() != 
"none")
   {
-    m_shapeOutputDrawing->addStyle(m_styleProps, WPXPropertyListVector());
-    m_shapeOutputDrawing->addPath(path);
+    for (unsigned i = 0; i < m_currentLineGeometry.size(); i++)
+      path.append(m_currentLineGeometry[i]);
+    if (path.count())
+    {
+      m_shapeOutputDrawing->addStyle(linePathProps, WPXPropertyListVector());
+      m_shapeOutputDrawing->addPath(path);
+    }
   }
-  m_currentGeometry.clear();
+  m_currentLineGeometry.clear();
+
+  if (needsGroup)
+    m_shapeOutputDrawing->addEndLayer();
 }
 
 void libvisio::VSDXContentCollector::_flushText()
@@ -968,7 +982,10 @@
     end.insert("svg:x", m_scale*m_x);
     end.insert("svg:y", m_scale*m_y);
     end.insert("libwpg:path-action", "L");
-    m_currentGeometry.push_back(end);
+    if (!m_noFill && !m_noShow)
+      m_currentFillGeometry.push_back(end);
+    if (!m_noLine && !m_noShow)
+      m_currentLineGeometry.push_back(end);
     return;
   }
 
@@ -1005,7 +1022,10 @@
   arc.insert("svg:x", m_scale*m_x);
   arc.insert("svg:y", m_scale*m_y);
   arc.insert("libwpg:path-action", "A");
-  m_currentGeometry.push_back(arc);
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(arc);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(arc);
 }
 
 void libvisio::VSDXContentCollector::collectEllipse(unsigned /* id */, 
unsigned level, double cx, double cy, double xleft, double yleft, double xtop, 
double ytop)
@@ -1030,7 +1050,10 @@
   ellipse.insert("svg:x",m_scale*xleft);
   ellipse.insert("svg:y",m_scale*yleft);
   ellipse.insert("libwpg:path-action", "M");
-  m_currentGeometry.push_back(ellipse);
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(ellipse);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(ellipse);
   ellipse.insert("svg:rx",m_scale*rx);
   ellipse.insert("svg:ry",m_scale*ry);
   ellipse.insert("svg:x",m_scale*xtop);
@@ -1038,12 +1061,17 @@
   ellipse.insert("libwpg:large-arc", largeArc?1:0);
   ellipse.insert("libwpg:path-action", "A");
   ellipse.insert("libwpg:rotate", angle * 180/M_PI, WPX_GENERIC);
-  m_currentGeometry.push_back(ellipse);
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(ellipse);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(ellipse);
   ellipse.insert("svg:x",m_scale*xleft);
   ellipse.insert("svg:y",m_scale*yleft);
   ellipse.insert("libwpg:large-arc", largeArc?0:1);
-  m_currentGeometry.push_back(ellipse);
-
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(ellipse);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(ellipse);
 }
 
 void libvisio::VSDXContentCollector::collectInfiniteLine(unsigned /* id */, 
unsigned level, double x1, double y1, double x2, double y2)
@@ -1119,11 +1147,17 @@
   infLine.insert("svg:x",m_scale*xmove);
   infLine.insert("svg:y",m_scale*ymove);
   infLine.insert("libwpg:path-action", "M");
-  m_currentGeometry.push_back(infLine);
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(infLine);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(infLine);
   infLine.insert("svg:x",m_scale*xline);
   infLine.insert("svg:y",m_scale*yline);
   infLine.insert("libwpg:path-action", "L");
-  m_currentGeometry.push_back(infLine);
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(infLine);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(infLine);
 }
 
 void libvisio::VSDXContentCollector::collectLine(unsigned /* id */, unsigned 
level, double strokeWidth, Colour c, unsigned linePattern, unsigned char 
startMarker, unsigned char endMarker, unsigned lineCap)
@@ -1278,24 +1312,17 @@
   m_y = 0.0;
   m_originalX = 0.0;
   m_originalY = 0.0;
-  bool noFill = ((geomFlags & 1) == 1);
-  bool noLine = ((geomFlags & 2) == 2);
-  bool noShow = ((geomFlags & 4) == 4);
-
-  if ((m_noFill != noFill) || (m_noLine != noLine) || (m_noShow != noShow) || 
m_isFirstGeometry)
-    _flushCurrentPath();
+  m_noFill = ((geomFlags & 1) == 1);
+  m_noLine = ((geomFlags & 2) == 2);
+  m_noShow = ((geomFlags & 4) == 4);
 
   _applyLinePattern();
 
-  m_isFirstGeometry = false;
-  m_noFill = noFill;
-  m_noLine = noLine;
-  m_noShow = noShow;
-  if (m_noLine || m_linePattern == 0)
+  if (m_linePattern == 0)
     m_styleProps.insert("draw:stroke", "none");
   else
     m_styleProps.insert("svg:stroke-color", m_lineColour);
-  if (m_noFill || m_fillPattern == 0)
+  if (m_fillPattern == 0)
     m_styleProps.insert("draw:fill", "none");
   else
   {
@@ -1318,7 +1345,10 @@
   end.insert("svg:x", m_scale*m_x);
   end.insert("svg:y", m_scale*m_y);
   end.insert("libwpg:path-action", "M");
-  m_currentGeometry.push_back(end);
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(end);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(end);
 }
 
 void libvisio::VSDXContentCollector::collectLineTo(unsigned /* id */, unsigned 
level, double x, double y)
@@ -1333,7 +1363,10 @@
   end.insert("svg:x", m_scale*m_x);
   end.insert("svg:y", m_scale*m_y);
   end.insert("libwpg:path-action", "L");
-  m_currentGeometry.push_back(end);
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(end);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(end);
 }
 
 void libvisio::VSDXContentCollector::collectArcTo(unsigned /* id */, unsigned 
level, double x2, double y2, double bow)
@@ -1353,7 +1386,10 @@
     end.insert("svg:x", m_scale*m_x);
     end.insert("svg:y", m_scale*m_y);
     end.insert("libwpg:path-action", "L");
-    m_currentGeometry.push_back(end);
+    if (!m_noFill && !m_noShow)
+      m_currentFillGeometry.push_back(end);
+    if (!m_noLine && !m_noShow)
+      m_currentLineGeometry.push_back(end);
   }
   else
   {
@@ -1374,7 +1410,10 @@
     arc.insert("svg:x", m_scale*m_x);
     arc.insert("svg:y", m_scale*m_y);
     arc.insert("libwpg:path-action", "A");
-    m_currentGeometry.push_back(arc);
+    if (!m_noFill && !m_noShow)
+      m_currentFillGeometry.push_back(arc);
+    if (!m_noLine && !m_noShow)
+      m_currentLineGeometry.push_back(arc);
   }
 }
 
@@ -1430,7 +1469,10 @@
     transformPoint(nextX, nextY);
     NURBS.insert("svg:x", m_scale*nextX);
     NURBS.insert("svg:y", m_scale*nextY);
-    m_currentGeometry.push_back(NURBS);
+    if (!m_noFill && !m_noShow)
+      m_currentFillGeometry.push_back(NURBS);
+    if (!m_noLine && !m_noShow)
+      m_currentLineGeometry.push_back(NURBS);
   }
 
   m_originalX = x2;
@@ -1442,8 +1484,10 @@
   NURBS.insert("libwpg:path-action", "L");
   NURBS.insert("svg:x", m_scale*m_x);
   NURBS.insert("svg:y", m_scale*m_y);
-  m_currentGeometry.push_back(NURBS);
-
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(NURBS);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(NURBS);
 }
 
 double libvisio::VSDXContentCollector::_NURBSBasis(unsigned knot, unsigned 
degree, double point, const std::vector<double> &knotVector)
@@ -1471,6 +1515,7 @@
 void libvisio::VSDXContentCollector::collectNURBSTo(unsigned id, unsigned 
level, double x2, double y2, double knot, double knotPrev, double weight, 
double weightPrev, unsigned dataID)
 {
   std::map<unsigned, NURBSData>::const_iterator iter;
+  std::map<unsigned, NURBSData>::const_iterator iterEnd;
   NURBSData data;
   if (dataID == 0xFFFFFFFE) // Use stencil NURBS data
   {
@@ -1490,13 +1535,15 @@
     }
     dataID = tmpElement->m_dataID;
     iter = m_stencilShape->m_nurbsData.find(dataID);
+    iterEnd =  m_stencilShape->m_nurbsData.end();
   }
   else // No stencils involved, directly get dataID and fill in missing parts
   {
     iter = m_NURBSData.find(dataID);
+    iterEnd = m_NURBSData.end();
   }
 
-  if (iter != m_NURBSData.end())
+  if (iter != iterEnd)
   {
     data = iter->second;
     data.knots.push_back(knot);
@@ -1527,7 +1574,10 @@
     polyline.insert("libwpg:path-action", "L");
     polyline.insert("svg:x", m_scale*points[i].first);
     polyline.insert("svg:y", m_scale*points[i].second);
-    m_currentGeometry.push_back(polyline);
+    if (!m_noFill && !m_noShow)
+      m_currentFillGeometry.push_back(polyline);
+    if (!m_noLine && !m_noShow)
+      m_currentLineGeometry.push_back(polyline);
   }
 
   m_originalX = x;
@@ -1538,7 +1588,10 @@
   polyline.insert("libwpg:path-action", "L");
   polyline.insert("svg:x", m_scale*m_x);
   polyline.insert("svg:y", m_scale*m_y);
-  m_currentGeometry.push_back(polyline);
+  if (!m_noFill && !m_noShow)
+    m_currentFillGeometry.push_back(polyline);
+  if (!m_noLine && !m_noShow)
+    m_currentLineGeometry.push_back(polyline);
 }
 
 /* Polyline with incomplete data */
@@ -1771,6 +1824,7 @@
   m_noLine = false;
   m_noFill = false;
   m_noShow = false;
+  m_isFirstGeometry = true;
 
   // Save line colour and pattern, fill type and pattern
   m_fillType = "none";
@@ -2169,7 +2223,7 @@
         m_NURBSData = m_stencilShape->m_nurbsData;
         m_polylineData = m_stencilShape->m_polylineData;
 
-        if (m_currentGeometry.empty())
+        if (m_currentFillGeometry.empty() && m_currentLineGeometry.empty() && 
!m_noShow)
         {
           for (unsigned i = 0; i < m_stencilShape->m_geometries.size(); i++)
           {
@@ -2241,8 +2295,9 @@
   }
 }
 
-void libvisio::VSDXContentCollector::endPages()
+void libvisio::VSDXContentCollector::endPages(const std::vector<unsigned> 
&pageOrder)
 {
+  m_pages.setOrder(pageOrder);
   m_pages.draw(m_painter);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXContentCollector.h 
new/libvisio-0.0.17/src/lib/VSDXContentCollector.h
--- old/libvisio-0.0.16/src/lib/VSDXContentCollector.h  2012-02-20 
09:13:31.000000000 +0100
+++ new/libvisio-0.0.17/src/lib/VSDXContentCollector.h  2012-05-30 
14:29:03.000000000 +0200
@@ -139,7 +139,7 @@
 
   void startPage();
   void endPage();
-  void endPages();
+  void endPages(const std::vector<unsigned> &pageOrder);
 
 
 private:
@@ -195,7 +195,8 @@
   double m_originalY;
   XForm m_xform;
   XForm *m_txtxform;
-  std::vector<WPXPropertyList> m_currentGeometry;
+  std::vector<WPXPropertyList> m_currentFillGeometry;
+  std::vector<WPXPropertyList> m_currentLineGeometry;
   std::map<unsigned, XForm> &m_groupXForms;
   WPXBinaryData m_currentForeignData;
   WPXBinaryData m_currentOLEData;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXOutputElementList.cpp 
new/libvisio-0.0.17/src/lib/VSDXOutputElementList.cpp
--- old/libvisio-0.0.16/src/lib/VSDXOutputElementList.cpp       2012-01-17 
19:19:29.000000000 +0100
+++ new/libvisio-0.0.17/src/lib/VSDXOutputElementList.cpp       2012-05-30 
14:29:03.000000000 +0200
@@ -121,6 +121,34 @@
 };
 
 
+class VSDXStartLayerOutputElement : public VSDXOutputElement
+{
+public:
+  VSDXStartLayerOutputElement(const WPXPropertyList &propList);
+  virtual ~VSDXStartLayerOutputElement() {}
+  virtual void draw(libwpg::WPGPaintInterface *painter);
+  virtual VSDXOutputElement *clone()
+  {
+    return new VSDXStartLayerOutputElement(m_propList);
+  }
+private:
+  WPXPropertyList m_propList;
+};
+
+
+class VSDXEndLayerOutputElement : public VSDXOutputElement
+{
+public:
+  VSDXEndLayerOutputElement();
+  virtual ~VSDXEndLayerOutputElement() {}
+  virtual void draw(libwpg::WPGPaintInterface *painter);
+  virtual VSDXOutputElement *clone()
+  {
+    return new VSDXEndLayerOutputElement();
+  }
+};
+
+
 class VSDXStartTextSpanOutputElement : public VSDXOutputElement
 {
 public:
@@ -240,6 +268,25 @@
 }
 
 
+libvisio::VSDXStartLayerOutputElement::VSDXStartLayerOutputElement(const 
WPXPropertyList &propList) :
+  m_propList(propList) {}
+
+void libvisio::VSDXStartLayerOutputElement::draw(libwpg::WPGPaintInterface 
*painter)
+{
+  if (painter)
+    painter->startLayer(m_propList);
+}
+
+
+libvisio::VSDXEndLayerOutputElement::VSDXEndLayerOutputElement() {}
+
+void libvisio::VSDXEndLayerOutputElement::draw(libwpg::WPGPaintInterface 
*painter)
+{
+  if (painter)
+    painter->endLayer();
+}
+
+
 libvisio::VSDXStartTextLineOutputElement::VSDXStartTextLineOutputElement(const 
WPXPropertyList &propList) :
   m_propList(propList) {}
 
@@ -381,4 +428,14 @@
   m_elements.push_back(new VSDXEndTextObjectOutputElement());
 }
 
+void libvisio::VSDXOutputElementList::addStartLayer(const WPXPropertyList 
&propList)
+{
+  m_elements.push_back(new VSDXStartLayerOutputElement(propList));
+}
+
+void libvisio::VSDXOutputElementList::addEndLayer()
+{
+  m_elements.push_back(new VSDXEndLayerOutputElement());
+}
+
 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXOutputElementList.h 
new/libvisio-0.0.17/src/lib/VSDXOutputElementList.h
--- old/libvisio-0.0.16/src/lib/VSDXOutputElementList.h 2012-02-22 
15:17:20.000000000 +0100
+++ new/libvisio-0.0.17/src/lib/VSDXOutputElementList.h 2012-05-30 
14:29:03.000000000 +0200
@@ -61,6 +61,8 @@
   void addEndTextSpan();
   void addEndTextLine();
   void addEndTextObject();
+  void addStartLayer(const WPXPropertyList &propList);
+  void addEndLayer();
   bool empty() const
   {
     return m_elements.empty();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXPages.cpp 
new/libvisio-0.0.17/src/lib/VSDXPages.cpp
--- old/libvisio-0.0.16/src/lib/VSDXPages.cpp   2012-01-17 19:19:29.000000000 
+0100
+++ new/libvisio-0.0.17/src/lib/VSDXPages.cpp   2012-05-30 14:29:03.000000000 
+0200
@@ -71,7 +71,7 @@
 }
 
 libvisio::VSDXPages::VSDXPages()
-  : m_pages()
+  : m_pages(), m_pagesOrder()
 {
 }
 
@@ -80,20 +80,44 @@
   m_pages[page.m_currentPageID] = page;
 }
 
+void libvisio::VSDXPages::setOrder(const std::vector<unsigned> &pagesOrder)
+{
+  m_pagesOrder = pagesOrder;
+}
+
 void libvisio::VSDXPages::draw(libwpg::WPGPaintInterface *painter)
 {
   if (!painter)
     return;
 
-  for (std::map<unsigned, libvisio::VSDXPage>::iterator iter = 
m_pages.begin(); iter != m_pages.end(); ++iter)
+  std::map<unsigned, libvisio::VSDXPage>::iterator iter;
+  if (!m_pagesOrder.empty())
   {
-    WPXPropertyList pageProps;
-    pageProps.insert("svg:width", iter->second.m_pageWidth);
-    pageProps.insert("svg:height", iter->second.m_pageHeight);
-    painter->startGraphics(pageProps);
-    _drawWithBackground(painter, iter->second);
-    painter->endGraphics();
+    for (unsigned i = 0; i < m_pagesOrder.size(); i++)
+    {
+      iter = m_pages.find(m_pagesOrder[i]);
+      if (iter != m_pages.end())
+      {
+        _drawPage(painter, iter->second);
+        m_pages.erase(iter);
+      }
+    }
   }
+  for (iter = m_pages.begin(); iter != m_pages.end(); ++iter)
+    _drawPage(painter, iter->second);
+}
+
+void libvisio::VSDXPages::_drawPage(libwpg::WPGPaintInterface *painter, const 
libvisio::VSDXPage &page)
+{
+  if (!painter)
+    return;
+
+  WPXPropertyList pageProps;
+  pageProps.insert("svg:width", page.m_pageWidth);
+  pageProps.insert("svg:height", page.m_pageHeight);
+  painter->startGraphics(pageProps);
+  _drawWithBackground(painter, page);
+  painter->endGraphics();
 }
 
 void libvisio::VSDXPages::_drawWithBackground(libwpg::WPGPaintInterface 
*painter, const libvisio::VSDXPage &page)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXPages.h 
new/libvisio-0.0.17/src/lib/VSDXPages.h
--- old/libvisio-0.0.16/src/lib/VSDXPages.h     2011-11-10 13:21:45.000000000 
+0100
+++ new/libvisio-0.0.17/src/lib/VSDXPages.h     2012-05-30 14:29:03.000000000 
+0200
@@ -56,10 +56,13 @@
   VSDXPages();
   ~VSDXPages();
   void addPage(const VSDXPage &page);
+  void setOrder(const std::vector<unsigned> &pageOrder);
   void draw(libwpg::WPGPaintInterface *painter);
 private:
   void _drawWithBackground(libwpg::WPGPaintInterface *painter, const VSDXPage 
&page);
+  void _drawPage(libwpg::WPGPaintInterface *painter, const VSDXPage &page);
   std::map<unsigned, VSDXPage> m_pages;
+  std::vector<unsigned> m_pagesOrder;
 };
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXParser.cpp 
new/libvisio-0.0.17/src/lib/VSDXParser.cpp
--- old/libvisio-0.0.16/src/lib/VSDXParser.cpp  2012-02-20 09:47:52.000000000 
+0100
+++ new/libvisio-0.0.17/src/lib/VSDXParser.cpp  2012-05-30 14:29:03.000000000 
+0200
@@ -181,11 +181,14 @@
 
   input->seek(shift, WPX_SEEK_CUR);
   unsigned offset = readU32(input);
-  input->seek(offset+shift, WPX_SEEK_SET);
+  input->seek(offset+shift-4, WPX_SEEK_SET);
+  unsigned listSize = readU32(input);
   unsigned pointerCount = readU32(input);
   input->seek(4, WPX_SEEK_CUR); // Ignore 0x0 dword
 
-  for (unsigned i = 0; i < pointerCount; i++)
+  unsigned numPages = 0;
+  unsigned i = 0;
+  for (i = 0 ; i < pointerCount; i++)
   {
     ptrType = readU32(input);
     input->seek(4, WPX_SEEK_CUR); // Skip dword
@@ -201,6 +204,7 @@
     {
     case VSD_PAGE:
       m_currentPageID = i;
+      numPages++;
       handlePage(&tmpInput);
       break;
     case VSD_PAGES:             // shouldn't happen
@@ -216,7 +220,10 @@
       break;
     }
   }
-  m_collector->endPages();
+  std::vector<unsigned> pageOrder;
+  for (i = 0; i < listSize; ++i)
+    pageOrder.push_back(readU32(input));
+  m_collector->endPages(pageOrder);
 }
 
 void libvisio::VSDXParser::handleStyles(WPXInputStream *input)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VSDXStylesCollector.h 
new/libvisio-0.0.17/src/lib/VSDXStylesCollector.h
--- old/libvisio-0.0.16/src/lib/VSDXStylesCollector.h   2012-01-17 
19:19:29.000000000 +0100
+++ new/libvisio-0.0.17/src/lib/VSDXStylesCollector.h   2012-05-31 
15:35:48.000000000 +0200
@@ -133,7 +133,7 @@
   // Temporary hack
   void startPage();
   void endPage();
-  void endPages() {}
+  void endPages(const std::vector<unsigned> &) {}
 
   VSDXStyles getStyleSheets() const
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/VisioDocument.cpp 
new/libvisio-0.0.17/src/lib/VisioDocument.cpp
--- old/libvisio-0.0.16/src/lib/VisioDocument.cpp       2012-04-13 
10:54:19.000000000 +0200
+++ new/libvisio-0.0.17/src/lib/VisioDocument.cpp       2012-05-30 
14:29:03.000000000 +0200
@@ -45,24 +45,34 @@
 */
 bool libvisio::VisioDocument::isSupported(WPXInputStream *input)
 {
-  input->seek(0, WPX_SEEK_SET);
-  if (!input->isOLEStream())
-    return false;
-  WPXInputStream *tmpDocStream = input->getDocumentOLEStream("VisioDocument");
-  if (!tmpDocStream)
-    return false;
+  WPXInputStream *tmpDocStream = 0;
+  try
+  {
+    input->seek(0, WPX_SEEK_SET);
+    if (!input->isOLEStream())
+      return false;
+    tmpDocStream = input->getDocumentOLEStream("VisioDocument");
+    if (!tmpDocStream)
+      return false;
 
-  tmpDocStream->seek(0x1A, WPX_SEEK_SET);
+    tmpDocStream->seek(0x1A, WPX_SEEK_SET);
 
-  unsigned char version = readU8(tmpDocStream);
-  delete tmpDocStream;
+    unsigned char version = readU8(tmpDocStream);
+    delete tmpDocStream;
 
-  VSD_DEBUG_MSG(("VisioDocument: version %i\n", version));
+    VSD_DEBUG_MSG(("VisioDocument: version %i\n", version));
 
-  // Versions 2k (6) and 2k3 (11)
-  if (version == 6 || version == 11)
+    // Versions 2k (6) and 2k3 (11)
+    if (version == 6 || version == 11)
+    {
+      return true;
+    }
+  }
+  catch (...)
   {
-    return true;
+    if (tmpDocStream)
+      delete tmpDocStream;
+    return false;
   }
 
   return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libvisio-0.0.16/src/lib/libvisio_utils.h 
new/libvisio-0.0.17/src/lib/libvisio_utils.h
--- old/libvisio-0.0.16/src/lib/libvisio_utils.h        2011-11-10 
11:42:47.000000000 +0100
+++ new/libvisio-0.0.17/src/lib/libvisio_utils.h        2012-05-31 
14:59:54.000000000 +0200
@@ -40,11 +40,11 @@
 typedef unsigned uint32_t;
 typedef unsigned __int64 uint64_t;
 
-#else
+#else /* !defined _MSC_VER */
 
 #ifdef HAVE_CONFIG_H
+
 #include <config.h>
-#endif
 
 #ifdef HAVE_STDINT_H
 #include <stdint.h>
@@ -54,7 +54,14 @@
 #include <inttypes.h>
 #endif
 
-#endif
+#else /* !defined HAVE_CONFIG_H */
+
+#include <stdint.h>
+#include <inttypes.h>
+
+#endif /* HAVE_CONFIG_H */
+
+#endif /* _MSC_VER */
 
 #include <libwpd-stream/libwpd-stream.h>
 












++++++ libreoffice-binfilter-3.5.4.3.tar.bz2 -> 
libreoffice-binfilter-3.5.4.4.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/libreoffice/libreoffice-binfilter-3.5.4.3.tar.bz2 
/work/SRC/openSUSE:Factory/.libreoffice.new/libreoffice-binfilter-3.5.4.4.tar.bz2
 differ: char 11, line 1

++++++ libreoffice-core-3.5.4.3.tar.bz2 -> libreoffice-core-3.5.4.4.tar.bz2 
++++++
/work/SRC/openSUSE:Factory/libreoffice/libreoffice-core-3.5.4.3.tar.bz2 
/work/SRC/openSUSE:Factory/.libreoffice.new/libreoffice-core-3.5.4.4.tar.bz2 
differ: char 11, line 1

++++++ libreoffice-help-3.5.4.3.tar.bz2 -> libreoffice-help-3.5.4.4.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libreoffice-help-3.5.4.3/ChangeLog 
new/libreoffice-help-3.5.4.4/ChangeLog
--- old/libreoffice-help-3.5.4.3/ChangeLog      2012-05-17 19:08:45.000000000 
+0200
+++ new/libreoffice-help-3.5.4.4/ChangeLog      2012-06-14 15:04:31.000000000 
+0200
@@ -1,3 +1,9 @@
+2012-06-14  Petr Mladek  <[email protected]>  
[947a8e734f82bbbc8da86344f2917758e7392de1]
+
+Version 3.5.4.4, tag suse-3.5.4.4 (SUSE LO 3.5-beta2)
+
+Change-Id: I8537448bcc7ce0b5885d4a99147729d91c3aa61c
+
 2012-05-17  Petr Mladek  <[email protected]>  
[16e71e2a700e258c0e04315b12e37cdbc8942d75]
 
 Version 3.5.4.3, tag suse-3.5.4.3 (SUSE LO 3.5-beta1)

++++++ libreoffice-help-en-US.spec.in ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:37.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:37.000000000 +0200
@@ -18,7 +18,7 @@
 
 Name:           libreoffice-help-en-US
 @DO_NOT_EDIT_COMMENT@
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
 %define         gnu_make_version  3.82
 %define         gnu_make_snapshot 20120301

++++++ libreoffice-help-groupX.spec.in ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:37.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:37.000000000 +0200
@@ -18,7 +18,7 @@
 
 Name:           libreoffice-help-group@GROUP_NUMBER@
 @DO_NOT_EDIT_COMMENT@
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
 %define         gnu_make_version  3.82
 %define         gnu_make_snapshot 20120301

++++++ libreoffice-l10n.spec.in ++++++
--- /var/tmp/diff_new_pack.Z070j6/_old  2012-06-16 06:57:37.000000000 +0200
+++ /var/tmp/diff_new_pack.Z070j6/_new  2012-06-16 06:57:37.000000000 +0200
@@ -18,7 +18,7 @@
 
 @DO_NOT_EDIT_COMMENT@
 Name:           libreoffice-l10n
-Version:        3.5.4.3
+Version:        3.5.4.4
 Release:        0
 %define         piece             l10n
 %define         ooo_home          libreoffice

++++++ libreoffice-translations-3.5.4.3.tar.bz2 -> 
libreoffice-translations-3.5.4.4.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/libreoffice/libreoffice-translations-3.5.4.3.tar.bz2 
/work/SRC/openSUSE:Factory/.libreoffice.new/libreoffice-translations-3.5.4.4.tar.bz2
 differ: char 11, line 1




-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to