[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.3' - 16 commits - chart2/source desktop/source download.lst extensions/source external/openssl offapi/com oox/source sc/source sd/qa svtools/source sw/inc sw/qa sw/source vcl/source writerfilter/source

Eike Rathke erack at redhat.com
Tue Apr 14 10:09:46 PDT 2015


 chart2/source/view/main/VLegend.cxx                    |    4 
 desktop/source/deployment/gui/dp_gui_extlistbox.cxx    |   21 +-
 download.lst                                           |    4 
 extensions/source/bibliography/bib.hrc                 |   23 ++
 extensions/source/bibliography/datman.cxx              |   59 +++++
 extensions/source/bibliography/general.cxx             |   76 +------
 extensions/source/bibliography/general.hxx             |    1 
 extensions/source/bibliography/sections.hrc            |   23 --
 extensions/source/bibliography/sections.src            |  177 ++++++++---------
 external/openssl/UnpackedTarball_openssl.mk            |   15 -
 external/openssl/openssl-1.0.1g-msvc2012-winxp.patch.1 |    8 
 external/openssl/openssl-1.0.1h-win64.patch.1          |   47 ++++
 external/openssl/openssl-3650-masm.patch.1             |   35 +++
 external/openssl/opensslmingw.patch                    |   68 +++---
 external/openssl/opensslosxppc.patch                   |   15 +
 external/openssl/opensslsol.patch                      |   68 ------
 external/openssl/opensslwnt.patch                      |   64 +++---
 offapi/com/sun/star/awt/Key.idl                        |    1 
 oox/source/drawingml/shape.cxx                         |   17 +
 sc/source/core/data/document.cxx                       |   12 -
 sc/source/core/tool/interpr1.cxx                       |   23 +-
 sd/qa/unit/data/tdf90403.pptx                          |binary
 sd/qa/unit/data/xml/tdf90403_0.xml                     |    4 
 sd/qa/unit/import-tests.cxx                            |    1 
 svtools/source/control/headbar.cxx                     |    3 
 sw/inc/doc.hxx                                         |    8 
 sw/qa/extras/rtfimport/data/tdf75614.rtf               |   18 +
 sw/qa/extras/rtfimport/rtfimport.cxx                   |    6 
 sw/source/core/doc/docnum.cxx                          |    8 
 sw/source/core/edit/ednumber.cxx                       |   18 +
 sw/source/core/undo/undobj.cxx                         |    2 
 sw/source/ui/chrdlg/drpcps.cxx                         |    4 
 vcl/source/gdi/sallayout.cxx                           |   13 -
 writerfilter/source/rtftok/rtfdocumentimpl.cxx         |    6 
 34 files changed, 502 insertions(+), 350 deletions(-)

New commits:
commit 73e873044a612fd8cf9dfa617f58a2472ceb9986
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 13 18:06:46 2015 +0200

    string access out of bounds
    
    Another UniString to OUString conversion fallout.
    
    Change-Id: I5e62b049da3e7f8b5a892ea6aae7110a33564a46
    (cherry picked from commit 9f52efa43b2d65c0b6c92790cc2859e752bf975f)
    Reviewed-on: https://gerrit.libreoffice.org/15287
    Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index c77b72a..55917d7 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -3254,15 +3254,20 @@ void ScInterpreter::ScCode()
 {
 //2do: make it full range unicode?
     OUString aStr = GetString().getString();
-    //"classic" ByteString conversion flags
-    const sal_uInt32 convertFlags =
-        RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE |
-        RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE |
-        RTL_UNICODETOTEXT_FLAGS_FLUSH |
-        RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT |
-        RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT |
-        RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE;
-    PushInt( (unsigned char) OUStringToOString(OUString(aStr[0]), osl_getThreadTextEncoding(), convertFlags).toChar() );
+    if (aStr.isEmpty())
+        PushInt(0);
+    else
+    {
+        //"classic" ByteString conversion flags
+        const sal_uInt32 convertFlags =
+            RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE |
+            RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE |
+            RTL_UNICODETOTEXT_FLAGS_FLUSH |
+            RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT |
+            RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT |
+            RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE;
+        PushInt( (unsigned char) OUStringToOString(OUString(aStr[0]), osl_getThreadTextEncoding(), convertFlags).toChar() );
+    }
 }
 
 
commit b056b9bb629082d8b2facfd470173720c7c5bbf6
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Sun Apr 12 15:01:23 2015 +0200

    tdf#75614 RTF import: fix missing text after footnote
    
    (cherry picked from commit cec5f2eab25578a9859134d697c200089c597faa)
    
    Conflicts:
    	sw/qa/extras/rtfimport/rtfimport.cxx
    
    Change-Id: I5901094cb603c35a1cd8ac718fd434a9dd55729b
    Reviewed-on: https://gerrit.libreoffice.org/15271
    Tested-by: David Tardon <dtardon at redhat.com>
    Reviewed-by: David Tardon <dtardon at redhat.com>

diff --git a/sw/qa/extras/rtfimport/data/tdf75614.rtf b/sw/qa/extras/rtfimport/data/tdf75614.rtf
new file mode 100644
index 0000000..1233801
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/tdf75614.rtf
@@ -0,0 +1,18 @@
+{\rtf1\ansi\ansicpg0\uc1\deff0\deflang0\deflangfe0\fet2
+{\*\ftnsep\pard\plain\chftnsep }
+{\*\ftnsepc\pard\plain\chftnsepc}
+\paperw8391\paperh11906\margl567\margr567\margt567\margb567\headery567\footery6\viewscale150\viewzk0
+{\fonttbl
+{\f0\fnil Arial;}
+{\f1\fnil\fcharset204 times new roman;}
+{\f2\fnil\fcharset204 cambria;}
+{\f3\fnil\fcharset238 cambria;}
+{\f4\fnil\fcharset0 cambria;}
+{\f5\fnil\fcharset204 courier new;}
+{\f6\fnil\fcharset204 arial;}
+}
+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}
+\pard\plain Before\plain \super \chftn
+{\footnote
+\pard Footnote.}
+\plain after.\par}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index aaa14d2..24dee2b 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -2119,6 +2119,12 @@ DECLARE_RTFIMPORT_TEST(testTdf88811, "tdf88811.rtf")
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xDrawPage->getCount());
 }
 
+DECLARE_RTFIMPORT_TEST(testFdo75614, "tdf75614.rtf")
+{
+    // Text after the footnote was missing, so this resulted in a css::container::NoSuchElementException.
+    CPPUNIT_ASSERT_EQUAL(OUString("after."), getRun(getParagraph(1), 3)->getString());
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 24183aa..f00c49c 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2323,8 +2323,12 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword)
     }
     break;
     case RTF_CHFTN:
-        // Nothing to do, dmapper assumes this is the default.
+    {
+        if (m_aStates.top().pCurrentBuffer == &m_aSuperBuffer)
+            // Stop buffering, there will be no custom mark for this footnote or endnote.
+            m_aStates.top().pCurrentBuffer = 0;
         break;
+    }
     case RTF_PAGE:
     {
         // Ignore page breaks inside tables.
commit a49ed808eeaa7b38706dd1a9fde3d0a7d1c9b2f4
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Sat Apr 11 13:17:03 2015 -0500

    some compiler do not like >> but prefer > > in template syntax
    
    ebdaab9d4a042f1338f97628cf0c0f294d7dc059 introduced
    cppu::UnoType<uno::Sequence<OUString>>::get());
    which made some compiler unhappy.
    
    Change-Id: I78b4f4a496b7c40d7b2dad46ad58d3500fd93aed
    Reviewed-on: https://gerrit.libreoffice.org/15250
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/extensions/source/bibliography/datman.cxx b/extensions/source/bibliography/datman.cxx
index 751f692..2171de9 100644
--- a/extensions/source/bibliography/datman.cxx
+++ b/extensions/source/bibliography/datman.cxx
@@ -1395,7 +1395,7 @@ Reference< awt::XControlModel > BibDataManager::loadControlModel(
                 //pListSourceArr[0] = "select TypeName, TypeIndex from TypeNms";
                 for(sal_Int32 i = 0; i < TYPE_COUNT; ++i)
                     pListSourceArr[i] = OUString::number(i);
-                aAny.setValue(&aListSource, cppu::UnoType<uno::Sequence<OUString>>::get());
+                aAny.setValue(&aListSource, cppu::UnoType< uno::Sequence< OUString > >::get());
 
                 xPropSet->setPropertyValue("ListSource", aAny);
 
@@ -1426,7 +1426,7 @@ Reference< awt::XControlModel > BibDataManager::loadControlModel(
                 // empty string if an invalid value no values is set
                 pValuesArr[TYPE_COUNT] = OUString();
 
-                aAny.setValue(&aValues, cppu::UnoType<uno::Sequence<OUString>>::get());
+                aAny.setValue(&aValues, cppu::UnoType< uno::Sequence< OUString > >::get());
 
                 xPropSet->setPropertyValue("StringItemList", aAny);
 
commit 30dc48b73ff305000d264d1f2d7374c7c6bc6474
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Sat Apr 11 13:53:17 2015 -0500

    openssl build breakage on MacOSX 10.6
    
    3217bae01e58e7fe6f075514cf8d2baf89e76afe changed the apply
    of openssllnx.patch to make it unconditinal
    which introduce a -Wa, option that is not supported
    by the 10.6SDK
    
    Change-Id: Ic9f68bad5c7d0694d206bc4d6899ab01009942c0
    Reviewed-on: https://gerrit.libreoffice.org/15252
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/openssl/UnpackedTarball_openssl.mk b/external/openssl/UnpackedTarball_openssl.mk
index 0dbd470..b769082 100644
--- a/external/openssl/UnpackedTarball_openssl.mk
+++ b/external/openssl/UnpackedTarball_openssl.mk
@@ -91,7 +91,7 @@ $(eval $(call gb_UnpackedTarball_fix_end_of_line,openssl,\
 ))
 
 $(eval $(call gb_UnpackedTarball_add_patches,openssl,\
-	external/openssl/openssllnx.patch \
+	$(if $(filter MACOSX1060,$(OS)$(MACOSX_SDK_VERSION)),,external/openssl/openssllnx.patch) \
 	external/openssl/opensslmingw.patch \
 	external/openssl/opensslwnt.patch \
 	external/openssl/openssl-1.0.1g-msvc2012-winxp.patch.1 \
commit 0d92110b9bc8713256294dcf3633f6ce7953bbb4
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri Apr 10 15:06:53 2015 +0200

    rhbz#1197614: Fix calculation of m_bHasActive when removing active element
    
    Assume m_vEntries.size() == 2; assume first element (nPos == 0) is m_bActive,
    gets removed, so m_nActive would have stayed at 0 and m_bHasActive at true; then
    assume second element (again nPos == 0, due to the removed element) is m_bNew,
    so nPos <= m_nActive is true and m_nActive gets updated to 1 (and m_bHasActive
    remains true); then selectEntry(nNewPos) (nNewPos == 0) would have tried to
    reset m_vEntries[1]->m_bActive but now m_vEntries.size() == 1.
    
    Change-Id: I31d3bbe97ca99f880aa99bdea015f7c0457f8331
    (cherry picked from commit 97d4c1a8100c63091401736c93d6bbbb371d5b37)
    Reviewed-on: https://gerrit.libreoffice.org/15232
    Tested-by: David Tardon <dtardon at redhat.com>
    Reviewed-by: David Tardon <dtardon at redhat.com>

diff --git a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
index 42ecca1..42aa6b6 100644
--- a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
+++ b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
@@ -1062,7 +1062,6 @@ long ExtensionBox_Impl::addEntry( const uno::Reference< deployment::XPackage > &
     //access to m_nActive must be guarded
     if ( !m_bInCheckMode && m_bHasActive && ( m_nActive >= nPos ) )
         m_nActive += 1;
-
     guard.clear();
 
     if ( IsReallyVisible() )
@@ -1199,6 +1198,7 @@ void ExtensionBox_Impl::prepareChecking()
 void ExtensionBox_Impl::checkEntries()
 {
     long nNewPos = -1;
+    long nChangedActivePos = -1;
     long nPos = 0;
     bool bNeedsUpdate = false;
 
@@ -1222,15 +1222,19 @@ void ExtensionBox_Impl::checkEntries()
             }
             else
             {   // remove entry from list
+                if (nPos < nNewPos) {
+                    --nNewPos;
+                }
+                if (nPos < nChangedActivePos) {
+                    --nChangedActivePos;
+                }
                 if ( nPos < m_nActive )
                     m_nActive -= 1;
-                else if ( ( nPos == m_nActive ) && ( nPos == (long) m_vEntries.size() - 1 ) )
+                else if ( nPos == m_nActive )
                 {
-                    m_nActive -= 1;
-                    if (m_nActive == -1)
-                    {
-                        m_bHasActive = false;
-                    }
+                    nChangedActivePos = nPos;
+                    m_nActive = -1;
+                    m_bHasActive = false;
                 }
                 m_vRemovedEntries.push_back( *iIndex );
                 m_vEntries.erase( iIndex );
@@ -1246,6 +1250,9 @@ void ExtensionBox_Impl::checkEntries()
 
     if ( nNewPos != - 1)
         selectEntry( nNewPos );
+    else if (nChangedActivePos != -1) {
+        selectEntry(nChangedActivePos);
+    }
 
     if ( bNeedsUpdate )
     {
commit 9216f7fe3ab46fa971aec74346dedc5b5bb769b1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Apr 7 11:51:50 2015 +0100

    upgrade to openssl-1.0.2a
    
    and de-ifdef-per-platform the patch makefile so an upgrade attempt on one
    platform tests the patchs applying on all platforms
    
    ubsan.patch.0 was effectively applied upstream while need
    to add http://rt.openssl.org/Ticket/Display.html?id=3650 to build
    under windows
    
    Reviewed-on: https://gerrit.libreoffice.org/15183
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 04a98015101b8fea3b200e0bf3a2469d8c75fdf7)
    
    Conflicts:
    	external/openssl/UnpackedTarball_openssl.mk
    	external/openssl/opensslosxppc.patch
    
    Change-Id: Ieffd9bc3dd861a94a083d8b6b8d4117bba7f527c
    Reviewed-on: https://gerrit.libreoffice.org/15222
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/download.lst b/download.lst
index a2a072b..d70d51b 100644
--- a/download.lst
+++ b/download.lst
@@ -109,8 +109,8 @@ export ODFGEN_TARBALL := libodfgen-0.1.1.tar.bz2
 export OPENCOLLADA_MD5SUM := 4ca8a6ef0afeefc864e9ef21b9f14bd6
 export OPENCOLLADA_TARBALL := OpenCOLLADA-master-6509aa13af.tar.bz2
 export OPENLDAP_TARBALL := 804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz
-export OPENSSL_MD5SUM := f7175c9cd3c39bb1907ac8bba9df8ed3
-export OPENSSL_TARBALL := openssl-1.0.1j.tar.gz
+export OPENSSL_MD5SUM := a06c547dac9044161a477211049f60ef
+export OPENSSL_TARBALL := openssl-1.0.2a.tar.gz
 export ORCUS_TARBALL := 7681383be6ce489d84c1c74f4e7f9643-liborcus-0.7.0.tar.bz2
 export PIXMAN_TARBALL := c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2
 export PNG_MD5SUM := 5266905cef49d1224437465ad4d67fd9
diff --git a/external/openssl/UnpackedTarball_openssl.mk b/external/openssl/UnpackedTarball_openssl.mk
index 2509960..0dbd470 100644
--- a/external/openssl/UnpackedTarball_openssl.mk
+++ b/external/openssl/UnpackedTarball_openssl.mk
@@ -91,12 +91,15 @@ $(eval $(call gb_UnpackedTarball_fix_end_of_line,openssl,\
 ))
 
 $(eval $(call gb_UnpackedTarball_add_patches,openssl,\
-	$(if $(filter LINUX FREEBSD ANDROID,$(OS)),external/openssl/openssllnx.patch) \
-	$(if $(filter WNTGCC,$(OS)$(COM)),external/openssl/opensslmingw.patch) \
-	$(if $(filter MSC,$(COM)),external/openssl/opensslwnt.patch) \
-	$(if $(filter MSC,$(COM)),external/openssl/openssl-1.0.1g-msvc2012-winxp.patch.1) \
-	$(if $(filter SOLARIS,$(OS)),external/openssl/opensslsol.patch) \
-	$(if $(filter IOS,$(OS)),external/openssl/opensslios.patch) \
+	external/openssl/openssllnx.patch \
+	external/openssl/opensslmingw.patch \
+	external/openssl/opensslwnt.patch \
+	external/openssl/openssl-1.0.1g-msvc2012-winxp.patch.1 \
+	external/openssl/openssl-1.0.1h-win64.patch.1 \
+	external/openssl/opensslsol.patch \
+	external/openssl/opensslios.patch \
+	external/openssl/opensslosxppc.patch \
+	external/openssl/openssl-3650-masm.patch.1 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/openssl/openssl-1.0.1g-msvc2012-winxp.patch.1 b/external/openssl/openssl-1.0.1g-msvc2012-winxp.patch.1
index 611ffbc..de9e6fc 100644
--- a/external/openssl/openssl-1.0.1g-msvc2012-winxp.patch.1
+++ b/external/openssl/openssl-1.0.1g-msvc2012-winxp.patch.1
@@ -1,7 +1,7 @@
 --- openssl.org/util/pl/VC-32.pl	2014-05-18 23:41:39.336594400 +0200
 +++ openssl/util/pl/VC-32.pl	2014-05-18 23:47:40.055279300 +0200
-@@ -49,7 +49,7 @@
-     $lib_cflag='/Zl' if (!$shlib);	# remove /DEFAULTLIBs from static lib
+@@ -48,7 +48,7 @@
+     my $f = $shlib || $fips ?' /MD':' /MT';
      $opt_cflags=$f.' /Ox';
      $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
 -    $lflags="/nologo /subsystem:console /opt:ref";
@@ -9,12 +9,12 @@
  
      *::perlasm_compile_target = sub {
  	my ($target,$source,$bname)=@_;
-@@ -131,7 +131,7 @@
+@@ -135,7 +135,7 @@
      $ff = "/fixed";
      $opt_cflags=$f.' -Ox -O2 -Ob2';
      $dbg_cflags=$f.'d -Od -DDEBUG -D_DEBUG';
 -    $lflags="/nologo /subsystem:console /opt:ref";
 +    $lflags="/nologo /subsystem:console,5.01 /opt:ref";
      }
+ $lib_cflag='-Zl' if (!$shlib);	# remove /DEFAULTLIBs from static lib
  $mlflags='';
- 
diff --git a/external/openssl/openssl-1.0.1h-win64.patch.1 b/external/openssl/openssl-1.0.1h-win64.patch.1
new file mode 100644
index 0000000..aea9146
--- /dev/null
+++ b/external/openssl/openssl-1.0.1h-win64.patch.1
@@ -0,0 +1,47 @@
+diff --git a/ms/do_win64a.bat b/ms/do_win64a.bat
+index 8768dc6..6772390 100755
+--- a/ms/do_win64a.bat
++++ b/ms/do_win64a.bat
+@@ -1,19 +1,19 @@
+-perl util\mkfiles.pl >MINFO
++perl util/mkfiles.pl >MINFO
+ 
+ cmd /c "nasm -f win64 -v" >NUL 2>&1
+ if %errorlevel% neq 0 goto ml64
+ 
+-perl ms\uplink-x86_64.pl nasm > ms\uptable.asm
+-nasm -f win64 -o ms\uptable.obj ms\uptable.asm
++perl ms/uplink-x86_64.pl nasm > ms/uptable.asm
++nasm -f win64 -o ms/uptable.obj ms/uptable.asm
+ goto proceed
+ 
+ :ml64
+-perl ms\uplink-x86_64.pl masm > ms\uptable.asm
+-ml64 -c -Foms\uptable.obj ms\uptable.asm
++perl ms/uplink-x86_64.pl masm > ms/uptable.asm
++ml64 -c -Foms/uptable.obj ms/uptable.asm
+ 
+ :proceed
+-perl util\mk1mf.pl VC-WIN64A >ms\nt.mak
+-perl util\mk1mf.pl dll VC-WIN64A >ms\ntdll.mak
++perl util/mk1mf.pl VC-WIN64A >ms/nt.mak
++perl util/mk1mf.pl dll VC-WIN64A >ms/ntdll.mak
+ 
+-perl util\mkdef.pl 32 libeay > ms\libeay32.def
+-perl util\mkdef.pl 32 ssleay > ms\ssleay32.def
++perl util/mkdef.pl 32 libeay > ms/libeay32.def
++perl util/mkdef.pl 32 ssleay > ms/ssleay32.def
+diff --git a/util/mk1mf.pl b/util/mk1mf.pl
+index 72fa089..d98def1 100755
+--- a/util/mk1mf.pl
++++ b/util/mk1mf.pl
+@@ -233,6 +233,9 @@ else
+ 	$cflags.=' -DTERMIO';
+ 	}
+ 
++# force unix style path separator
++${o} = "/";
++
+ $fipsdir =~ s/\//${o}/g;
+ 
+ $out_dir=(defined($VARS{'OUT'}))?$VARS{'OUT'}:$out_def.($debug?".dbg":"");
diff --git a/external/openssl/openssl-3650-masm.patch.1 b/external/openssl/openssl-3650-masm.patch.1
new file mode 100644
index 0000000..97f1eb64
--- /dev/null
+++ b/external/openssl/openssl-3650-masm.patch.1
@@ -0,0 +1,35 @@
+diff --git a/crypto/perlasm/x86masm.pl b/crypto/perlasm/x86masm.pl
+index 1741342..917d0f8 100644
+--- a/crypto/perlasm/x86masm.pl
++++ b/crypto/perlasm/x86masm.pl
+@@ -18,10 +18,10 @@ sub ::generic
+ 
+     if ($opcode =~ /lea/ && @arg[1] =~ s/.*PTR\s+(\(.*\))$/OFFSET $1/)	# no []
+     {	$opcode="mov";	}
+-    elsif ($opcode !~ /movq/)
++    elsif ($opcode !~ /mov[dq]$/)
+     {	# fix xmm references
+-	$arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[1]=~/\bxmm[0-7]\b/i);
+-	$arg[1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);
++	$arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[-1]=~/\bxmm[0-7]\b/i);
++	$arg[-1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);
+     }
+ 
+     &::emit($opcode, at arg);
+@@ -160,13 +160,13 @@ sub ::public_label
+ {   push(@out,"PUBLIC\t".&::LABEL($_[0],$nmdecor.$_[0])."\n");   }
+ 
+ sub ::data_byte
+-{   push(@out,("DB\t").join(',', at _)."\n");	}
++{   push(@out,("DB\t").join(',',splice(@_,0,16))."\n") while(@_);	}
+ 
+ sub ::data_short
+-{   push(@out,("DW\t").join(',', at _)."\n");	}
++{   push(@out,("DW\t").join(',',splice(@_,0,8))."\n") while(@_);	}
+ 
+ sub ::data_word
+-{   push(@out,("DD\t").join(',', at _)."\n");	}
++{   push(@out,("DD\t").join(',',splice(@_,0,4))."\n") while(@_);	}
+ 
+ sub ::align
+ {   push(@out,"ALIGN\t$_[0]\n");	}
diff --git a/external/openssl/opensslmingw.patch b/external/openssl/opensslmingw.patch
index 127cb04..81dc953 100644
--- a/external/openssl/opensslmingw.patch
+++ b/external/openssl/opensslmingw.patch
@@ -1,37 +1,47 @@
 --- misc/openssl-0.9.8v/Makefile.shared	2008-09-17 17:56:40.000000000 +0200
 +++ misc/build/openssl-0.9.8v/Makefile.shared	2009-03-30 11:52:53.684538000 +0200
-@@ -254,13 +254,17 @@
+@@ -278,7 +278,7 @@
+ link_a.cygwin:
+ 	@ $(CALC_VERSIONS); \
+ 	INHIBIT_SYMLINKS=yes; \
+-	SHLIB=cyg$(LIBNAME); SHLIB_SOVER=-$(LIBVERSION); SHLIB_SUFFIX=.dll; \
++	SHLIB=cyg$(LIBNAME); SHLIB_SOVER=; SHLIB_SUFFIX=.dll; \
+ 	dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; extras=; \
  	base=-Wl,--enable-auto-image-base; \
  	if expr $(PLATFORM) : 'mingw' > /dev/null; then \
- 		SHLIB=$(LIBNAME)eay32; \
--		base=;  [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
-+		base=;  \
-+                if test $(LIBNAME) = "crypto"; then \
-+                        SHLIB=libeay32; \
-+                        base=-Wl,--image-base,0x63000000; \
-+                fi; \
+@@ -289,7 +289,11 @@
+ 		SHLIB_SOVER=32; \
+ 		extras="$(LIBNAME).def"; \
+ 		$(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \
+-		base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
++                base=;  \
++                 if test $(LIBNAME) = "crypto"; then \
++                         SHLIB=libeay32; \
++                         base=-Wl,--image-base,0x63000000; \
++                 fi; \
  	fi; \
- 	SHLIB_SUFFIX=.dll; \
--	SHLIB_SOVER=-$(LIBVERSION); \
-+	SHLIB_SOVER=; \
+ 	dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
+ 	$(PERL) util/mkrc.pl $$dll_name | \
+@@ -297,7 +301,7 @@
+ 	extras="$$extras rc.o"; \
  	ALLSYMSFLAGS='-Wl,--whole-archive'; \
  	NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
--	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
-+	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--export-all-symbols -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
- 	[ -f apps/$$SHLIB$$SHLIB_SUFFIX ] && rm apps/$$SHLIB$$SHLIB_SUFFIX; \
- 	[ -f test/$$SHLIB$$SHLIB_SUFFIX ] && rm test/$$SHLIB$$SHLIB_SUFFIX; \
+-	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \
++	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymbolic -Wl,--export-all-symbols -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \
+ 	[ -f apps/$$dll_name ] && rm apps/$$dll_name; \
+ 	[ -f test/$$dll_name ] && rm test/$$dll_name; \
  	$(LINK_SO_A) || exit 1; \
 --- misc/openssl-0.9.8v/e_os2.h	2005-12-19 03:57:07.000000000 +0900
 +++ misc/build/openssl-0.9.8v/e_os2.h	2009-04-04 23:07:15.324250000 +0900
-@@ -264,7 +264,7 @@
- # define OPENSSL_IMPLEMENT_GLOBAL(type,name)			     \
- 	extern type _hide_##name;				     \
- 	type *_shadow_##name(void) { return &_hide_##name; }	     \
--	static type _hide_##name
-+	type _hide_##name
- # define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void)
- # define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name()))
- #else
+@@ -287,7 +287,7 @@
+ # ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION
+ #  define OPENSSL_IMPLEMENT_GLOBAL(type,name,value)                      \
+         type *_shadow_##name(void)                                      \
+-        { static type _hide_##name=value; return &_hide_##name; }
++        { type _hide_##name=value; return &_hide_##name; }
+ #  define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void)
+ #  define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name()))
+ # else
 --- misc/openssl-0.9.8v/ms/mingw32.bat	2006-05-05 15:19:32.000000000 +0200
 +++ misc/build/openssl-0.9.8v/ms/mingw32.bat	2009-03-30 11:54:10.000000000 +0200
 @@ -79,15 +79,41 @@
@@ -43,33 +53,33 @@
  if errorlevel 1 goto end
  
  echo Generating the DLLs and input libraries
--dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lwsock32 -lgdi32
+-dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lws2_32 -lgdi32
 +mv out/libcrypto.a out/libcrypto_static.a
 +mv out/libssl.a out/libssl_static.a
 +dlltool --dllname libeay32.dll --output-lib out/libcrypto.a --input-def ms/libeay32.def
  if errorlevel 1 goto end
 -dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a
-+gcc --shared --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lwsock32 -lgdi32
++gcc --shared --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lws2_32 -lgdi32
  if errorlevel 1 goto end
 +dlltool --dllname ssleay32.dll --output-lib out/libssl.a --input-def ms/ssleay32.def
 +if errorlevel 1 goto end
 +if "%MINGW_SHARED_GXXLIB%"=="TRUE" goto shared_gxxlib
 +if "%MINGW_SHARED_GCCLIB%"=="TRUE" goto shared_gcclib
-+gcc --shared --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lwsock32 -lgdi32 
++gcc --shared --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lws2_32 -lgdi32 
 +if errorlevel 1 goto end
 +gcc --shared --enable-pseudo-reloc -Wl,-Map,out/ssleay32.map -Lout ms/ssleay32.def -o out/ssleay32.dll out/libssl_static.a -lcrypto 
 +if errorlevel 1 goto end
 +goto finished
 +
 +:shared_gcclib
-+gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lwsock32 -lgdi32 
++gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lws2_32 -lgdi32 
 +if errorlevel 1 goto end
 +gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/ssleay32.map -Lout ms/ssleay32.def -o out/ssleay32.dll out/libssl_static.a -lcrypto 
 +if errorlevel 1 goto end
 +goto finished
 +
 +:shared_gxxlib
-+gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lwsock32 -lgdi32 %MINGW_SHARED_LIBSTDSPP%
++gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lws2_32 -lgdi32 %MINGW_SHARED_LIBSTDSPP%
 +if errorlevel 1 goto end
 +gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/ssleay32.map -Lout ms/ssleay32.def -o out/ssleay32.dll out/libssl_static.a -lcrypto %MINGW_SHARED_LIBSTDSPP%
 +if errorlevel 1 goto end
diff --git a/external/openssl/opensslosxppc.patch b/external/openssl/opensslosxppc.patch
new file mode 100644
index 0000000..2e9168e
--- /dev/null
+++ b/external/openssl/opensslosxppc.patch
@@ -0,0 +1,15 @@
+-*- Mode: diff -*-
+
+--- a/openssl/Configure
++++ b/openssl/Configure
+@@ -620,8 +620,8 @@
+ 
+ ##### MacOS X (a.k.a. Rhapsody or Darwin) setup
+ "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
+-"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+-"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
++"darwin-ppc-cc","cc:-m32 -O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
++"darwin64-ppc-cc","cc:-m64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+ "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:".eval{my $asm=$x86_asm;$asm=~s/cast\-586\.o//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+ "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+ "darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
diff --git a/external/openssl/opensslsol.patch b/external/openssl/opensslsol.patch
index a22dc05..ef70130 100644
--- a/external/openssl/opensslsol.patch
+++ b/external/openssl/opensslsol.patch
@@ -1,81 +1,33 @@
 --- misc/openssl-0.9.8v/Configure	Mon Nov  9 15:14:26 2009
 +++ build/openssl-0.9.8v/Configure	Fri Mar 26 16:01:32 2010
-@@ -212,8 +212,8 @@
- "solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+@@ -228,8 +228,8 @@
+ "solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
   
  #### Solaris x86 with Sun C setups
--"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
--"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"solaris-x86-cc","cc:-O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"solaris64-x86_64-cc","cc:-xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"solaris-x86-cc","cc:-fast -xarch=generic -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
++"solaris-x86-cc","cc:-xarch=generic -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"solaris64-x86_64-cc","cc:-xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
  
  #### SPARC Solaris with GNU C setups
  "solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 --- misc/openssl-0.9.8v/Makefile.shared	Wed Sep 17 17:56:40 2008
 +++ build/openssl-0.9.8v/Makefile.shared	Fri Mar 26 16:04:41 2010
-@@ -93,7 +93,7 @@
+@@ -95,7 +95,7 @@
      LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \
-     LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
+     LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
      LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
 -    LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
 +    LD_LIBRARY_PATH=$$LD_LIBRARY_PATH \
      $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} )
  
  LINK_SO=	\
-@@ -103,7 +103,7 @@
+@@ -105,7 +105,7 @@
      SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \
-     LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
+     LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
      LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
 -    LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
 +    LD_LIBRARY_PATH=$$LD_LIBRARY_PATH \
      $${SHAREDCMD} $${SHAREDFLAGS} \
  	-o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
  	$$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \
---- misc/openssl-0.9.8v/config	Tue Mar  9 18:08:24 2010
-+++ build/openssl-0.9.8v/config	Fri Mar 26 16:07:55 2010
-@@ -399,28 +399,25 @@
- # this is where the translation occurs into SSLeay terms
- # ---------------------------------------------------------------------------
- 
--GCCVER=`(gcc -dumpversion) 2>/dev/null`
--if [ "$GCCVER" != "" ]; then
--  # then strip off whatever prefix egcs prepends the number with...
--  # Hopefully, this will work for any future prefixes as well.
--  GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'`
--  # Since gcc 3.1 gcc --version behaviour has changed.  gcc -dumpversion
--  # does give us what we want though, so we use that.  We just just the
--  # major and minor version numbers.
--  # peak single digit before and after first dot, e.g. 2.95.1 gives 29
--  GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'`
-+if [ -z "$CC" ];then
-+  GCCVER=`(gcc -dumpversion) 2>/dev/null`
-+ if [ "$GCCVER" != "" ]; then
-+   CC=gcc
-+    # then strip off whatever prefix egcs prepends the number with...
-+    # Hopefully, this will work for any future prefixes as well.
-+    GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'`
-+    # Since gcc 3.1 gcc --version behaviour has changed.  gcc -dumpversion
-+    # does give us what we want though, so we use that.  We just just the
-+    # major and minor version numbers.
-+    # peak single digit before and after first dot, e.g. 2.95.1 gives 29
-+    GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'`
-+ else
-+   CC=cc
-+ fi
-+else
-+    CC=`echo $CC | sed 's/^[^ ]*\/\(..\).*/\1/'`
- fi
- 
--# Only set CC if not supplied already
--if [ -z "$CC" ]; then
--# figure out if gcc is available and if so we use it otherwise
--# we fallback to whatever cc does on the system
--  if [ "$GCCVER" != "" ]; then
--    CC=gcc
--  else
--    CC=cc
--  fi
--fi
- GCCVER=${GCCVER:-0}
- if [ "$SYSTEM" = "HP-UX" ];then
-   # By default gcc is a ILP32 compiler (with long long == 64).
diff --git a/external/openssl/opensslwnt.patch b/external/openssl/opensslwnt.patch
index 5be9c95..e033d25 100644
--- a/external/openssl/opensslwnt.patch
+++ b/external/openssl/opensslwnt.patch
@@ -1,8 +1,8 @@
 --- misc/openssl-0.9.8v/crypto/x509v3/v3_pci.c	2007-03-05 01:06:47.000000000 +0100
 +++ build/openssl-0.9.8v/crypto/x509v3/v3_pci.c	2010-03-26 12:04:20.961547300 +0100
-@@ -2,7 +2,7 @@
- /* Contributed to the OpenSSL Project 2004
-  * by Richard Levitte (richard at levitte.org)
+@@ -3,7 +3,7 @@
+  * Contributed to the OpenSSL Project 2004 by Richard Levitte
+  * (richard at levitte.org)
   */
 -/* Copyright (c) 2004 Kungliga Tekniska Högskolan
 +/* Copyright (c) 2004 Kungliga Tekniska Hoegskolan
@@ -11,9 +11,9 @@
   *
 --- misc/openssl-0.9.8v/crypto/x509v3/v3_pcia.c	2004-12-28 01:21:33.000000000 +0100
 +++ build/openssl-0.9.8v/crypto/x509v3/v3_pcia.c	2010-03-26 12:04:20.961547300 +0100
-@@ -2,7 +2,7 @@
- /* Contributed to the OpenSSL Project 2004
-  * by Richard Levitte (richard at levitte.org)
+@@ -3,7 +3,7 @@
+  * Contributed to the OpenSSL Project 2004 by Richard Levitte
+  * (richard at levitte.org)
   */
 -/* Copyright (c) 2004 Kungliga Tekniska Högskolan
 +/* Copyright (c) 2004 Kungliga Tekniska Hoegskolan
@@ -45,7 +45,7 @@
 +%1 util\mkdef.pl 32 ssleay > ms\ssleay32.def
 --- misc/openssl-0.9.8v/util/mk1mf.pl	2009-09-20 14:46:42.000000000 +0200
 +++ build/openssl-0.9.8v/util/mk1mf.pl	2010-03-26 12:04:20.977172300 +0100
-@@ -128,7 +128,7 @@
+@@ -163,7 +163,7 @@
  $inc_def="outinc";
  $tmp_def="tmp";
  
@@ -54,7 +54,7 @@
  $mkdir="-mkdir" unless defined $mkdir;
  
  ($ssl,$crypto)=("ssl","crypto");
-@@ -290,6 +290,11 @@
+@@ -343,6 +343,11 @@
  	chop;
  
  	($key,$val)=/^([^=]+)=(.*)/;
@@ -66,7 +66,7 @@
  	if ($key eq "RELATIVE_DIRECTORY")
  		{
  		if ($lib ne "")
-@@ -529,7 +529,7 @@
+@@ -469,7 +474,7 @@
  # Set your compiler options
  PLATFORM=$platform
  CC=$bin_dir${cc}
@@ -75,27 +75,27 @@
  APP_CFLAG=$app_cflag
  LIB_CFLAG=$lib_cflag
  SHLIB_CFLAG=$shl_cflag
-@@ -544,7 +544,7 @@
+@@ -484,7 +489,7 @@
  
  LINK=$link
  LFLAGS=$lflags
 -RSC=$rsc
 +RSC=$rsc \$(SOLARINC)
  
- # The output directory for everything intersting
+ # The output directory for everything interesting
  OUT_D=$out_dir
-@@ -730,7 +735,7 @@
+@@ -665,7 +670,7 @@
  printf OUT <<EOF;
  #ifdef $platform_cpp_symbol
    /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
--  #define CFLAGS "$cc $cflags"
-+  #define CFLAGS "$cflags"
+-  #define CFLAGS "compiler: $cc $cflags"
++  #define CFLAGS "compiler: $cflags"
    #define PLATFORM "$platform"
  EOF
  printf OUT "  #define DATE \"%s\"\n", scalar gmtime();
 --- misc/openssl-0.9.8v/util/pl/VC-32.pl	2010-02-04 02:10:24.000000000 +0100
 +++ build/openssl-0.9.8v/util/pl/VC-32.pl	2010-03-26 12:04:20.977172300 +0100
-@@ -32,7 +32,7 @@
+@@ -30,7 +30,7 @@
  my $ff = "";
  
  # C compiler stuff
@@ -104,29 +104,31 @@
  if ($FLAVOR =~ /WIN64/)
      {
      # Note that we currently don't have /WX on Win64! There is a lot of
-@@ -103,22 +103,22 @@
+@@ -114,7 +114,7 @@
      }
  
-     $cc='$(CC)';
+     $cc=($ENV{CC} or "cl");
 -    $base_cflags=' /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT';
 +    $base_cflags=' -W3 -GF -Gy -nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT';
      $base_cflags.=" $wcecdefs";
      $base_cflags.=' -I$(WCECOMPAT)/include'		if (defined($ENV{'WCECOMPAT'}));
      $base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include'	if (defined($ENV{'PORTSDK_LIBPATH'}));
--    $opt_cflags=' /MC /O1i';	# optimize for space, but with intrinsics...
--    $dbg_cflags=' /MC /Od -DDEBUG -D_DEBUG';
-+    $opt_cflags=' -MC -O1i';	# optimize for space, but with intrinsics...
-+    $dbg_cflags=' -MC -Od -DDEBUG -D_DEBUG';
+@@ -123,20 +123,21 @@
+     } else {
+ 	$base_cflags.=' /MC';
+     }
+-    $opt_cflags=' /O1i';	# optimize for space, but with intrinsics...
+-    $dbg_cflags=' /Od -DDEBUG -D_DEBUG';
++    $opt_cflags=' -O1i';   # optimize for space, but with intrinsics...
++    $dbg_cflags=' -Od -DDEBUG -D_DEBUG';
++
      $lflags="/nologo /opt:ref $wcelflag";
      }
  else	# Win32
      {
--    $base_cflags= " $mf_cflag";
-+    $base_cflags= " $mf_cflag";
+     $base_cflags= " $mf_cflag";
 -    my $f = $shlib || $fips ?' /MD':' /MT';
--    $lib_cflag='/Zl' if (!$shlib);	# remove /DEFAULTLIBs from static lib
 +    my $f = $shlib || $fips ? (($ENV{MSVC_USE_DEBUG_RUNTIME} eq "TRUE") ? ' -MDd' : ' -MD' ):' -MT';
-+    $lib_cflag='-Zl' if (!$shlib);	# remove /DEFAULTLIBs from static lib
      $ff = "/fixed";
 -    $opt_cflags=$f.' /Ox /O2 /Ob2';
 -    $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
@@ -134,8 +136,12 @@
 +    $dbg_cflags=$f.'d -Od -DDEBUG -D_DEBUG';
      $lflags="/nologo /subsystem:console /opt:ref";
      }
+-$lib_cflag='/Zl' if (!$shlib);	# remove /DEFAULTLIBs from static lib
++$lib_cflag='-Zl' if (!$shlib);	# remove /DEFAULTLIBs from static lib
  $mlflags='';
-@@ -138,7 +138,7 @@
+ 
+ $out_def ="out32";	$out_def.="dll"			if ($shlib);
+@@ -161,7 +162,7 @@
  
  $obj='.obj';
  $asm_suffix='.asm';
@@ -148,8 +154,8 @@
 +++ build/openssl-0.9.8v/ms/uplink.c
 @@ -1,5 +1,6 @@
  #if (defined(_WIN64) || defined(_WIN32_WCE)) && !defined(UNICODE)
- #define UNICODE
-+#define _CRT_NON_CONFORMING_SWPRINTFS
+ # define UNICODE
++# define _CRT_NON_CONFORMING_SWPRINTFS
  #endif
  #if defined(UNICODE) && !defined(_UNICODE)
- #define _UNICODE
+ # define _UNICODE
commit 890f95abbfd73f2ffb32d672c37ed47fc80029a3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 9 20:43:28 2015 +0100

    Related: tdf#90472 initial load of bibliography doesn't...
    
    set bibliography type
    
    moving to a new row will set the new type, but initially
    its not set because the ListStore property was set after
    the model is connected to the database so at the initial
    connection time there isn't a available set of values
    to map the row to.
    
    So move that connection code from general.cxx to datman.cxx
    and put it before the connection is established
    
    we can then remove the intermediate aBibTypeArr list and
    those resources then need to be global bib ones.
    
    Change-Id: I12276c3df9955ec399e1b5de6d0836c69ebb1ebb
    Reviewed-on: https://gerrit.libreoffice.org/15220
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/extensions/source/bibliography/bib.hrc b/extensions/source/bibliography/bib.hrc
index cb9a7e2..9752c06 100644
--- a/extensions/source/bibliography/bib.hrc
+++ b/extensions/source/bibliography/bib.hrc
@@ -80,6 +80,29 @@
 #define ST_CUSTOM4                  (RID_BIB_STRING +  35)
 #define ST_CUSTOM5                  (RID_BIB_STRING +  36)
 
+#define ST_TYPE_ARTICLE             (RID_BIB_STRING +  38)
+#define ST_TYPE_BOOK                (RID_BIB_STRING +  39)
+#define ST_TYPE_BOOKLET             (RID_BIB_STRING +  40)
+#define ST_TYPE_CONFERENCE          (RID_BIB_STRING +  41)
+#define ST_TYPE_INBOOK              (RID_BIB_STRING +  42)
+#define ST_TYPE_INCOLLECTION        (RID_BIB_STRING +  43)
+#define ST_TYPE_INPROCEEDINGS       (RID_BIB_STRING +  44)
+#define ST_TYPE_JOURNAL             (RID_BIB_STRING +  45)
+#define ST_TYPE_MANUAL              (RID_BIB_STRING +  46)
+#define ST_TYPE_MASTERSTHESIS       (RID_BIB_STRING +  47)
+#define ST_TYPE_MISC                (RID_BIB_STRING +  48)
+#define ST_TYPE_PHDTHESIS           (RID_BIB_STRING +  49)
+#define ST_TYPE_PROCEEDINGS         (RID_BIB_STRING +  50)
+#define ST_TYPE_TECHREPORT          (RID_BIB_STRING +  51)
+#define ST_TYPE_UNPUBLISHED         (RID_BIB_STRING +  52)
+#define ST_TYPE_EMAIL               (RID_BIB_STRING +  53)
+#define ST_TYPE_WWW                 (RID_BIB_STRING +  54)
+#define ST_TYPE_CUSTOM1             (RID_BIB_STRING +  55)
+#define ST_TYPE_CUSTOM2             (RID_BIB_STRING +  56)
+#define ST_TYPE_CUSTOM3             (RID_BIB_STRING +  57)
+#define ST_TYPE_CUSTOM4             (RID_BIB_STRING +  58)
+#define ST_TYPE_CUSTOM5             (RID_BIB_STRING +  59)
+
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/bibliography/datman.cxx b/extensions/source/bibliography/datman.cxx
index 28bbd27..751f692 100644
--- a/extensions/source/bibliography/datman.cxx
+++ b/extensions/source/bibliography/datman.cxx
@@ -37,6 +37,7 @@
 #include <com/sun/star/sdbc/XConnection.hpp>
 #include <com/sun/star/sdb/XCompletedConnection.hpp>
 #include <com/sun/star/task/InteractionHandler.hpp>
+#include <com/sun/star/form/ListSourceType.hpp>
 #include <com/sun/star/form/XLoadable.hpp>
 #include <com/sun/star/form/runtime/FormController.hpp>
 #include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
@@ -59,12 +60,12 @@
 #include "bibresid.hxx"
 #include "bibmod.hxx"
 #include "bibview.hxx"
-// #100312# ---------
 #include "bibprop.hrc"
 #include "toolbar.hxx"
 #include "toolbar.hrc"
 #include "bibconfig.hxx"
 #include "bibbeam.hxx"
+#include "general.hxx"
 #include "bib.hrc"
 #include "datman.hrc"
 #include "bibliography.hrc"
@@ -1378,6 +1379,62 @@ Reference< awt::XControlModel > BibDataManager::loadControlModel(
             xPropSet->setPropertyValue( FM_PROP_CONTROLSOURCE, makeAny( rName ) );
             xPropSet->setPropertyValue("NativeWidgetLook", makeAny( true ) );
 
+            if (bForceListBox)
+            {
+                uno::Any aAny;
+
+                //uno::Reference< beans::XPropertySet >  xPropSet(xControl, UNO_QUERY);
+                aAny <<= (sal_Int16)1;
+                xPropSet->setPropertyValue("BoundColumn", aAny);
+                ListSourceType eSet = ListSourceType_VALUELIST;
+                aAny.setValue( &eSet, ::cppu::UnoType<ListSourceType>::get() );
+                xPropSet->setPropertyValue("ListSourceType", aAny);
+
+                uno::Sequence<OUString> aListSource(TYPE_COUNT);
+                OUString* pListSourceArr = aListSource.getArray();
+                //pListSourceArr[0] = "select TypeName, TypeIndex from TypeNms";
+                for(sal_Int32 i = 0; i < TYPE_COUNT; ++i)
+                    pListSourceArr[i] = OUString::number(i);
+                aAny.setValue(&aListSource, cppu::UnoType<uno::Sequence<OUString>>::get());
+
+                xPropSet->setPropertyValue("ListSource", aAny);
+
+                uno::Sequence<OUString> aValues(TYPE_COUNT + 1);
+                OUString* pValuesArr = aValues.getArray();
+                pValuesArr[0] = BIB_RESSTR(ST_TYPE_ARTICLE);
+                pValuesArr[1] = BIB_RESSTR(ST_TYPE_BOOK);
+                pValuesArr[2] = BIB_RESSTR(ST_TYPE_BOOKLET);
+                pValuesArr[3] = BIB_RESSTR(ST_TYPE_CONFERENCE);
+                pValuesArr[4] = BIB_RESSTR(ST_TYPE_INBOOK );
+                pValuesArr[5] = BIB_RESSTR(ST_TYPE_INCOLLECTION);
+                pValuesArr[6] = BIB_RESSTR(ST_TYPE_INPROCEEDINGS);
+                pValuesArr[7] = BIB_RESSTR(ST_TYPE_JOURNAL       );
+                pValuesArr[8] = BIB_RESSTR(ST_TYPE_MANUAL    );
+                pValuesArr[9] = BIB_RESSTR(ST_TYPE_MASTERSTHESIS);
+                pValuesArr[10] = BIB_RESSTR(ST_TYPE_MISC      );
+                pValuesArr[11] = BIB_RESSTR(ST_TYPE_PHDTHESIS );
+                pValuesArr[12] = BIB_RESSTR(ST_TYPE_PROCEEDINGS   );
+                pValuesArr[13] = BIB_RESSTR(ST_TYPE_TECHREPORT    );
+                pValuesArr[14] = BIB_RESSTR(ST_TYPE_UNPUBLISHED   );
+                pValuesArr[15] = BIB_RESSTR(ST_TYPE_EMAIL     );
+                pValuesArr[16] = BIB_RESSTR(ST_TYPE_WWW           );
+                pValuesArr[17] = BIB_RESSTR(ST_TYPE_CUSTOM1       );
+                pValuesArr[18] = BIB_RESSTR(ST_TYPE_CUSTOM2       );
+                pValuesArr[19] = BIB_RESSTR(ST_TYPE_CUSTOM3       );
+                pValuesArr[20] = BIB_RESSTR(ST_TYPE_CUSTOM4       );
+                pValuesArr[21] = BIB_RESSTR(ST_TYPE_CUSTOM5       );
+                // empty string if an invalid value no values is set
+                pValuesArr[TYPE_COUNT] = OUString();
+
+                aAny.setValue(&aValues, cppu::UnoType<uno::Sequence<OUString>>::get());
+
+                xPropSet->setPropertyValue("StringItemList", aAny);
+
+                sal_Bool bTrue = sal_True;
+                aAny.setValue( &bTrue, cppu::UnoType<bool>::get() );
+                xPropSet->setPropertyValue( "Dropdown", aAny );
+            }
+
             Reference< XFormComponent >  aFormComp(xModel,UNO_QUERY );
 
             Reference< XNameContainer >  xNameCont( m_xForm, UNO_QUERY );
diff --git a/extensions/source/bibliography/general.cxx b/extensions/source/bibliography/general.cxx
index 2babb13..057c01e 100644
--- a/extensions/source/bibliography/general.cxx
+++ b/extensions/source/bibliography/general.cxx
@@ -23,7 +23,6 @@
 #include <com/sun/star/sdb/XColumn.hpp>
 #include <com/sun/star/sdb/CommandType.hpp>
 #include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
-#include <com/sun/star/form/ListSourceType.hpp>
 #include <com/sun/star/awt/XWindow.hpp>
 #include <toolkit/helper/vclunohelper.hxx>
 #include <cppuhelper/implbase1.hxx>
@@ -222,29 +221,6 @@ BibGeneralPage::BibGeneralPage(Window* pParent, BibDataManager* pMan):
     aControlParentWin.SetHelpId(HID_BIB_CONTROL_PARENT);
     aStdSize = GetOutputSizePixel();
 
-    aBibTypeArr[0] = BIB_RESSTR(ST_TYPE_ARTICLE);
-    aBibTypeArr[1] = BIB_RESSTR(ST_TYPE_BOOK);
-    aBibTypeArr[2] = BIB_RESSTR(ST_TYPE_BOOKLET);
-    aBibTypeArr[3] = BIB_RESSTR(ST_TYPE_CONFERENCE);
-    aBibTypeArr[4] = BIB_RESSTR(ST_TYPE_INBOOK );
-    aBibTypeArr[5] = BIB_RESSTR(ST_TYPE_INCOLLECTION);
-    aBibTypeArr[6] = BIB_RESSTR(ST_TYPE_INPROCEEDINGS);
-    aBibTypeArr[7] = BIB_RESSTR(ST_TYPE_JOURNAL       );
-    aBibTypeArr[8] = BIB_RESSTR(ST_TYPE_MANUAL    );
-    aBibTypeArr[9] = BIB_RESSTR(ST_TYPE_MASTERSTHESIS);
-    aBibTypeArr[10] = BIB_RESSTR(ST_TYPE_MISC      );
-    aBibTypeArr[11] = BIB_RESSTR(ST_TYPE_PHDTHESIS );
-    aBibTypeArr[12] = BIB_RESSTR(ST_TYPE_PROCEEDINGS   );
-    aBibTypeArr[13] = BIB_RESSTR(ST_TYPE_TECHREPORT    );
-    aBibTypeArr[14] = BIB_RESSTR(ST_TYPE_UNPUBLISHED   );
-    aBibTypeArr[15] = BIB_RESSTR(ST_TYPE_EMAIL     );
-    aBibTypeArr[16] = BIB_RESSTR(ST_TYPE_WWW           );
-    aBibTypeArr[17] = BIB_RESSTR(ST_TYPE_CUSTOM1       );
-    aBibTypeArr[18] = BIB_RESSTR(ST_TYPE_CUSTOM2       );
-    aBibTypeArr[19] = BIB_RESSTR(ST_TYPE_CUSTOM3       );
-    aBibTypeArr[20] = BIB_RESSTR(ST_TYPE_CUSTOM4       );
-    aBibTypeArr[21] = BIB_RESSTR(ST_TYPE_CUSTOM5       );
-
     FreeResource();
 
     InitFixedTexts();
@@ -461,7 +437,7 @@ uno::Reference< awt::XControlModel >  BibGeneralPage::AddXControl(
     uno::Reference< awt::XControlModel >  xCtrModel;
     try
     {
-        bool bTypeListBox = sTypeColumnName == rName;
+        const bool bTypeListBox = sTypeColumnName == rName;
         xCtrModel = pDatMan->loadControlModel(rName, bTypeListBox);
         if ( xCtrModel.is() )
         {
@@ -471,9 +447,17 @@ uno::Reference< awt::XControlModel >  BibGeneralPage::AddXControl(
             {
                 uno::Reference< beans::XPropertySetInfo >  xPropInfo = xPropSet->getPropertySetInfo();
 
-                uno::Any aAny = xPropSet->getPropertyValue( "DefaultControl" );
                 OUString aControlName;
-                aAny >>= aControlName;
+                if (bTypeListBox)
+                {
+                    aControlName = "com.sun.star.form.control.ListBox";
+                    xLBModel = Reference< form::XBoundComponent >(xCtrModel, UNO_QUERY);
+                }
+                else
+                {
+                    uno::Any aAny = xPropSet->getPropertyValue( "DefaultControl" );
+                    aAny >>= aControlName;
+                }
 
                 OUString uProp("HelpURL");
                 if(xPropInfo->hasPropertyByName(uProp))
@@ -484,44 +468,6 @@ uno::Reference< awt::XControlModel >  BibGeneralPage::AddXControl(
                     xPropSet->setPropertyValue( uProp, makeAny( sId ) );
                 }
 
-                if(bTypeListBox)
-                {
-                    //uno::Reference< beans::XPropertySet >  xPropSet(xControl, UNO_QUERY);
-                    aAny <<= (sal_Int16)1;
-                    xPropSet->setPropertyValue("BoundColumn", aAny);
-                    ListSourceType eSet = ListSourceType_VALUELIST;
-                    aAny.setValue( &eSet, ::cppu::UnoType<ListSourceType>::get() );
-                    xPropSet->setPropertyValue("ListSourceType", aAny);
-
-                    uno::Sequence<OUString> aListSource(TYPE_COUNT);
-                    OUString* pListSourceArr = aListSource.getArray();
-                    //pListSourceArr[0] = "select TypeName, TypeIndex from TypeNms";
-                    for(sal_Int32 i = 0; i < TYPE_COUNT; ++i)
-                        pListSourceArr[i] = OUString::number(i);
-                    aAny.setValue(&aListSource, ::getCppuType((uno::Sequence<OUString>*)0));
-
-                    xPropSet->setPropertyValue("ListSource", aAny);
-
-                    uno::Sequence<OUString> aValues(TYPE_COUNT + 1);
-                    OUString* pValuesArr = aValues.getArray();
-                    for(sal_uInt16 j = 0; j < TYPE_COUNT; j++)
-                        pValuesArr[j]  = aBibTypeArr[j];
-                    // empty string if an invalid value no values is set
-                    pValuesArr[TYPE_COUNT] = OUString();
-
-                    aAny.setValue(&aValues, ::getCppuType((uno::Sequence<OUString>*)0));
-
-                    xPropSet->setPropertyValue("StringItemList", aAny);
-
-                    sal_Bool bTrue = sal_True;
-                    aAny.setValue( &bTrue, ::getBooleanCppuType() );
-                    xPropSet->setPropertyValue( "Dropdown", aAny );
-
-                    aControlName = "com.sun.star.form.control.ListBox";
-                    xLBModel = Reference< form::XBoundComponent >(xCtrModel, UNO_QUERY);
-
-                }
-
                 uno::Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
                 uno::Reference< awt::XControl > xControl( xContext->getServiceManager()->createInstanceWithContext(aControlName, xContext), UNO_QUERY);
                 if ( xControl.is() )
diff --git a/extensions/source/bibliography/general.hxx b/extensions/source/bibliography/general.hxx
index 526319f..14e44fb 100644
--- a/extensions/source/bibliography/general.hxx
+++ b/extensions/source/bibliography/general.hxx
@@ -102,7 +102,6 @@ class BibGeneralPage: public BibGeneralPageBaseClass, public BibTabPage
     Size                aStdSize;
     Point               aBasePos;
 
-    OUString            aBibTypeArr[ TYPE_COUNT ];
     OUString            sErrorPrefix;
     OUString            sTableErrorString;
 
diff --git a/extensions/source/bibliography/sections.hrc b/extensions/source/bibliography/sections.hrc
index 9d04056..c5e9516 100644
--- a/extensions/source/bibliography/sections.hrc
+++ b/extensions/source/bibliography/sections.hrc
@@ -59,27 +59,4 @@
 #define FL_2                35
 #define FL_3                36
 
-#define ST_TYPE_ARTICLE                 40
-#define ST_TYPE_BOOK                    41
-#define ST_TYPE_BOOKLET                 42
-#define ST_TYPE_CONFERENCE              43
-#define ST_TYPE_INBOOK                  44
-#define ST_TYPE_INCOLLECTION            45
-#define ST_TYPE_INPROCEEDINGS           46
-#define ST_TYPE_JOURNAL                 47
-#define ST_TYPE_MANUAL                  48
-#define ST_TYPE_MASTERSTHESIS           49
-#define ST_TYPE_MISC                    50
-#define ST_TYPE_PHDTHESIS               51
-#define ST_TYPE_PROCEEDINGS             52
-#define ST_TYPE_TECHREPORT              53
-#define ST_TYPE_UNPUBLISHED             54
-#define ST_TYPE_EMAIL                   55
-#define ST_TYPE_WWW                     56
-#define ST_TYPE_CUSTOM1                 57
-#define ST_TYPE_CUSTOM2                 58
-#define ST_TYPE_CUSTOM3                 59
-#define ST_TYPE_CUSTOM4                 60
-#define ST_TYPE_CUSTOM5                 61
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/bibliography/sections.src b/extensions/source/bibliography/sections.src
index d6fbac8..92fb2cc 100644
--- a/extensions/source/bibliography/sections.src
+++ b/extensions/source/bibliography/sections.src
@@ -244,94 +244,6 @@ TabPage RID_TP_GENERAL
     {
         Text [ en-US ] = "The following column names could not be assigned:\n";
     };
-    String ST_TYPE_ARTICLE
-    {
-        Text [ en-US ] = "Article";
-    };
-    String ST_TYPE_BOOK
-    {
-        Text [ en-US ] = "Book";
-    };
-    String ST_TYPE_BOOKLET
-    {
-        Text [ en-US ] = "Brochures";
-    };
-    String ST_TYPE_CONFERENCE
-    {
-        Text [ en-US ] = "Conference proceedings";
-    };
-    String ST_TYPE_INBOOK
-    {
-        Text [ en-US ] = "Book excerpt";
-    };
-    String ST_TYPE_INCOLLECTION
-    {
-        Text [ en-US ] = "Book excerpt with title";
-    };
-    String ST_TYPE_INPROCEEDINGS
-    {
-        Text [ en-US ] = "Conference proceedings";
-    };
-    String ST_TYPE_JOURNAL
-    {
-        Text [ en-US ] = "Journal";
-    };
-    String ST_TYPE_MANUAL
-    {
-        Text [ en-US ] = "Techn. documentation";
-    };
-    String ST_TYPE_MASTERSTHESIS
-    {
-        Text [ en-US ] = "Thesis";
-    };
-    String ST_TYPE_MISC
-    {
-        Text [ en-US ] = "Miscellaneous";
-    };
-    String ST_TYPE_PHDTHESIS
-    {
-        Text [ en-US ] = "Dissertation";
-    };
-    String ST_TYPE_PROCEEDINGS
-    {
-        Text [ en-US ] = "Conference proceedings";
-    };
-    String ST_TYPE_TECHREPORT
-    {
-        Text [ en-US ] = "Research report";
-    };
-    String ST_TYPE_UNPUBLISHED
-    {
-        Text [ en-US ] = "Unpublished";
-    };
-    String ST_TYPE_EMAIL
-    {
-        Text [ en-US ] = "e-mail";
-    };
-    String ST_TYPE_WWW
-    {
-        Text [ en-US ] = "WWW document";
-    };
-    String ST_TYPE_CUSTOM1
-    {
-        Text [ en-US ] = "User-defined1";
-    };
-    String ST_TYPE_CUSTOM2
-    {
-        Text [ en-US ] = "User-defined2";
-    };
-    String ST_TYPE_CUSTOM3
-    {
-        Text [ en-US ] = "User-defined3";
-    };
-    String ST_TYPE_CUSTOM4
-    {
-        Text [ en-US ] = "User-defined4";
-    };
-    String ST_TYPE_CUSTOM5
-    {
-        Text [ en-US ] = "User-defined5";
-    };
     Text [ en-US ] = "General";
 };
 
@@ -461,4 +373,93 @@ String ST_CUSTOM5
     Text [ en-US ] = "User-defined field ~5";
 };
 
+String ST_TYPE_ARTICLE
+{
+    Text [ en-US ] = "Article";
+};
+String ST_TYPE_BOOK
+{
+    Text [ en-US ] = "Book";
+};
+String ST_TYPE_BOOKLET
+{
+    Text [ en-US ] = "Brochures";
+};
+String ST_TYPE_CONFERENCE
+{
+    Text [ en-US ] = "Conference proceedings";
+};
+String ST_TYPE_INBOOK
+{
+    Text [ en-US ] = "Book excerpt";
+};
+String ST_TYPE_INCOLLECTION
+{
+    Text [ en-US ] = "Book excerpt with title";
+};
+String ST_TYPE_INPROCEEDINGS
+{
+    Text [ en-US ] = "Conference proceedings";
+};
+String ST_TYPE_JOURNAL
+{
+    Text [ en-US ] = "Journal";
+};
+String ST_TYPE_MANUAL
+{
+    Text [ en-US ] = "Techn. documentation";
+};
+String ST_TYPE_MASTERSTHESIS
+{
+    Text [ en-US ] = "Thesis";
+};
+String ST_TYPE_MISC
+{
+    Text [ en-US ] = "Miscellaneous";
+};
+String ST_TYPE_PHDTHESIS
+{
+    Text [ en-US ] = "Dissertation";
+};
+String ST_TYPE_PROCEEDINGS
+{
+    Text [ en-US ] = "Conference proceedings";
+};
+String ST_TYPE_TECHREPORT
+{
+    Text [ en-US ] = "Research report";
+};
+String ST_TYPE_UNPUBLISHED
+{
+    Text [ en-US ] = "Unpublished";
+};
+String ST_TYPE_EMAIL
+{
+    Text [ en-US ] = "e-mail";
+};
+String ST_TYPE_WWW
+{
+    Text [ en-US ] = "WWW document";
+};
+String ST_TYPE_CUSTOM1
+{
+    Text [ en-US ] = "User-defined1";
+};
+String ST_TYPE_CUSTOM2
+{
+    Text [ en-US ] = "User-defined2";
+};
+String ST_TYPE_CUSTOM3
+{
+    Text [ en-US ] = "User-defined3";
+};
+String ST_TYPE_CUSTOM4
+{
+    Text [ en-US ] = "User-defined4";
+};
+String ST_TYPE_CUSTOM5
+{
+    Text [ en-US ] = "User-defined5";
+};
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit b3580b0bbf210be655b4dd976023cbbdacc4891d
Author: Andras Timar <andras.timar at collabora.com>
Date:   Sat Apr 4 14:13:18 2015 +0200

    tdf#90404 OOXML chart legend import improvement
    
    In the bugdoc, the chart legend had 6 entries in PowerPoint, but
    only 5 in Impress. I played a lot with padding and offset parameters
    in layout algorithm without success. Finally I introduced this 1mm
    tolerance, so the fixed legend frame can expand up to 1mm, if necessary.
    
    Change-Id: Id1ad1df67aab41d942133cea8d16fccf0f215167
    Reviewed-on: https://gerrit.libreoffice.org/15149
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 6220362e844ad0e50a38c1627ddd05a082882009)
    Reviewed-on: https://gerrit.libreoffice.org/15154
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/chart2/source/view/main/VLegend.cxx b/chart2/source/view/main/VLegend.cxx
index 1df4e74..84d62bc 100644
--- a/chart2/source/view/main/VLegend.cxx
+++ b/chart2/source/view/main/VLegend.cxx
@@ -390,7 +390,7 @@ awt::Size lcl_placeLegendEntries(
             nSumHeight += aRowHeights[nR];
         sal_Int32 nRemainingSpace = rAvailableSpace.Height - nSumHeight;
 
-        if( nRemainingSpace<0 )
+        if( nRemainingSpace < -100 ) // 1mm tolerance for OOXML interop tdf#90404
         {
             //remove entries that are too big
             for( sal_Int32 nR=nNumberOfRows; nR--; )
@@ -418,7 +418,7 @@ awt::Size lcl_placeLegendEntries(
             }
             nNumberOfRows = static_cast<sal_Int32>(aRowHeights.size());
         }
-        if( nRemainingSpace > 0 )
+        if( nRemainingSpace >= -100 ) // 1mm tolerance for OOXML interop tdf#90404
         {
             sal_Int32 nNormalSpacingHeight = 2*nYPadding+(nNumberOfRows-1)*nYOffset;
             if( nRemainingSpace < nNormalSpacingHeight )
commit 0f7a9012e175d6b7629ae1d78fb4435192016e47
Author: Andras Timar <andras.timar at collabora.com>
Date:   Thu Apr 2 13:42:11 2015 +0200

    tdf#90403 PPTX import: use real table size
    
    PowerPoint ignores a:ext cx and cy value of p:xfrm, and uses
    real table width and height. PowerPoint 2010 saves files where
    cx and cy contains good values, but I found files in the wild
    whose cx and cy values did not match to actual table width and
    height, and there was a visible difference between rendering
    of Impress and PowerPoint.
    
    Reviewed-on: https://gerrit.libreoffice.org/15123
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    (cherry picked from commit 037fe3671cbdad51f52d2f69f72f47f463dba7c2)
    
    Conflicts:
    	oox/source/drawingml/shape.cxx
    	sd/qa/unit/import-tests.cxx
    
    Change-Id: I3f80c0cea4cac46763d449f918bb78dca1a6562d
    Reviewed-on: https://gerrit.libreoffice.org/15133
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index d6f45c9..e306232 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -416,6 +416,23 @@ Reference< XShape > Shape::createAndInsert(
     bool bIsEmbMedia = false;
     SAL_INFO("oox.drawingml", OSL_THIS_FUNC << " id: " << msId);
 
+    // tdf#90403 PowerPoint ignores a:ext cx and cy values of p:xfrm, and uses real table width and height
+    if ( mpTablePropertiesPtr.get() && rServiceName == "com.sun.star.drawing.TableShape" )
+    {
+        maSize.Width = 0;
+        for( std::vector< sal_Int32 >::const_iterator aTableColIter(mpTablePropertiesPtr->getTableGrid().begin());
+             aTableColIter != mpTablePropertiesPtr->getTableGrid().end(); aTableColIter++ )
+        {
+            maSize.Width += *aTableColIter;
+        }
+        maSize.Height = 0;
+        for( std::vector< ::oox::drawingml::table::TableRow >::const_iterator aTableRowIter(mpTablePropertiesPtr->getTableRows().begin());
+             aTableRowIter != mpTablePropertiesPtr->getTableRows().end(); aTableRowIter++ )
+        {
+            maSize.Height += (*aTableRowIter).getHeight();
+        }
+    }
+
     awt::Rectangle aShapeRectHmm( maPosition.X / 360, maPosition.Y / 360, maSize.Width / 360, maSize.Height / 360 );
 
     OUString aServiceName;
diff --git a/sd/qa/unit/data/tdf90403.pptx b/sd/qa/unit/data/tdf90403.pptx
new file mode 100644
index 0000000..fd48d05
Binary files /dev/null and b/sd/qa/unit/data/tdf90403.pptx differ
diff --git a/sd/qa/unit/data/xml/tdf90403_0.xml b/sd/qa/unit/data/xml/tdf90403_0.xml
new file mode 100644
index 0000000..297504d
--- /dev/null
+++ b/sd/qa/unit/data/xml/tdf90403_0.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="4233" positionY="3881" sizeX="16932" sizeY="14044" type="com.sun.star.drawing.TableShape" name="Table 1"/>
+</XShapes>
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 13b23b7..b52fb0c 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -194,6 +194,7 @@ void SdFiltersTest::testDocumentLayout()
         { "n593612.pptx", "xml/n593612_", -1 },
         { "fdo71434.pptx", "xml/fdo71434_", -1 },
         { "n902652.pptx", "xml/n902652_", -1 },
+        { "tdf90403.pptx", "xml/tdf90403_", -1 },
         // { "pptx/n828390.pptx", "pptx/xml/n828390_", PPTX }, // Example
     };
 
commit b9dc8c566d0e32048b91d1902b8b36f7f9e4d874
Author: Julien Nabet <serval2412 at yahoo.fr>
Date:   Sat Mar 7 09:04:34 2015 +0100

    tdf#88847: Fields of query design can be moved to the left only
    
    Part of code
       1299             ImplHeadItemList::iterator it = mpItemList->begin();
       1300             ::std::advance( it, nPos );
       1301             ImplHeadItem* pItem = *it;
       1302             mpItemList->erase( it );
       1303             if ( nNewPos < nPos ) <-- case move to left
       1304                 nPos = nNewPos;
       1305             it = mpItemList->begin();
       1306             ::std::advance( it, nPos );
       1307             mpItemList->insert( it, pItem );
    So in move to right case, we erase and insert pItem at the same place
    We just have to use nNewPos in all cases
    
    regression from bd24a310be1459510b760b812838cb87923853c5
    
    Also add back "ImplUpdate" call erroneously removed in merge
    commit 67d2af6fac2d9bad52a6b1f6e0cbd1229eb88a42
    (there is an ImplUpdate call in each parent of that merge commit)
    
    Change-Id: I100b0c6874b366f777c5d38470fcee7a9a7326df
    (cherry picked from commit 63050dccbc50f148cd788730faa53d822d37e54f)
    Reviewed-on: https://gerrit.libreoffice.org/14787
    Reviewed-by: Lionel Elie Mamane <lionel at mamane.lu>
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/svtools/source/control/headbar.cxx b/svtools/source/control/headbar.cxx
index 1b39707..5309281 100644
--- a/svtools/source/control/headbar.cxx
+++ b/svtools/source/control/headbar.cxx
@@ -1302,8 +1302,9 @@ void HeaderBar::MoveItem( sal_uInt16 nItemId, sal_uInt16 nNewPos )
             if ( nNewPos < nPos )
                 nPos = nNewPos;
             it = mpItemList->begin();
-            ::std::advance( it, nPos );
+            ::std::advance( it, nNewPos );
             mpItemList->insert( it, pItem );
+            ImplUpdate( nPos, true);
         }
     }
 }
commit 34e53df32f63f3044fbbe9fd3be3774407bb332e
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 2 16:29:53 2015 +0100

    Resolves: tdf#86399 don't clobber cluster start caret pos
    
    with other cluster element bounds
    
    (cherry picked from commit b1030f75d3e47719ca63ec518f1da75196bead1a)
    
    Conflicts:
    	vcl/source/gdi/sallayout.cxx
    
    Change-Id: I2cc976eb6a0ef42a2678be80637c7220e2247921
    Reviewed-on: https://gerrit.libreoffice.org/15121
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx
index 20a0ff6..ee06017 100644
--- a/vcl/source/gdi/sallayout.cxx
+++ b/vcl/source/gdi/sallayout.cxx
@@ -1251,19 +1251,20 @@ void GenericSalLayout::KashidaJustify( long nKashidaIndex, int nKashidaWidth )
 void GenericSalLayout::GetCaretPositions( int nMaxIndex, sal_Int32* pCaretXArray ) const
 {
     // initialize result array
-    long nXPos = -1;
-    int i;
-    for( i = 0; i < nMaxIndex; ++i )
-        pCaretXArray[ i ] = nXPos;
+    for (int i = 0; i < nMaxIndex; ++i)
+        pCaretXArray[i] = -1;
 
     // calculate caret positions using glyph array
     for( GlyphVector::const_iterator pG = m_GlyphItems.begin(), pGEnd = m_GlyphItems.end(); pG != pGEnd; ++pG )
     {
-        nXPos = pG->maLinearPos.X();
+        long nXPos = pG->maLinearPos.X();
         long nXRight = nXPos + pG->mnOrigWidth;
         int n = pG->mnCharPos;
         int nCurrIdx = 2 * (n - mnMinCharPos);
-        if( !pG->IsRTLGlyph() )
+        // tdf#86399 if this is not the start of a cluster, don't overwrite the caret bounds of the cluster start
+        if (!pG->IsClusterStart() && pCaretXArray[nCurrIdx] != -1)
+            continue;
+        if (!pG->IsRTLGlyph())
         {
             // normal positions for LTR case
             pCaretXArray[ nCurrIdx ]   = nXPos;
commit e5db4ed3b4bfd0cca7eabd35e34ed57a5c3bf3a6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Apr 3 12:39:07 2015 +0100

    Resolves: tdf#87548 don't create a new list for each multiselection portion
    
    create one list and share it among all the subsections
    
    possibly a regression from/triggered by
    
     author	Oliver-Rainer Wittmann <orw at apache.org>	2014-03-18 14:33:39 (GMT)
    
     Resolves: #i124371# When changing the numbering or bullet styling...  of a set
     of paragraph which have more than one different List Style applied create a new
     List Style and put the paragraphs into a new list.
    
     (cherry picked from commit 0087ca89e3905009ed947c651f3dc70f3d61ea93)
    
    (cherry picked from commit db41e274747e6f1d3eee2bd5efb3321cfcbd6b75)
    
    Conflicts:
    	sw/source/core/doc/docnum.cxx
    
    Change-Id: I9416b97d6afe323ac99150fdcc23f71ecea98a58
    Reviewed-on: https://gerrit.libreoffice.org/15139
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index f3cc3ba..dc0bc6b 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -1438,10 +1438,12 @@ public:
      Parameters <bCreateNewList> and <sContinuedListId>:
       <bCreateNewList> indicates, if a new list is created by applying the given list style.
       If <bCreateNewList> equals false, <sContinuedListId> may contain the
-      list Id of a list, which has to be continued by applying the given list style */
-    void SetNumRule( const SwPaM&,
+      list Id of a list, which has to be continued by applying the given list style
+
+     Returns the set ListId if bSetItem is true */
+    OUString SetNumRule( const SwPaM&,
                      const SwNumRule&,
-                     const bool bCreateNewList,
+                     bool bCreateNewList,
                      const OUString& sContinuedListId = OUString(),
                      bool bSetItem = true,
                      const bool bResetIndentAttrs = false );
diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx
index bf7b4f2..e109b40 100644
--- a/sw/source/core/doc/docnum.cxx
+++ b/sw/source/core/doc/docnum.cxx
@@ -823,13 +823,15 @@ static void lcl_ChgNumRule( SwDoc& rDoc, const SwNumRule& rRule )
     rDoc.UpdateNumRule();
 }
 
-void SwDoc::SetNumRule( const SwPaM& rPam,
+OUString SwDoc::SetNumRule( const SwPaM& rPam,
                         const SwNumRule& rRule,
                         const bool bCreateNewList,
                         const OUString& sContinuedListId,
                         bool bSetItem,
                         const bool bResetIndentAttrs )
 {
+    OUString sListId;
+
     SwUndoInsNum * pUndo = NULL;
     if (GetIDocumentUndoRedo().DoesUndo())
     {
@@ -863,7 +865,6 @@ void SwDoc::SetNumRule( const SwPaM& rPam,
 
     if ( bSetItem )
     {
-        OUString sListId;
         if ( bCreateNewList )
         {
             if ( bNewNumRuleCreated )
@@ -942,8 +943,9 @@ void SwDoc::SetNumRule( const SwPaM& rPam,
     }
 
     SetModified();
-}
 
+    return sListId;
+}
 
 void SwDoc::SetCounted(const SwPaM & rPam, bool bCounted)
 {
diff --git a/sw/source/core/edit/ednumber.cxx b/sw/source/core/edit/ednumber.cxx
index c867901..e5e9d3e 100644
--- a/sw/source/core/edit/ednumber.cxx
+++ b/sw/source/core/edit/ednumber.cxx
@@ -734,8 +734,8 @@ const SwNumRule* SwEditShell::GetNumRuleAtCurrentSelection() const
 }
 
 void SwEditShell::SetCurNumRule( const SwNumRule& rRule,
-                                 const bool bCreateNewList,
-                                 const OUString& sContinuedListId,
+                                 bool bCreateNewList,
+                                 const OUString& rContinuedListId,
                                  const bool bResetIndentAttrs )
 {
     StartAllAction();
@@ -747,19 +747,29 @@ void SwEditShell::SetCurNumRule( const SwNumRule& rRule,
     {
         SwPamRanges aRangeArr( *pCrsr );
         SwPaM aPam( *pCrsr->GetPoint() );
+        OUString sContinuedListId(rContinuedListId);
         for( sal_uInt16 n = 0; n < aRangeArr.Count(); ++n )
         {
             aRangeArr.SetPam( n, aPam );
-            GetDoc()->SetNumRule( aPam, rRule,
+            OUString sListId = GetDoc()->SetNumRule( aPam, rRule,
                                   bCreateNewList, sContinuedListId,
                                   true, bResetIndentAttrs );
+
+            //tdf#87548 On creating a new list for a multi-selection only
+            //create a single new list for the multi-selection, not one per selection
+            if (bCreateNewList)
+            {
+                sContinuedListId = sListId;
+                bCreateNewList = false;
+            }
+
             GetDoc()->SetCounted( aPam, true );
         }
     }
     else
     {
         GetDoc()->SetNumRule( *pCrsr, rRule,
-                              bCreateNewList, sContinuedListId,
+                              bCreateNewList, rContinuedListId,
                               true, bResetIndentAttrs );
         GetDoc()->SetCounted( *pCrsr, true );
     }
commit 140adce88d2e5c0c80bb79385c7778a6fddfd72f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Apr 3 15:39:30 2015 +0100

    Resolves: tdf#90138 don't try to save a marks OtherPos if it doesn't have one
    
    Change-Id: I522a236015c91c0744b3018d3d4e4d6c65ea19ab
    (cherry picked from commit 4fe5b44b15647542b1550deaeee43ec3d1e57591)
    Reviewed-on: https://gerrit.libreoffice.org/15141
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sw/source/core/undo/undobj.cxx b/sw/source/core/undo/undobj.cxx
index 78697dc..2134e04 100644
--- a/sw/source/core/undo/undobj.cxx
+++ b/sw/source/core/undo/undobj.cxx
@@ -783,7 +783,7 @@ void SwUndoSaveCntnt::DelCntntIndex( const SwPosition& rMark,
                         if ( *pStt < rAnnotationEndPos && rAnnotationEndPos <= *pEnd )
                         {
                             bSavePos = true;
-                            bSaveOtherPos = true;
+                            bSaveOtherPos = pBkmk->IsExpanded(); //tdf#90138, only save the other pos if there is one
                         }
                     }
                 }
commit 0923e527291070ccf1262d17b1cd168b5caa1f93
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Apr 3 16:25:13 2015 +0100

    Resolves: tdf#83977 Push/Pop before/after messing with the cursor
    
    otherwise we lose our selection with multi-page tables
    
    Change-Id: I4f52d3cfb7a6d3c2cc1dbb68bbd5ce5c0005b1c3
    (cherry picked from commit 4c4a9767f7fb0c7891f1dd96cbe38a9c35e46083)
    Reviewed-on: https://gerrit.libreoffice.org/15143
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sw/source/ui/chrdlg/drpcps.cxx b/sw/source/ui/chrdlg/drpcps.cxx
index ff3b11f..134482a 100644
--- a/sw/source/ui/chrdlg/drpcps.cxx
+++ b/sw/source/ui/chrdlg/drpcps.cxx
@@ -270,8 +270,8 @@ void SwDropCapsPict::UpdatePaintSettings( void )
         if (!mpPage->m_pTemplateBox->GetSelectEntryPos())
         {
             // query the Font at paragraph's beginning
-            mpPage->rSh.SttCrsrMove();
             mpPage->rSh.Push();
+            mpPage->rSh.SttCrsrMove();
             mpPage->rSh.ClearMark();
             SwWhichPara pSwuifnParaCurr = GetfnParaCurr();
             SwPosPara pSwuifnParaStart = GetfnParaStart();
@@ -285,8 +285,8 @@ void SwDropCapsPict::UpdatePaintSettings( void )
             // CTL
             GetFontSettings( *mpPage, maCTLFont, RES_CHRATR_CTL_FONT );
 
-            mpPage->rSh.Pop(false);
             mpPage->rSh.EndCrsrMove();
+            mpPage->rSh.Pop(false);
         }
         else
         {
commit e5a8abbbf7d62be41c8b91fad1004b226bee6aa7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Apr 7 16:45:38 2015 +0100

    fix crash on re-export of fdo64646-4.xls back to xls
    
    Change-Id: Ic6d6e7d7d8d42af0fc739d964a1190d40f9dba2e
    (cherry picked from commit b56b5d449fc74809fddc9b9bbd1d9f8d244a0d10)
    Reviewed-on: https://gerrit.libreoffice.org/15188
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
    Tested-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index af7d98f..524f97f 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -3462,17 +3462,19 @@ sal_uInt32 ScDocument::GetNumberFormat( const ScRange& rRange ) const
 sal_uInt32 ScDocument::GetNumberFormat( const ScAddress& rPos ) const
 {
     SCTAB nTab = rPos.Tab();
-    if ( maTabs[nTab] )
-        return maTabs[nTab]->GetNumberFormat( rPos );
-    return 0;
+    if (!TableExists(nTab))
+        return 0;
+
+    return maTabs[nTab]->GetNumberFormat( rPos );
 }
 
 void ScDocument::SetNumberFormat( const ScAddress& rPos, sal_uInt32 nNumberFormat )
 {
-    if (!TableExists(rPos.Tab()))
+    SCTAB nTab = rPos.Tab();
+    if (!TableExists(nTab))
         return;
 
-    maTabs[rPos.Tab()]->SetNumberFormat(rPos.Col(), rPos.Row(), nNumberFormat);
+    maTabs[nTab]->SetNumberFormat(rPos.Col(), rPos.Row(), nNumberFormat);
 }
 
 void ScDocument::GetNumberFormatInfo( short& nType, sal_uLong& nIndex,
commit 5782f85f3e38eaa902a399016f0977aca1032cc0
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Apr 7 17:15:18 2015 +0200

    Missing @since tag
    
    cf. dd9c9a69da7b22c4166391df082ac23878312a01 "Add the 'quoteright' key to the
    list of available keyboard shortcuts."
    
    Change-Id: Ia064782505e317ee3d1c3622c273eb892e477b5e
    (cherry picked from commit 1856a9df67d12b2e829445274d2969d10845a820)

diff --git a/offapi/com/sun/star/awt/Key.idl b/offapi/com/sun/star/awt/Key.idl
index 09b519a..b3358441 100644
--- a/offapi/com/sun/star/awt/Key.idl
+++ b/offapi/com/sun/star/awt/Key.idl
@@ -363,6 +363,7 @@ published constants Key
     const short SEMICOLON = 1317;
 
 
+    /** @since LibreOffice 4.3 **/
     const short QUOTERIGHT = 1318;
 
 


More information about the Libreoffice-commits mailing list