[Libreoffice-commits] .: Branch 'distro/suse/suse-3.6' - 23 commits - bin/lo-commit-stat connectivity/source desktop/source editeng/source i18npool/source oox/inc oox/source reportdesign/source sc/source sot/qa sot/source sw/inc sw/qa sw/source writerfilter/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Dec 21 07:32:08 PST 2012


 bin/lo-commit-stat                                         |  188 ++++++++-----
 connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx |    2 
 desktop/source/deployment/gui/dp_gui_service.cxx           |   16 +
 desktop/source/deployment/inc/dp_misc.h                    |    8 
 desktop/source/deployment/misc/dp_misc.cxx                 |   25 +
 desktop/source/pkgchk/unopkg/unopkg_app.cxx                |   42 --
 desktop/source/pkgchk/unopkg/unopkg_misc.cxx               |   15 -
 desktop/source/pkgchk/unopkg/unopkg_shared.h               |   32 --
 editeng/source/editeng/editdoc.hxx                         |    2 
 editeng/source/editeng/impedit3.cxx                        |    6 
 i18npool/source/localedata/data/hr_HR.xml                  |    2 
 i18npool/source/localedata/data/no_NO.xml                  |    4 
 i18npool/source/localedata/data/tr_TR.xml                  |   20 +
 oox/inc/oox/core/xmlfilterbase.hxx                         |    2 
 oox/source/core/xmlfilterbase.cxx                          |    2 
 reportdesign/source/core/inc/ReportHelperImpl.hxx          |   18 +
 sc/source/filter/oox/excelfilter.cxx                       |    9 
 sot/qa/cppunit/data/pass/fdo57532-1.compound               |binary
 sot/source/sdstor/stgelem.cxx                              |    2 
 sw/inc/shellres.hxx                                        |    2 
 sw/qa/core/macros-test.cxx                                 |   43 ++
 sw/source/core/layout/tabfrm.cxx                           |    4 
 sw/source/core/layout/trvlfrm.cxx                          |   14 
 sw/source/core/unocore/unodraw.cxx                         |   52 ++-
 sw/source/ui/uiview/formatclipboard.cxx                    |   10 
 sw/source/ui/utlui/initui.cxx                              |    8 
 writerfilter/source/dmapper/DomainMapper_Impl.cxx          |    9 
 writerfilter/source/rtftok/rtfdocumentimpl.cxx             |    2 
 28 files changed, 352 insertions(+), 187 deletions(-)

New commits:
commit 11cb4c4521a43d482e16389622720995f8d1d73b
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Dec 13 01:28:59 2012 +0100

    fdo#58142: fix frame selection in SwPageFrm::GetCrsrOfst:
    
    The function does not handle the case where a paragraph was hit but no
    background frame was hit properly, which may or may not (depending on
    the platform) cause it to return a position of a frame when that is
    undesirable, such as when called from SwWrtShell::UnSelectFrm().
    
    When UnselectFrm() leaves a frame selected pasting multiple pictures
    leads to a crash.
    
    (regression from e8fbe97900f13305b17015d9044993bde4adab36)
    
    Change-Id: I3604825f654c523a37f47a9fc660647d8b3e7077
    (cherry picked from commit 2fc4af311656e7d019ca802d23444e5161f820ee)
    Reviewed-on: https://gerrit.libreoffice.org/1314
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/layout/trvlfrm.cxx b/sw/source/core/layout/trvlfrm.cxx
index 2ffc033..ee907cd 100644
--- a/sw/source/core/layout/trvlfrm.cxx
+++ b/sw/source/core/layout/trvlfrm.cxx
@@ -275,8 +275,12 @@ sal_Bool SwPageFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
         if ( ( bTestBackground && bBackRet ) || !bTextRet )
         {
             bRet = bBackRet;
-            pPos->nNode = aBackPos.nNode;
-            pPos->nContent = aBackPos.nContent;
+            (*pPos) = aBackPos;
+        }
+        else if (bTextRet && !bBackRet)
+        {
+            bRet = bTextRet;
+            (*pPos) = aTextPos;
         }
         else
         {
@@ -314,14 +318,12 @@ sal_Bool SwPageFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
             if ( bValidTextDistance && bValidBackDistance && basegfx::fTools::more( nTextDistance, nBackDistance ) )
             {
                 bRet = bBackRet;
-                pPos->nNode = aBackPos.nNode;
-                pPos->nContent = aBackPos.nContent;
+                (*pPos) = aBackPos;
             }
             else
             {
                 bRet = bTextRet;
-                pPos->nNode = aTextPos.nNode;
-                pPos->nContent = aTextPos.nContent;
+                (*pPos) = aTextPos;
             }
         }
     }
commit 296715365d70e8ffef6b9824ef6ec1bd684b12c0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 5 21:37:49 2012 +0100

    Resolves: fdo#49587 apparent loop in style hierarchy
    
    Change-Id: I32317a1a6500377f7e7bb98d1dcc65ad86feb9a2
    (cherry picked from commit 7e3923520c27ff139bc3abab35a1c01e1a785fb1)
    
    Signed-off-by: Michael Stahl <mstahl at redhat.com>

diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 4cc997b..5c760e4 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -588,7 +588,14 @@ uno::Any DomainMapper_Impl::GetPropertyFromStyleSheet(PropertyIds eId)
             }
         }
         //search until the property is set or no parent is available
-        pEntry = GetStyleSheetTable()->FindParentStyleSheet(pEntry->sBaseStyleIdentifier);
+        StyleSheetEntryPtr pNewEntry = GetStyleSheetTable()->FindParentStyleSheet(pEntry->sBaseStyleIdentifier);
+
+        SAL_WARN_IF( pEntry == pNewEntry, "writerfilter", "circular loop in style hierarchy?");
+
+        if (pEntry == pNewEntry) //fdo#49587
+            break;
+
+        pEntry = pNewEntry;
     }
     return uno::Any();
 }
commit 0c43e577591a32a374d6fc64995a324f3fc4e5d9
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Dec 10 20:52:55 2012 +0100

    fdo#57780: sw: lcl_ArrangeLowers: register drawing ...
    
    ... objects at the right page.  This was effectively disabled for all
    anchor types except FLY_AT_PARA by a misplaced ! in the conditional,
    and C++ not being a type safe language.
    
    Change-Id: I64af2141e577ac896292eecd9f8c46c62a0548db
    (cherry picked from commit c479ccc438edeb7197a2d05bdb99067365d7bac0)
    Reviewed-on: https://gerrit.libreoffice.org/1290
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Eike Rathke <erack at redhat.com>

diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index a008a13..39dad68 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -4832,8 +4832,8 @@ sal_Bool lcl_ArrangeLowers( SwLayoutFrm *pLay, long lYStart, sal_Bool bInva )
                         if ( pTabFrm &&
                              !( pTabFrm->IsFollow() &&
                                 pTabFrm->FindMaster()->IsRebuildLastLine() ) &&
-                             !pAnchoredObj->GetFrmFmt().GetAnchor().GetAnchorId()
-                                                            == FLY_AS_CHAR )
+                            (pAnchoredObj->GetFrmFmt().GetAnchor().GetAnchorId()
+                                                            != FLY_AS_CHAR))
                         {
                             SwPageFrm* pPageFrm = pAnchoredObj->GetPageFrm();
                             SwPageFrm* pPageOfAnchor = pFrm->FindPageFrm();
commit 6509c47ebfba5f516bdd3b29f5115d9286c044c5
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Dec 10 14:36:31 2012 +0100

    fdo#52240 added [hr-HR] date acceptance patterns D/M/Y;D/M
    
    As per https://bugs.freedesktop.org/show_bug.cgi?id=52240#c59
    
    (cherry picked from commit b1184f8a4e4a3949d38407c5f1d5155c2c2b42d5)
    
    Change-Id: I83afc59e4ac71b18219ace60dcbcabafebd5b525
    Reviewed-on: https://gerrit.libreoffice.org/1288
    Reviewed-by: Kohei Yoshida <kohei.yoshida at gmail.com>
    Tested-by: Kohei Yoshida <kohei.yoshida at gmail.com>

diff --git a/i18npool/source/localedata/data/hr_HR.xml b/i18npool/source/localedata/data/hr_HR.xml
index e5a05424..b9e25e7 100644
--- a/i18npool/source/localedata/data/hr_HR.xml
+++ b/i18npool/source/localedata/data/hr_HR.xml
@@ -36,6 +36,8 @@
   </LC_CTYPE>
   <LC_FORMAT replaceFrom="[CURRENCY]" replaceTo="[$kn-41A]">
     <DateAcceptancePattern>D.M</DateAcceptancePattern>
+    <DateAcceptancePattern>D/M/Y</DateAcceptancePattern>
+    <DateAcceptancePattern>D/M</DateAcceptancePattern>
     <FormatElement msgid="DateFormatskey1" default="false" type="medium" usage="DATE" formatindex="34">
       <FormatCode>MM.YY</FormatCode>
     </FormatElement>
commit d4a6b3e625ba1761edcd5dee89123410daf2da06
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Dec 10 14:29:03 2012 +0100

    fdo#52240 added [no-NO] date acceptance patterns D.M;D/M/Y;D/M;D/M Y
    
    Also referenced by nb-NO and ny-NO
    Changes as per http://erack.org/blog/archives/18-comments.html#c351
    
    Change-Id: I9e07f4307800e99fdff21bccde91af4178b244f3
    (cherry picked from commit 638993d9b80b3793dfd31db0dacba3746ceb98fd)
    Reviewed-on: https://gerrit.libreoffice.org/1287
    Reviewed-by: Kohei Yoshida <kohei.yoshida at gmail.com>
    Tested-by: Kohei Yoshida <kohei.yoshida at gmail.com>

diff --git a/i18npool/source/localedata/data/no_NO.xml b/i18npool/source/localedata/data/no_NO.xml
index 2c01a21..beaf7a7 100644
--- a/i18npool/source/localedata/data/no_NO.xml
+++ b/i18npool/source/localedata/data/no_NO.xml
@@ -35,6 +35,10 @@
     <MeasurementSystem>Metric</MeasurementSystem>
   </LC_CTYPE>
   <LC_FORMAT replaceFrom="[CURRENCY]" replaceTo="[$kr-14]">
+    <DateAcceptancePattern>D.M</DateAcceptancePattern>
+    <DateAcceptancePattern>D/M/Y</DateAcceptancePattern>
+    <DateAcceptancePattern>D/M</DateAcceptancePattern>
+    <DateAcceptancePattern>D/M Y</DateAcceptancePattern>
     <FormatElement msgid="DateFormatskey1" default="true" type="short" usage="DATE" formatindex="18">
       <FormatCode>DD.MM.YY</FormatCode>
     </FormatElement>
commit 88e94f862d6f17b94cc8b2b9fe598bc7284fa161
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Oct 30 17:11:59 2012 +0100

    Resolves: fdo#51638 In "unopkg gui" dispose component context from DeInitVCL
    
    ...the same way it is done in soffice.bin.  framework's Desktop::dispose()
    requires the solar mutex to be still alive, which is destroyed in DeInitVCL, so
    if the component context/service manager is only disposed afterwards, the solar
    mutex is already gone.
    
    This required moving disposeBridges() around, but it allowed to get rid of
    DisposeGuard.
    
    (cherry picked from commit 37cc83e594fa8ca131fc5fb98506287b7daedffd)
    
    Conflicts:
    	desktop/source/pkgchk/unopkg/unopkg_app.cxx
    	desktop/source/pkgchk/unopkg/unopkg_shared.h
    
    Change-Id: Ibec3d19040fdae23f492cd1e29084e673403e00b
    Signed-off-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/desktop/source/deployment/gui/dp_gui_service.cxx b/desktop/source/deployment/gui/dp_gui_service.cxx
index 71c6ccd..cec91ad 100644
--- a/desktop/source/deployment/gui/dp_gui_service.cxx
+++ b/desktop/source/deployment/gui/dp_gui_service.cxx
@@ -33,6 +33,7 @@
 #include "cppuhelper/implbase2.hxx"
 #include "cppuhelper/implementationentry.hxx"
 #include "unotools/configmgr.hxx"
+#include "comphelper/processfactory.hxx"
 #include "comphelper/servicedecl.hxx"
 #include "comphelper/unwrapargs.hxx"
 #include <i18npool/mslangid.hxx>
@@ -47,6 +48,8 @@
 #include "license_dialog.hxx"
 #include "dp_gui_dialog2.hxx"
 #include "dp_gui_extensioncmdqueue.hxx"
+#include <ucbhelper/contentbroker.hxx>
+
 
 using namespace ::dp_misc;
 using namespace ::com::sun::star;
@@ -66,6 +69,7 @@ public:
 
     // Application
     virtual int Main();
+    virtual void DeInit();
 };
 
 //______________________________________________________________________________
@@ -85,6 +89,18 @@ int MyApp::Main()
 }
 
 
+void MyApp::DeInit()
+{
+    if (::ucbhelper::ContentBroker::get())
+        ::ucbhelper::ContentBroker::deinitialize();
+    css::uno::Reference< css::uno::XComponentContext > context(
+        comphelper::getProcessComponentContext());
+    dp_misc::disposeBridges(context);
+    css::uno::Reference< css::lang::XComponent >(
+        context, css::uno::UNO_QUERY_THROW)->dispose();
+    comphelper::setProcessServiceFactory(0);
+}
+
 namespace
 {
     struct ProductName
diff --git a/desktop/source/deployment/inc/dp_misc.h b/desktop/source/deployment/inc/dp_misc.h
index 06e67aa..b95a64c 100644
--- a/desktop/source/deployment/inc/dp_misc.h
+++ b/desktop/source/deployment/inc/dp_misc.h
@@ -159,6 +159,14 @@ void syncRepositories(
     ::com::sun::star::uno::Reference<
         ::com::sun::star::ucb::XCommandEnvironment> const & xCmdEnv);
 
+/** workaround: for some reason the bridge threads which communicate with the
+    uno.exe process are not released on time
+*/
+DESKTOP_DEPLOYMENTMISC_DLLPUBLIC
+void disposeBridges(
+    com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
+        const & ctx);
+
 }
 
 #endif
diff --git a/desktop/source/deployment/misc/dp_misc.cxx b/desktop/source/deployment/misc/dp_misc.cxx
index 9ed579f..00fd352 100644
--- a/desktop/source/deployment/misc/dp_misc.cxx
+++ b/desktop/source/deployment/misc/dp_misc.cxx
@@ -43,6 +43,7 @@
 #include "osl/mutex.hxx"
 #include "com/sun/star/ucb/CommandAbortedException.hpp"
 #include "com/sun/star/task/XInteractionHandler.hpp"
+#include "com/sun/star/bridge/XBridgeFactory.hpp"
 #include "com/sun/star/bridge/UnoUrlResolver.hpp"
 #include "com/sun/star/bridge/XUnoUrlResolver.hpp"
 #include "com/sun/star/deployment/ExtensionManager.hpp"
@@ -631,7 +632,31 @@ void syncRepositories(
      }
 }
 
+void disposeBridges(Reference<css::uno::XComponentContext> const & ctx)
+{
+    if (!ctx.is())
+        return;
 
+    Reference<css::bridge::XBridgeFactory> bridgeFac(
+        ctx->getServiceManager()->createInstanceWithContext(
+            OUSTR("com.sun.star.bridge.BridgeFactory"), ctx),
+        UNO_QUERY_THROW);
+
+    const Sequence< Reference<css::bridge::XBridge> >seqBridges = bridgeFac->getExistingBridges();
+    for (sal_Int32 i = 0; i < seqBridges.getLength(); i++)
+    {
+        Reference<css::lang::XComponent> comp(seqBridges[i], UNO_QUERY);
+        if (comp.is())
+        {
+            try {
+                comp->dispose();
+            }
+            catch ( const css::lang::DisposedException& )
+            {
+            }
+        }
+    }
+}
 
 }
 
diff --git a/desktop/source/pkgchk/unopkg/unopkg_app.cxx b/desktop/source/pkgchk/unopkg/unopkg_app.cxx
index ef16ea1..938591a 100644
--- a/desktop/source/pkgchk/unopkg/unopkg_app.cxx
+++ b/desktop/source/pkgchk/unopkg/unopkg_app.cxx
@@ -48,7 +48,6 @@
 
 #include "com/sun/star/deployment/ui/PackageManagerDialog.hpp"
 #include "com/sun/star/ui/dialogs/XExecutableDialog.hpp"
-#include "com/sun/star/lang/DisposedException.hpp"
 #include "boost/scoped_array.hpp"
 #include "com/sun/star/ui/dialogs/XDialogClosedListener.hpp"
 #include "com/sun/star/bridge/XBridgeFactory.hpp"
@@ -189,42 +188,9 @@ Reference<deployment::XPackage> findPackage(
 
 } // anon namespace
 
-
-//workaround for some reason the bridge threads which communicate with the uno.exe
-//process are not releases on time
-void disposeBridges(Reference<css::uno::XComponentContext> ctx)
-{
-    if (!ctx.is())
-        return;
-
-    Reference<css::bridge::XBridgeFactory> bridgeFac(
-        ctx->getServiceManager()->createInstanceWithContext(
-            OUSTR("com.sun.star.bridge.BridgeFactory"), ctx),
-        UNO_QUERY);
-
-    if (bridgeFac.is())
-    {
-        const Sequence< Reference<css::bridge::XBridge> >seqBridges = bridgeFac->getExistingBridges();
-        for (sal_Int32 i = 0; i < seqBridges.getLength(); i++)
-        {
-            Reference<css::lang::XComponent> comp(seqBridges[i], UNO_QUERY);
-            if (comp.is())
-            {
-                try {
-                    comp->dispose();
-                }
-                catch ( const css::lang::DisposedException& )
-                {
-                }
-            }
-        }
-    }
-}
-
 extern "C" DESKTOP_DLLPUBLIC int unopkg_main()
 {
     tools::extendApplicationEnvironment();
-    DisposeGuard disposeGuard;
     bool bNoOtherErrorMsg = false;
     OUString subCommand;
     bool option_shared = false;
@@ -376,8 +342,7 @@ extern "C" DESKTOP_DLLPUBLIC int unopkg_main()
         }
 
         xComponentContext = getUNO(
-            disposeGuard, option_verbose, option_shared, subcmd_gui,
-            xLocalComponentContext );
+            option_verbose, option_shared, subcmd_gui, xLocalComponentContext );
 
         Reference<deployment::XExtensionManager> xExtensionManager(
             deployment::ExtensionManager::get( xComponentContext ) );
@@ -580,6 +545,7 @@ extern "C" DESKTOP_DLLPUBLIC int unopkg_main()
 
             xDialog->startExecuteModal(xListener);
             dialogEnded.wait();
+            return 0;
         }
         else
         {
@@ -596,7 +562,7 @@ extern "C" DESKTOP_DLLPUBLIC int unopkg_main()
         if (option_verbose)
             dp_misc::writeConsole(OUSTR("\n" APP_NAME " done.\n"));
         //Force to release all bridges which connect us to the child processes
-        disposeBridges(xLocalComponentContext);
+        dp_misc::disposeBridges(xLocalComponentContext);
         return 0;
     }
     catch (const ucb::CommandFailedException &e)
@@ -645,7 +611,7 @@ extern "C" DESKTOP_DLLPUBLIC int unopkg_main()
     }
     if (!bNoOtherErrorMsg)
         dp_misc::writeConsoleError("\n" APP_NAME " failed.\n");
-    disposeBridges(xLocalComponentContext);
+    dp_misc::disposeBridges(xLocalComponentContext);
     return 1;
 }
 
diff --git a/desktop/source/pkgchk/unopkg/unopkg_misc.cxx b/desktop/source/pkgchk/unopkg/unopkg_misc.cxx
index 52b4ab8..4b1da99 100644
--- a/desktop/source/pkgchk/unopkg/unopkg_misc.cxx
+++ b/desktop/source/pkgchk/unopkg/unopkg_misc.cxx
@@ -364,21 +364,14 @@ void printf_packages(
     }
 }
 
-
-
 namespace {
 
 //------------------------------------------------------------------------------
-Reference<XComponentContext> bootstrapStandAlone(
-    DisposeGuard & disposeGuard, bool /*verbose */)
+Reference<XComponentContext> bootstrapStandAlone()
 {
     Reference<XComponentContext> xContext =
         ::cppu::defaultBootstrap_InitialComponentContext();
 
-    // assure disposing of local component context:
-    disposeGuard.reset(
-        Reference<lang::XComponent>( xContext, UNO_QUERY ) );
-
     Reference<lang::XMultiServiceFactory> xServiceManager(
         xContext->getServiceManager(), UNO_QUERY_THROW );
     // set global process service factory used by unotools config helpers
@@ -392,7 +385,6 @@ Reference<XComponentContext> bootstrapStandAlone(
     if (! ::ucbhelper::ContentBroker::initialize( xServiceManager, ucb_args ))
         throw RuntimeException( OUSTR("cannot initialize UCB!"), 0 );
 
-    disposeGuard.setDeinitUCB();
     return xContext;
 }
 
@@ -468,7 +460,7 @@ OUString getLockFilePath()
 }
 //==============================================================================
 Reference<XComponentContext> getUNO(
-    DisposeGuard & disposeGuard, bool verbose, bool shared, bool bGui,
+    bool verbose, bool shared, bool bGui,
     Reference<XComponentContext> & out_localContext)
 {
     // do not create any user data (for the root user) in --shared mode:
@@ -480,8 +472,7 @@ Reference<XComponentContext> getUNO(
 
     // hold lock during process runtime:
     static ::desktop::Lockfile s_lockfile( false /* no IPC server */ );
-    Reference<XComponentContext> xComponentContext(
-        bootstrapStandAlone( disposeGuard, verbose ) );
+    Reference<XComponentContext> xComponentContext( bootstrapStandAlone() );
     out_localContext = xComponentContext;
     if (::dp_misc::office_is_running()) {
         xComponentContext.set(
diff --git a/desktop/source/pkgchk/unopkg/unopkg_shared.h b/desktop/source/pkgchk/unopkg/unopkg_shared.h
index 400e283..a592f46 100644
--- a/desktop/source/pkgchk/unopkg/unopkg_shared.h
+++ b/desktop/source/pkgchk/unopkg/unopkg_shared.h
@@ -28,7 +28,6 @@
 
 #include "dp_misc.h"
 #include "com/sun/star/uno/Exception.hpp"
-#include "com/sun/star/lang/XComponent.hpp"
 #include "com/sun/star/uno/XComponentContext.hpp"
 #include "com/sun/star/ucb/XCommandEnvironment.hpp"
 #include "com/sun/star/deployment/XPackage.hpp"
@@ -123,35 +122,6 @@ bool isBootstrapVariable(sal_uInt32 * pIndex);
 //##############################################################################
 
 //==============================================================================
-class DisposeGuard
-{
-    css::uno::Reference<css::lang::XComponent> m_xComp;
-    bool m_bDeinitUCB;
-public:
-    DisposeGuard(): m_bDeinitUCB(false) {}
-    inline ~DisposeGuard()
-    {
-        if (m_bDeinitUCB)
-            ::ucbhelper::ContentBroker::deinitialize();
-
-        if (m_xComp.is())
-            m_xComp->dispose();
-    }
-
-    inline void reset(
-        css::uno::Reference<css::lang::XComponent> const & xComp )
-    {
-        m_xComp = xComp;
-    }
-
-    inline void setDeinitUCB()
-    {
-        m_bDeinitUCB = true;
-    }
-
-};
-
-//==============================================================================
 css::uno::Reference<css::ucb::XCommandEnvironment> createCmdEnv(
     css::uno::Reference<css::uno::XComponentContext> const & xContext,
     ::rtl::OUString const & logFile,
@@ -170,7 +140,7 @@ void printf_packages(
 
 //==============================================================================
 css::uno::Reference<css::uno::XComponentContext> getUNO(
-    DisposeGuard & disposeGuard, bool verbose, bool shared, bool bGui,
+    bool verbose, bool shared, bool bGui,
     css::uno::Reference<css::uno::XComponentContext> & out_LocalComponentContext);
 
 }
commit 08c69cb32c0ee0eacc618055c7fd6e7a08469462
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Dec 7 12:23:21 2012 +0100

    fdo#55289: fix crash in SwXShape::setPropertyValue:
    
    In the libreoffice-3-6 branch the docx import crashes here when setting
    the anchor position of a shape, because the previous setting of the
    AnchorType was not done properly: the position of the anchor in the
    SwFmt did not match the actual position of the text attribute, so we get
    these assertions: "Missing FlyInCnt-Hint." and crash.
    
    This cannot be reproduced with the docx import on master, because on
    master a different intermediate AnchorType is set, and transitioning
    from that happens not to cause the crash.  But it can be reproduced with
    a unit test.
    
    The regression was introduced in libreoffice-3-6 with
    backport commit bbbb10a0774b9da546557632cd09c4f6958f8939.
    
    Change-Id: I394643e11862543177ba57958a26cd8ce06dc09c
    (cherry picked from commit 01cd24df1ec7eaa53e9e2156d4d6890a7cc5996a)
    Reviewed-on: https://gerrit.libreoffice.org/1264
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/qa/core/macros-test.cxx b/sw/qa/core/macros-test.cxx
index 3f9262e..cbabeaf 100644
--- a/sw/qa/core/macros-test.cxx
+++ b/sw/qa/core/macros-test.cxx
@@ -37,8 +37,15 @@
 #include <com/sun/star/frame/XDesktop.hpp>
 
 #include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/frame/XComponentLoader.hpp>
 #include <com/sun/star/document/MacroExecMode.hpp>
+#include <com/sun/star/drawing/XDrawPageSupplier.hpp>
+#include <com/sun/star/drawing/XShapes.hpp>
+#include <com/sun/star/drawing/XShape.hpp>
+#include <com/sun/star/text/XTextDocument.hpp>
+#include <com/sun/star/text/TextContentAnchorType.hpp>
 
 #include <sfx2/app.hxx>
 #include <sfx2/docfilt.hxx>
@@ -48,6 +55,7 @@
 
 #include <basic/sbxdef.hxx>
 
+#include <doc.hxx>
 #include "docsh.hxx"
 
 SO2_DECL_REF(SwDocShell)
@@ -73,6 +81,7 @@ public:
 
     //void testStarBasic();
     void testVba();
+    void testFdo55289();
     CPPUNIT_TEST_SUITE(SwMacrosTest);
 #if !defined(MACOSX) && !defined(WNT)
     //enable this test if you want to play with star basic macros in unit tests
@@ -80,6 +89,7 @@ public:
     //CPPUNIT_TEST(testStarBasic);
     CPPUNIT_TEST(testVba);
 #endif
+    CPPUNIT_TEST(testFdo55289);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -162,6 +172,39 @@ void SwMacrosTest::testVba()
     }
 }
 
+void SwMacrosTest::testFdo55289()
+{
+    SwDoc *const pDoc = new SwDoc;
+    SwDocShellRef pDocShell = new SwDocShell(pDoc, SFX_CREATE_MODE_EMBEDDED);
+    // this needs to run with no layout to tickle the bugs in the special
+    // cases in SwXShape re-anchoring
+    assert(!pDoc->GetCurrentLayout());
+
+    uno::Reference<frame::XModel> const xModel(pDocShell->GetModel());
+    uno::Reference<drawing::XDrawPageSupplier> const xDPS(xModel, UNO_QUERY);
+    uno::Reference<drawing::XShapes> const xShapes(xDPS->getDrawPage(),
+            UNO_QUERY);
+    uno::Reference<beans::XPropertySet> const xShape(
+        uno::Reference<lang::XMultiServiceFactory>(xModel, UNO_QUERY)->
+            createInstance("com.sun.star.drawing.GraphicObjectShape"),
+        UNO_QUERY);
+    xShape->setPropertyValue("AnchorType",
+            makeAny(text::TextContentAnchorType_AT_PAGE));
+    xShapes->add(uno::Reference<drawing::XShape>(xShape, UNO_QUERY));
+    xShape->setPropertyValue("AnchorType",
+            makeAny(text::TextContentAnchorType_AT_CHARACTER));
+    xShape->setPropertyValue("AnchorType",
+            makeAny(text::TextContentAnchorType_AS_CHARACTER));
+    xShape->setPropertyValue("AnchorType",
+            makeAny(text::TextContentAnchorType_AT_CHARACTER));
+    xShape->setPropertyValue("AnchorType",
+            makeAny(text::TextContentAnchorType_AS_CHARACTER));
+    uno::Reference<text::XTextRange> const xEnd =
+        uno::Reference<text::XTextDocument>(xModel, UNO_QUERY)->getText()->getEnd();
+    uno::Reference<text::XTextContent> const xShapeContent(xShape, UNO_QUERY);
+    xShapeContent->attach(xEnd);
+}
+
 SwMacrosTest::SwMacrosTest()
       : m_aBaseString(RTL_CONSTASCII_USTRINGPARAM("/sw/qa/core/data"))
 {
diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx
index 1bf4b20..b8b5663 100644
--- a/sw/source/core/unocore/unodraw.cxx
+++ b/sw/source/core/unocore/unodraw.cxx
@@ -1382,7 +1382,12 @@ void SwXShape::setPropertyValue(const rtl::OUString& rPropertyName, const uno::A
                             SwFmtFlyCnt aFmt( pFlyFmt );
                             pNd->InsertItem(aFmt,
                                 aPam.GetPoint()->nContent.GetIndex(), 0 );
-                            //aPam.GetPoint()->nContent--;
+                            aPam.GetPoint()->nContent--; // InsertItem moved it
+                            SwFmtAnchor aNewAnchor(
+                                dynamic_cast<const SwFmtAnchor&>(
+                                    aSet.Get(RES_ANCHOR)));
+                            aNewAnchor.SetAnchor( aPam.GetPoint() );
+                            aSet.Put( aNewAnchor );
                         }
                         if( bSetAttr )
                             pFmt->SetFmtAttr(aSet);
commit b3d85e4f4012c4ed4c8dff1cf42f31fd036bdc3b
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Wed Jun 6 20:29:57 2012 +0200

    handle properly anchor transition at page->at paragraph->as character
    
    Otherwise setting text range afterwards crashes with pHnt being NULL.
    
    Change-Id: Ib4ac2712c061605dcaaa262280c0307f7a9af2ce
    (cherry picked from commit 5de61f7a4ddb502730454e4bf3232f7f4b4175e1)
    
    Signed-off-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx
index 6cf0c6d..1bf4b20 100644
--- a/sw/source/core/unocore/unodraw.cxx
+++ b/sw/source/core/unocore/unodraw.cxx
@@ -1360,18 +1360,29 @@ void SwXShape::setPropertyValue(const rtl::OUString& rPropertyName, const uno::A
                             aSet.Put( aNewAnchor );
                             pFmt->SetFmtAttr(aSet);
                             bSetAttr = false;
-                            if( text::TextContentAnchorType_AS_CHARACTER == eNewAnchor &&
-                                (FLY_AS_CHAR != eOldAnchorId))
+                        }
+                        if( text::TextContentAnchorType_AS_CHARACTER == eNewAnchor &&
+                            (FLY_AS_CHAR != eOldAnchorId))
+                        {
+                            SwPaM aPam(pDoc->GetNodes().GetEndOfContent());
+                            if( pDoc->GetCurrentLayout() )
                             {
-                                //the RES_TXTATR_FLYCNT needs to be added now
-                                SwTxtNode *pNd = aPam.GetNode()->GetTxtNode();
-                                SAL_WARN_IF( !pNd, "sw.uno", "Crsr is not in a TxtNode." );
-                                SwFmtFlyCnt aFmt( pFlyFmt );
-                                pNd->InsertItem(aFmt,
-                                    aPam.GetPoint()->nContent.GetIndex(), 0 );
-                                //aPam.GetPoint()->nContent--;
-
+                                SwCrsrMoveState aState( MV_SETONLYTEXT );
+                                Point aTmp( pObj->GetSnapRect().TopLeft() );
+                                pDoc->GetCurrentLayout()->GetCrsrOfst( aPam.GetPoint(), aTmp, &aState );
+                            }
+                            else
+                            {
+                                //without access to the layout the last node of the body will be used as anchor position
+                                aPam.Move( fnMoveBackward, fnGoDoc );
                             }
+                            //the RES_TXTATR_FLYCNT needs to be added now
+                            SwTxtNode *pNd = aPam.GetNode()->GetTxtNode();
+                            SAL_WARN_IF( !pNd, "sw.uno", "Crsr is not in a TxtNode." );
+                            SwFmtFlyCnt aFmt( pFlyFmt );
+                            pNd->InsertItem(aFmt,
+                                aPam.GetPoint()->nContent.GetIndex(), 0 );
+                            //aPam.GetPoint()->nContent--;
                         }
                         if( bSetAttr )
                             pFmt->SetFmtAttr(aSet);
commit 8739a28cdade38b350d38d541d141a57baaf232b
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Wed Jun 6 18:17:50 2012 +0200

    fix incorrect OSL_ENSURE -> SAL_WARN_IF conversion (condition not inverted)
    
    Change-Id: I57dfa64c55e046ed51797b2abeb7ba3242e637da
    (cherry picked from commit dfc4832049c140b7442c085062599aef1953e8fd)
    
    Signed-off-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx
index 7f7a7af..6cf0c6d 100644
--- a/sw/source/core/unocore/unodraw.cxx
+++ b/sw/source/core/unocore/unodraw.cxx
@@ -1174,7 +1174,7 @@ void SwXShape::setPropertyValue(const rtl::OUString& rPropertyName, const uno::A
                 else if(RES_OPAQUE == pEntry->nWID)
                 {
                     SvxShape* pSvxShape = GetSvxShape();
-                    SAL_WARN_IF(pSvxShape, "sw.uno", "No SvxShape found!");
+                    SAL_WARN_IF(!pSvxShape, "sw.uno", "No SvxShape found!");
                     if(pSvxShape)
                     {
                         SdrObject* pObj = pSvxShape->GetSdrObject();
@@ -1220,14 +1220,14 @@ void SwXShape::setPropertyValue(const rtl::OUString& rPropertyName, const uno::A
                                 //To prevent this the connection between format and attribute has to be broken before.
                                 const SwPosition *pPos = aAnchor.GetCntntAnchor();
                                 SwTxtNode *pTxtNode = pPos->nNode.GetNode().GetTxtNode();
-                                SAL_WARN_IF( pTxtNode->HasHints(), "sw.uno", "Missing FlyInCnt-Hint." );
+                                SAL_WARN_IF( !pTxtNode->HasHints(), "sw.uno", "Missing FlyInCnt-Hint." );
                                 const xub_StrLen nIdx = pPos->nContent.GetIndex();
                                 SwTxtAttr * const pHnt =
                                     pTxtNode->GetTxtAttrForCharAt(
                                         nIdx, RES_TXTATR_FLYCNT );
-                                SAL_WARN_IF( pHnt && pHnt->Which() == RES_TXTATR_FLYCNT,
+                                SAL_WARN_IF( !pHnt || pHnt->Which() != RES_TXTATR_FLYCNT,
                                             "sw.uno", "Missing FlyInCnt-Hint." );
-                                SAL_WARN_IF( pHnt && pHnt->GetFlyCnt().GetFrmFmt() == pFmt,
+                                SAL_WARN_IF( !pHnt || pHnt->GetFlyCnt().GetFrmFmt() != pFmt,
                                             "sw.uno", "Wrong TxtFlyCnt-Hint." );
                                 const_cast<SwFmtFlyCnt&>(pHnt->GetFlyCnt())
                                     .SetFlyFmt();
@@ -1237,7 +1237,7 @@ void SwXShape::setPropertyValue(const rtl::OUString& rPropertyName, const uno::A
                                     RES_TXTATR_FLYCNT, nIdx );
                                 //create a new one
                                 SwTxtNode *pNd = pInternalPam->GetNode()->GetTxtNode();
-                                SAL_WARN_IF( pNd, "sw.uno", "Cursor not at TxtNode." );
+                                SAL_WARN_IF( !pNd, "sw.uno", "Cursor not at TxtNode." );
                                 SwFmtFlyCnt aFmt( pFmt );
                                 pNd->InsertItem(aFmt, pInternalPam->GetPoint()
                                         ->nContent.GetIndex(), 0 );
@@ -1322,14 +1322,14 @@ void SwXShape::setPropertyValue(const rtl::OUString& rPropertyName, const uno::A
                             //To prevent this the connection between format and attribute has to be broken before.
                             const SwPosition *pPos = rOldAnchor.GetCntntAnchor();
                             SwTxtNode *pTxtNode = pPos->nNode.GetNode().GetTxtNode();
-                            SAL_WARN_IF( pTxtNode->HasHints(), "sw.uno", "Missing FlyInCnt-Hint." );
+                            SAL_WARN_IF( !pTxtNode->HasHints(), "sw.uno", "Missing FlyInCnt-Hint." );
                             const xub_StrLen nIdx = pPos->nContent.GetIndex();
                             SwTxtAttr * const pHnt =
                                 pTxtNode->GetTxtAttrForCharAt(
                                     nIdx, RES_TXTATR_FLYCNT );
-                            SAL_WARN_IF( pHnt && pHnt->Which() == RES_TXTATR_FLYCNT,
+                            SAL_WARN_IF( !pHnt || pHnt->Which() != RES_TXTATR_FLYCNT,
                                         "sw.uno", "Missing FlyInCnt-Hint." );
-                            SAL_WARN_IF( pHnt && pHnt->GetFlyCnt().GetFrmFmt() == pFlyFmt,
+                            SAL_WARN_IF( !pHnt || pHnt->GetFlyCnt().GetFrmFmt() != pFlyFmt,
                                         "sw.uno", "Wrong TxtFlyCnt-Hint." );
                             const_cast<SwFmtFlyCnt&>(pHnt->GetFlyCnt())
                                 .SetFlyFmt();
@@ -1365,7 +1365,7 @@ void SwXShape::setPropertyValue(const rtl::OUString& rPropertyName, const uno::A
                             {
                                 //the RES_TXTATR_FLYCNT needs to be added now
                                 SwTxtNode *pNd = aPam.GetNode()->GetTxtNode();
-                                SAL_WARN_IF( pNd, "sw.uno", "Crsr is not in a TxtNode." );
+                                SAL_WARN_IF( !pNd, "sw.uno", "Crsr is not in a TxtNode." );
                                 SwFmtFlyCnt aFmt( pFlyFmt );
                                 pNd->InsertItem(aFmt,
                                     aPam.GetPoint()->nContent.GetIndex(), 0 );
commit ed3b304a9f8ab4f598aff52681a9000586264074
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Dec 5 13:16:32 2012 +0000

    Resolves: fdo#57532 restrict page sanity check to non-storage chunks
    
    Change-Id: I47c24131e95b9a8a691dbff4710869ba91df8306
    (cherry picked from commit 4a1044229afd6b52ca10e5c55f1957b153a8c6ea)
    Reviewed-on: https://gerrit.libreoffice.org/1245
    Reviewed-by: Michael Meeks <michael.meeks at suse.com>
    Tested-by: Michael Meeks <michael.meeks at suse.com>

diff --git a/sot/qa/cppunit/data/pass/fdo57532-1.compound b/sot/qa/cppunit/data/pass/fdo57532-1.compound
new file mode 100644
index 0000000..70068fe
Binary files /dev/null and b/sot/qa/cppunit/data/pass/fdo57532-1.compound differ
diff --git a/sot/source/sdstor/stgelem.cxx b/sot/source/sdstor/stgelem.cxx
index c4a8c28..9b1c918 100644
--- a/sot/source/sdstor/stgelem.cxx
+++ b/sot/source/sdstor/stgelem.cxx
@@ -405,7 +405,7 @@ sal_Bool StgEntry::Load( const void* pFrom, sal_uInt32 nBufSize )
     if (n > nMaxLegalStr)
         return sal_False;
 
-    if ((nSize < 0 && cType != STG_STORAGE) || (nPage1 < 0 && !isKnownSpecial(nPage1)))
+    if ((cType != STG_STORAGE) && ((nSize < 0) || (nPage1 < 0 && !isKnownSpecial(nPage1))))
     {
         // the size makes no sense for the substorage
         // TODO/LATER: actually the size should be an unsigned value, but in this case it would mean a stream of more than 2Gb
commit eb165e4482e929d31bdf8c03056701e1e4acef96
Author: David Tardon <dtardon at redhat.com>
Date:   Tue Dec 4 13:48:00 2012 +0100

    fdo#52640 fix right-aligned tabstops
    
    It is no good to change temporary object...
    
    Change-Id: Ib1178e154341dd0216fd965d3ed6c264de40d634
    Signed-off-by: Kohei Yoshida <kohei.yoshida at gmail.com>

diff --git a/editeng/source/editeng/editdoc.hxx b/editeng/source/editeng/editdoc.hxx
index d952e6a..77f1d49 100644
--- a/editeng/source/editeng/editdoc.hxx
+++ b/editeng/source/editeng/editdoc.hxx
@@ -417,7 +417,7 @@ public:
     void        SetLen( sal_uInt16 nL )         { nLen = nL; }
 
     Size&       GetSize()                   { return aOutSz; }
-    Size        GetSize() const             { return aOutSz; }
+    const Size& GetSize() const             { return aOutSz; }
 
     sal_uInt8&      GetKind()                   { return nKind; }
     sal_uInt8       GetKind() const             { return nKind; }
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 59c70bf..9f1a955 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -1157,7 +1157,7 @@ sal_Bool ImpEditEngine::CreateLines( sal_uInt16 nPara, sal_uInt32 nStartPosY )
                     nW = nMaxW;
                     aCurrentTab.bValid = sal_False;
                 }
-                const TextPortion* pTabPortion = pParaPortion->GetTextPortions()[aCurrentTab.nTabPortion];
+                TextPortion* const pTabPortion = pParaPortion->GetTextPortions()[aCurrentTab.nTabPortion];
                 pTabPortion->GetSize().Width() = aCurrentTab.nTabPos - aCurrentTab.nStartPosX - nW - nStartX;
                 nTmpWidth = aCurrentTab.nStartPosX + pTabPortion->GetSize().Width() + nWidthAfterTab;
             }
@@ -1400,7 +1400,7 @@ sal_Bool ImpEditEngine::CreateLines( sal_uInt16 nPara, sal_uInt32 nStartPosY )
             // Width from HangingPunctuation was set to 0 in ImpBreakLine,
             // check for rel width now, maybe create compression...
             long n = nMaxLineWidth - aTextSize.Width();
-            const TextPortion* pTP = pParaPortion->GetTextPortions()[pLine->GetEndPortion()];
+            TextPortion* const pTP = pParaPortion->GetTextPortions()[pLine->GetEndPortion()];
             sal_uInt16 nPosInArray = pLine->GetEnd()-1-pLine->GetStart();
             long nNewValue = ( nPosInArray ? pLine->GetCharPosArray()[ nPosInArray-1 ] : 0 ) + n;
             pLine->GetCharPosArray()[ nPosInArray ] = nNewValue;
@@ -1942,7 +1942,7 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te
 
     if ( bCompressBlank || bHangingPunctuation )
     {
-        const TextPortion* pTP = pParaPortion->GetTextPortions()[nEndPortion];
+        TextPortion* const pTP = pParaPortion->GetTextPortions()[nEndPortion];
         DBG_ASSERT( pTP->GetKind() == PORTIONKIND_TEXT, "BlankRubber: No TextPortion!" );
         DBG_ASSERT( nBreakPos > pLine->GetStart(), "SplitTextPortion at the beginning of the line?" );
         sal_uInt16 nPosInArray = nBreakPos - 1 - pLine->GetStart();
commit f2ac0f3f2e6b0f8b0c40bdb4e11ed91d2831e7fc
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Tue Dec 4 10:38:53 2012 +0100

    fdo#54473 fdo#57133 fix RTF import of character styles
    
    Regression from commit d2d77fd86e6cb7341e113557e2cfe3d7948759bd
    
    (cherry picked from commit 41890bf714803969515578b47e63fa9730ea7090)
    
    Change-Id: I7accc5c383de3fa53c12527766c3fc155bfa9863
    Reviewed-on: https://gerrit.libreoffice.org/1235
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index b84e303..51f4966 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2438,7 +2438,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
                 m_aStates.top().aParagraphAttributes.set(NS_rtf::LN_ISTD, pIntValue);
             break;
         case RTF_CS:
-            if (m_aStates.top().nDestinationState == DESTINATION_STYLESHEET)
+            if (m_aStates.top().nDestinationState == DESTINATION_STYLESHEET || m_aStates.top().nDestinationState == DESTINATION_STYLEENTRY)
             {
                 m_nCurrentStyleIndex = nParam;
                 m_aStates.top().aTableAttributes.set(NS_rtf::LN_ISTD, pIntValue);
commit 483aa9bd846e1e4fa23ad0c4dc1263b0226c3962
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Dec 1 12:18:53 2012 +0000

    Resolves: fdo#56549 crash in format->autocorrect->apply and edit changes
    
    regression from cad9afa15f53d547733fa55f1353772f6d696611
    
    Change-Id: I1aa36bf86969a5a90456817d360d59125948e519
    (cherry picked from commit 32c26ffb1f7585318a11f684a9886b58cea5b307)
    Reviewed-on: https://gerrit.libreoffice.org/1218
    Reviewed-by: Miklos Vajna <vmiklos at suse.cz>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/sw/inc/shellres.hxx b/sw/inc/shellres.hxx
index 688fe08..7a7a543 100644
--- a/sw/inc/shellres.hxx
+++ b/sw/inc/shellres.hxx
@@ -95,7 +95,7 @@ struct SW_DLLPUBLIC ShellResource : public Resource
 
 private:
     void _GetAutoFmtNameLst() const;
-    std::vector<String> *pAutoFmtNameLst;
+    mutable std::vector<String> *pAutoFmtNameLst;
     String          sPageDescFirstName;
     String          sPageDescFollowName;
     String          sPageDescName;
diff --git a/sw/source/ui/utlui/initui.cxx b/sw/source/ui/utlui/initui.cxx
index 1a3e6d4..0b2dac9 100644
--- a/sw/source/ui/utlui/initui.cxx
+++ b/sw/source/ui/utlui/initui.cxx
@@ -238,10 +238,10 @@ struct ImpAutoFmtNameListLoader : public Resource
 
 void ShellResource::_GetAutoFmtNameLst() const
 {
-    std::vector<String>* pLst(pAutoFmtNameLst);
-    pLst = new std::vector<String>;
-    pLst->reserve(STR_AUTOFMTREDL_END);
-    ImpAutoFmtNameListLoader aTmp( *pLst );
+    assert(!pAutoFmtNameLst);
+    pAutoFmtNameLst = new std::vector<String>;
+    pAutoFmtNameLst->reserve(STR_AUTOFMTREDL_END);
+    ImpAutoFmtNameListLoader aTmp(*pAutoFmtNameLst);
 }
 
 ImpAutoFmtNameListLoader::ImpAutoFmtNameListLoader( std::vector<String>& rLst )
commit 99d73f839e16e4718dc49fc5e14fdb4f2941ec78
Author: Eike Rathke <erack at redhat.com>
Date:   Thu Nov 29 17:10:12 2012 +0100

    resolved fdo#57668 additional date formats using '/' separator
    
    Change-Id: Ib71fb25b8d5411b83f55649d9a18833470647eb3
    Reviewed-on: https://gerrit.libreoffice.org/1196
    Reviewed-by: Björn Michaelsen <bjoern.michaelsen at canonical.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/i18npool/source/localedata/data/tr_TR.xml b/i18npool/source/localedata/data/tr_TR.xml
index ca2d1ab..45ce90f 100644
--- a/i18npool/source/localedata/data/tr_TR.xml
+++ b/i18npool/source/localedata/data/tr_TR.xml
@@ -37,7 +37,9 @@
   <LC_FORMAT>
     <DateAcceptancePattern>D.M</DateAcceptancePattern>
     <DateAcceptancePattern>D/M</DateAcceptancePattern>
+    <DateAcceptancePattern>D/M/Y</DateAcceptancePattern>
     <DateAcceptancePattern>D-M</DateAcceptancePattern>
+    <DateAcceptancePattern>D-M-Y</DateAcceptancePattern>
     <FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
       <FormatCode>Standard</FormatCode>
     </FormatElement>
@@ -90,12 +92,12 @@
       <FormatCode>DD.MM.YY</FormatCode>
     </FormatElement>
     <FormatElement msgid="DateFormatskey9" default="true" type="long" usage="DATE" formatindex="19">
-      <FormatCode>DD.MM.YY</FormatCode>
+      <FormatCode>NNNND.MMMM.YYYY</FormatCode>
     </FormatElement>
-    <FormatElement msgid="DateFormatskey8" default="true" type="medium" usage="DATE" formatindex="20">
+    <FormatElement msgid="DateFormatskey8" default="false" type="medium" usage="DATE" formatindex="20">
       <FormatCode>DD.MM.YY</FormatCode>
     </FormatElement>
-    <FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="21">
+    <FormatElement msgid="DateFormatskey7" default="true" type="medium" usage="DATE" formatindex="21">
       <FormatCode>DD.MM.YYYY</FormatCode>
     </FormatElement>
     <FormatElement msgid="DateFormatskey10" default="false" type="long" usage="DATE" formatindex="22">
@@ -177,6 +179,18 @@
     <FormatElement msgid="DateTimeFormatskey2" default="false" type="medium" usage="DATE_TIME" formatindex="47">
       <FormatCode>DD.MM.YYYY HH:MM:SS</FormatCode>
     </FormatElement>
+    <FormatElement msgid="DateFormatskey22" default="false" type="medium" usage="DATE" formatindex="51">
+      <FormatCode>DD/MM/YYYY</FormatCode>
+    </FormatElement>
+    <FormatElement msgid="DateFormatskey23" default="false" type="short" usage="DATE" formatindex="52">
+      <FormatCode>DD/MM/YY</FormatCode>
+    </FormatElement>
+    <FormatElement msgid="DateFormatskey24" default="false" type="long" usage="DATE" formatindex="53">
+      <FormatCode>DD/MMM/YYYY</FormatCode>
+    </FormatElement>
+    <FormatElement msgid="DateTimeFormatskey3" default="false" type="medium" usage="DATE_TIME" formatindex="54">
+      <FormatCode>DD/MM/YYYY HH:MM:SS</FormatCode>
+    </FormatElement>
   </LC_FORMAT>
   <LC_COLLATION ref="en_US" />
   <LC_SEARCH ref="en_US"/>
commit d201e7dbe03c00353d1134f7502a2fa28cc9fb6e
Author: Julien Nabet <serval2412 at yahoo.fr>
Date:   Sat Dec 1 15:32:38 2012 +0100

    Fix lacking "/" on .icedove
    
    It would prevent to find icedove addressbook if there's no link .thunderbird to .icedove
    I already did the same on master sources, see:
    https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=ea5a96a5c771ee2c2ebbe4c12c4e7f3b1cba29a7
    
    Change-Id: I24d1ff9b4af327a810997b97b0cf4112eba21e64

diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
index c613faa..17de26b 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
@@ -85,7 +85,7 @@ namespace
     #else
         { ".mozilla/seamonkey/", NULL, NULL, NULL },
         { ".mozilla/firefox/", NULL, NULL, NULL },
-        { ".thunderbird/", ".mozilla-thunderbird/", ".mozilla/thunderbird/", ".icedove" }
+        { ".thunderbird/", ".mozilla-thunderbird/", ".mozilla/thunderbird/", ".icedove/" }
     #endif
     };
 
commit 6c47e7a5f80a4e6147b03a98ca886cedb860fc2a
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Thu Nov 29 16:35:14 2012 +0100

    fdo#57611 do not crash when setting too small size
    
    setWidth/setHeight's exception specifications are lacking,
    but fixing this in a stable release line is too invasive:
    they are "inherited" from the specification in
    offapi/com/sun/star/report/XReportComponent.idl
    and are thus part of our public API.
    
    Change-Id: I8ae2048a6c0acc6b6cf2beece9e630c87caac39f
    Signed-off-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/reportdesign/source/core/inc/ReportHelperImpl.hxx b/reportdesign/source/core/inc/ReportHelperImpl.hxx
index 1b5f7d2..6325f8f 100644
--- a/reportdesign/source/core/inc/ReportHelperImpl.hxx
+++ b/reportdesign/source/core/inc/ReportHelperImpl.hxx
@@ -46,7 +46,14 @@ void SAL_CALL clazz::setHeight( ::sal_Int32 _height ) throw (uno::RuntimeExcepti
 { \
     awt::Size aSize = getSize(); \
     aSize.Height = _height; \
-    setSize(aSize); \
+    try \
+    { \
+        setSize(aSize); \
+    } \
+    catch (const beans::PropertyVetoException &)      \
+    { \
+        throw uno::RuntimeException("Unacceptable height", static_cast<cppu::OWeakObject*>(this)); \
+    } \
 } \
 ::sal_Int32 SAL_CALL clazz::getPositionX() throw (uno::RuntimeException) \
 { \
@@ -76,7 +83,14 @@ void SAL_CALL clazz::setWidth( ::sal_Int32 _width ) throw (uno::RuntimeException
 { \
     awt::Size aSize = getSize(); \
     aSize.Width = _width; \
-    setSize(aSize); \
+    try \
+    { \
+        setSize(aSize); \
+    } \
+    catch (const beans::PropertyVetoException &)      \
+    { \
+        throw uno::RuntimeException("Unacceptable width", static_cast<cppu::OWeakObject*>(this)); \
+    } \
 } \
 uno::Reference< report::XSection > SAL_CALL clazz::getSection() throw (uno::RuntimeException) \
 { \
commit 9cb32fb3ebb7ee96b9db0dc7c1b30ae863b85706
Author: Petr Mladek <pmladek at suse.cz>
Date:   Thu Nov 29 11:14:13 2012 +0100

    lo-commit-stat: allow to filer cherry-picked commits
    
    Add --cherry option that filters commits using the "git cherry" command.
    
    Note that you need to pass git arguments for "git cherry". It means
    "old-branch-or-tag" "new-branch-or-tag".
    
    Change-Id: Iea67d0ead205c66112791cb0444fa183c7fa6e9b

diff --git a/bin/lo-commit-stat b/bin/lo-commit-stat
index 6da5285..7dd2211 100755
--- a/bin/lo-commit-stat
+++ b/bin/lo-commit-stat
@@ -6,6 +6,7 @@
 use strict;
 use LWP::UserAgent;
 use utf8;
+use File::Temp;
 
 my $main_repo="core";
 my @pieces=("binfilter", "dictionaries", "help", "translations");
@@ -87,11 +88,53 @@ sub standardize_summary($)
     return $line;
 }
 
-sub load_git_log($$$$$) 
+sub generate_git_cherry_ids_log($$$$$) 
 {
-    my ($pdata, $repo_dir, $piece, $branch_name, $git_command) = @_;
+    my ($pdata, $repo_dir, $piece, $branch_name, $git_args) = @_;
+
+    my $commit_ids_log;
+    my $commit_ids_log_fh;
+    $commit_ids_log_fh = File::Temp->new(TEMPLATE => 'lo-commit-stat-ids-XXXXXX',
+                                         DIR => '/tmp',
+                                         UNLINK => 0);
+    $commit_ids_log = $commit_ids_log_fh->filename;
+
+    print STDERR "Filtering cherry-picked commits in the git repo: $piece...\n";
+
+    my $cmd = "cd $repo_dir; git cherry $git_args";
+    open (GIT, "$cmd 2>&1|") || die "Can't run $cmd: $!";
+
+    while (my $line = <GIT>) {
+
+        # skip cherry-picked commits
+        next if ( $line =~ m/^\-/ );
+    
+        if ( $line =~ m/^\+ / ) {
+            $line =~ s/^\+ //;
+            print $commit_ids_log_fh $line;
+        }
+    }
+    
+    close GIT;
+    close $commit_ids_log_fh;
+    
+    return $commit_ids_log;
+}
+
+sub load_git_log($$$$$$$) 
+{
+    my ($pdata, $repo_dir, $piece, $branch_name, $git_command, $git_cherry, $git_args) = @_;
+
+    my $cmd = "cd $repo_dir;";
+    my $commit_ids_log;
+    
+    if ($git_cherry) {
+        $commit_ids_log = generate_git_cherry_ids_log($pdata, $repo_dir, $piece, $branch_name, $git_args);
+        $cmd .= " cat $commit_ids_log | xargs -n 1 $git_command -1";
+    } else {
+        $cmd .= " $git_command $git_args";
+    }
 
-    my $cmd = "cd $repo_dir; $git_command";
     my $commit_id;
     my $summary;
 
@@ -149,6 +192,7 @@ sub load_git_log($$$$$)
     }
 
     close GIT;
+    unlink $commit_ids_log if ($git_cherry);
 }
 
 sub get_repo_name($)
@@ -170,9 +214,9 @@ sub get_repo_name($)
     die "Error: can't find repo name in \"$$repo_dir/.git/config\"\n";
 }
 
-sub load_data($$$$$)
+sub load_data($$$$$$$)
 {
-    my ($pdata, $top_dir, $piece, $branch_name, $git_command) = @_;
+    my ($pdata, $top_dir, $piece, $branch_name, $git_command, $git_cherry, $git_args) = @_;
 
     if (defined $piece) {
         my $piece_dir;
@@ -181,11 +225,11 @@ sub load_data($$$$$)
         } else {
             $piece_dir = "$top_dir/clone/$piece";
         }
-        load_git_log($pdata, $piece_dir, $piece, $branch_name, $git_command);
+        load_git_log($pdata, $piece_dir, $piece, $branch_name, $git_command, $git_cherry, $git_args);
     } else {
-        load_git_log($pdata, $top_dir, $main_repo, $branch_name, $git_command);
-        foreach my $piece (@pieces) {
-            load_git_log($pdata, "$top_dir/clone/$piece", $piece, $branch_name, $git_command);
+        load_git_log($pdata, $top_dir, $main_repo, $branch_name, $git_command, $git_cherry, $git_args);
+        foreach my $piece (sort { $a cmp $b } @pieces) {
+            load_git_log($pdata, "$top_dir/clone/$piece", $piece, $branch_name, $git_command, $git_cherry, $git_args);
         }
     }
 }
@@ -420,13 +464,17 @@ sub usage()
           "     --bugs-numbers  generate log with bugzilla numbers\n" .
           "     --rev-list      use \"git rev-list\" instead of \"git log\"; useful to check\n" .
           "                     differences between branches\n" .
+          "     --cherry        use \"git cherry\" instead of \"git log\"; detects cherry-picked\n" .
+          "                     commits between branches\n" .
           "      topdir         directory with the libreoffice/core clone; the piece repos\n" .
           "                     must be cloned in the main-repo-root/clone/<piece> subdirectories\n" .
           "      git_arg        extra parameters passed to the git command to define\n" .
           "                     the area of interest; The default command is \"git log\" and\n" .
           "                     parameters might be, for example, --after=\"2010-09-27\" or\n" .
           "                     TAG..HEAD; with the option --rev-list, useful might be, for\n" .
-          "                     example origin/master ^origin/libreoffice-3-3\n";
+          "                     example origin/master ^origin/libreoffice-3-3; with the option\n" .
+          "                     --rev-list, useful might be, for example libreoffice-3.6.3.2\n" .
+          "                     libreoffice-3.6.4.1\n";
 }
 
 
@@ -446,8 +494,9 @@ my $log_suffix;
 my $log;
 my $branch_name;
 my $git_command = "git log";
+my $git_cherry;
+my $git_args = "";
 my $branch_name;
-my @git_args;
 my %data;
 my $print_mode = "normal";
 
@@ -482,11 +531,14 @@ foreach my $arg (@ARGV) {
         $generate_log{"bugs-numbers"} = 1;
     } elsif ($arg eq '--rev-list') {
         $git_command = "git rev-list --pretty=medium"
+    } elsif ($arg eq '--cherry') {
+        $git_command = "git log";
+        $git_cherry = 1;
     } else {
         if (! defined $top_dir) {
             $top_dir=$arg;
         } else {
-            push @git_args, $arg;
+            $git_args .= " $arg";
         }
     }
 }
@@ -496,8 +548,6 @@ if (%generate_log == 0) {
     $generate_log{"commits"} = 1;
 }
 
-$git_command .= " " . join ' ', @git_args if (@git_args);
-
 (defined $top_dir) || die "Error: top directory is not defined\n";
 (-d "$top_dir") || die "Error: not a directory: $top_dir\n";
 (-f "$top_dir/.git/config") || die "Error: can't find $top_dir/.git/config\n";
@@ -508,7 +558,7 @@ $git_command .= " " . join ' ', @git_args if (@git_args);
 
 $branch_name = get_branch_name($top_dir);
 
-load_data(\%data, $top_dir, $piece, $branch_name, $git_command);
+load_data(\%data, $top_dir, $piece, $branch_name, $git_command, $git_cherry, $git_args);
 
 generate_log(\%data, \&print_commits,    $log_dir, "commits",     $log_suffix, $top_dir, $branch_name, 0) if (defined $generate_log{"commits"});
 generate_log(\%data, \&print_bugs,       $log_dir, "bugs",        $log_suffix, $top_dir, $branch_name, 0) if (defined $generate_log{"bugs"});
commit 625ee30235e13e84599b5d59c7d09369bd187020
Author: Petr Mladek <pmladek at suse.cz>
Date:   Tue Nov 20 16:10:58 2012 +0100

    lo-commit-stat: allow to generate more logs at once
    
    It takes ages to get bug summary from bugzilla => it is worh to
    generate normal and wiki logs at the same time. Why not produce
    all logs with one call
    
    Add --commits option. Also rename --wikibugs to --bugs-wiki.
    
    Use .wiki suffix for wiki logs. Also rename "commit-log" to "commits".
    It is enough to use ".log" as the suffix.
    
    Change-Id: I92bbc4d56a0ae9e23401be0677256059c777d712

diff --git a/bin/lo-commit-stat b/bin/lo-commit-stat
index 4135b8b..6da5285 100755
--- a/bin/lo-commit-stat
+++ b/bin/lo-commit-stat
@@ -214,12 +214,17 @@ sub get_branch_name($)
     return $branch;
 }
 
-sub open_log_file($$$$$)
+sub open_log_file($$$$$$)
 {
-    my ($log_dir, $log_prefix, $log_suffix, $top_dir, $branch_name) = @_;
+    my ($log_dir, $log_prefix, $log_suffix, $top_dir, $branch_name, $wiki) = @_;
 
-    my $logfilename = "$log_prefix-$branch_name-$log_suffix.log";
+    my $logfilename = "$log_prefix-$branch_name-$log_suffix";
     $logfilename = "$log_dir/$logfilename" if (defined $log_dir);
+    if ($wiki) {
+        $logfilename .= ".wiki";
+    } else {
+        $logfilename .= ".log";
+    }
 
     if (-f $logfilename) {
         print "WARNING: The log file already exists: $logfilename\n";
@@ -236,7 +241,7 @@ sub open_log_file($$$$$)
     return $log;
 }
 
-sub print_summary_in_stat($$$$$$)
+sub print_commit_summary($$$$$$)
 {
     my ($summary, $ppiece_title, $pbugs, $pauthors, $prefix, $log) = @_;
 
@@ -262,9 +267,9 @@ sub print_summary_in_stat($$$$$$)
     print $log $prefix, $summary, $bugs, $authors, "\n";
 }
 
-sub print_stat($$)
+sub print_commits($$$)
 {
-    my ($pdata, $log) = @_;
+    my ($pdata, $log, $wiki) = @_;
 
     foreach my $piece ( sort { $a cmp $b } keys %{$pdata}) {
         # check if this piece has any entries at all
@@ -276,7 +281,7 @@ sub print_stat($$)
             foreach my $id ( sort { lc $pdata->{$piece}{$a}{'summary'} cmp lc $pdata->{$piece}{$b}{'summary'} } keys %{$pdata->{$piece}}) {
                 my $summary = $pdata->{$piece}{$id}{'summary'};
                 if ($summary ne $old_summary) {
-                    print_summary_in_stat($old_summary, \$piece_title, \%bugs, \%authors, "    + ", $log);
+                    print_commit_summary($old_summary, \$piece_title, \%bugs, \%authors, "    + ", $log);
                     $old_summary = $summary;
                     %authors = ();
                     %bugs = ();
@@ -291,7 +296,7 @@ sub print_stat($$)
                 my $author = $pdata->{$piece}{$id}{'author'}{'name'};
                 $authors{$author} = 1;
             }
-            print_summary_in_stat($old_summary, \$piece_title, \%bugs, \%authors, "    + ", $log);
+            print_commit_summary($old_summary, \$piece_title, \%bugs, \%authors, "    + ", $log);
         }
     }
 }
@@ -331,7 +336,7 @@ sub get_bug_name($$)
 
 sub print_bugs($$$)
 {
-    my ($pdata, $log, $convert_func) = @_;
+    my ($pdata, $log, $wiki) = @_;
 
     # associate bugs with their summaries and fixers
     my %bugs = ();
@@ -361,13 +366,14 @@ sub print_bugs($$$)
             $authors = " [" . join (", ", keys %{$bugs{$bug}{'author'}}) . "]";
         }
 
-        print $log $convert_func->($bug), " ", $summary, $authors, "\n";
+        $bug =~ s/(.*)\#(.*)/* {{$1|$2}}/ if ($wiki);
+        print $log $bug, " ", $summary, $authors, "\n";
     }
 }
 
-sub print_bugnumbers($$)
+sub print_bugnumbers($$$)
 {
-    my ($pdata, $log) = @_;
+    my ($pdata, $log, $wiki) = @_;
 
     # just collect bugs
     my %bugs = ();
@@ -382,6 +388,15 @@ sub print_bugnumbers($$)
     print $log join ("\n", sort { $a cmp $b } keys %bugs), "\n";
 }
 
+sub generate_log($$$$$$$$)
+{
+    my ($pdata, $print_func, $log_dir, $log_prefix, $log_suffix, $top_dir, $branch_name, $wiki) = @_;
+
+    my $log = open_log_file($log_dir, $log_prefix, $log_suffix, $top_dir, $branch_name, $wiki);
+    & {$print_func} ($pdata, $log, $wiki);
+    close $log;
+}
+
 ########################################################################
 # help
 
@@ -399,9 +414,10 @@ sub usage()
           "     --log-suffix=<string> suffix of the log file name; the result will be\n" .
           "                     commit-log-<branch>-<log-name-suffix>.log; the branch name\n" .
           "                     is detected automatically\n" .
-          "     --bugs          print just bug fixes\n" .
-          "     --wikibugs      print just bug fixes, use wiki markup\n" .
-          "     --bug-numbers   print just fixed bug numbers\n" .
+          "     --commits       generete log with all commits (default)\n" .
+          "     --bugs          generate log with bugzilla entries\n" .
+          "     --bugs-wiki     generate log with bugzilla entries, use wiki markup\n" .
+          "     --bugs-numbers  generate log with bugzilla numbers\n" .
           "     --rev-list      use \"git rev-list\" instead of \"git log\"; useful to check\n" .
           "                     differences between branches\n" .
           "      topdir         directory with the libreoffice/core clone; the piece repos\n" .
@@ -422,6 +438,7 @@ sub usage()
 
 
 my $piece;
+my %generate_log = ();
 my $top_dir;
 my $log_prefix = "commit-log";
 my $log_dir;
@@ -434,6 +451,15 @@ my @git_args;
 my %data;
 my $print_mode = "normal";
 
+        $log_prefix = "bugfixes";
+        $print_mode = "bugs";
+        $log_prefix = "bugfixes";
+        $print_mode = "wikibugs";
+        $log_prefix = "bugnumbers";
+        $print_mode = "bugnumbers";
+
+
+
 foreach my $arg (@ARGV) {
     if ($arg eq '--help') {
         usage();
@@ -446,15 +472,14 @@ foreach my $arg (@ARGV) {
 	$log_suffix = "$1";
     } elsif ($arg =~ m/--log-dir=(.*)/) {
 	$log_dir = "$1";
+    } elsif ($arg eq '--commits') {
+        $generate_log{"commits"} = 1;
     } elsif ($arg eq '--bugs') {
-        $log_prefix = "bugfixes";
-        $print_mode = "bugs";
-    } elsif ($arg eq '--wikibugs') {
-        $log_prefix = "bugfixes";
-        $print_mode = "wikibugs";
-    } elsif ($arg eq '--bug-numbers') {
-        $log_prefix = "bugnumbers";
-        $print_mode = "bugnumbers";
+        $generate_log{"bugs"} = 1;
+    } elsif ($arg eq '--bugs-wiki' || $arg eq '--wikibugs') {
+        $generate_log{"bugs-wiki"} = 1;
+    } elsif ($arg eq '--bugs-numbers' || $arg eq '--bug-numbers') {
+        $generate_log{"bugs-numbers"} = 1;
     } elsif ($arg eq '--rev-list') {
         $git_command = "git rev-list --pretty=medium"
     } else {
@@ -466,6 +491,11 @@ foreach my $arg (@ARGV) {
     }
 }
 
+# default log
+if (%generate_log == 0) {
+    $generate_log{"commits"} = 1;
+}
+
 $git_command .= " " . join ' ', @git_args if (@git_args);
 
 (defined $top_dir) || die "Error: top directory is not defined\n";
@@ -480,16 +510,7 @@ $branch_name = get_branch_name($top_dir);
 
 load_data(\%data, $top_dir, $piece, $branch_name, $git_command);
 
-$log = open_log_file($log_dir, $log_prefix, $log_suffix, $top_dir, $branch_name);
-if ( $print_mode eq "bugs" ) {
-    # identity-transform bug ids
-    print_bugs(\%data, $log, sub { return $_[0] } );
-} elsif ( $print_mode eq "wikibugs" ) {
-    # wiki-ize bug ids
-    print_bugs(\%data, $log, sub { $_[0] =~ s/(.*)\#(.*)/* {{$1|$2}}/; return $_[0] });
-} elsif ( $print_mode eq "bugnumbers" ) {
-    print_bugnumbers(\%data, $log);
-} else {
-    print_stat(\%data, $log);
-}
-close $log;
+generate_log(\%data, \&print_commits,    $log_dir, "commits",     $log_suffix, $top_dir, $branch_name, 0) if (defined $generate_log{"commits"});
+generate_log(\%data, \&print_bugs,       $log_dir, "bugs",        $log_suffix, $top_dir, $branch_name, 0) if (defined $generate_log{"bugs"});
+generate_log(\%data, \&print_bugs,       $log_dir, "bugs",        $log_suffix, $top_dir, $branch_name, 1) if (defined $generate_log{"bugs-wiki"});
+generate_log(\%data, \&print_bugnumbers, $log_dir, "bug-numbers", $log_suffix, $top_dir, $branch_name, 0) if (defined $generate_log{"bugs-numbers"});
commit 62d370647c692fe5a8d7963de98708d82752016b
Author: Thorsten Behrens <tbehrens at suse.com>
Date:   Thu Jul 12 01:32:55 2012 +0200

    Make commit stat script recognize opensuse fate entries, too
    
    Change-Id: Ia6b3e6459c5bda7ea24091024cf3dabd19746237
    Signed-off-by: Petr Mladek <pmladek at suse.cz>

diff --git a/bin/lo-commit-stat b/bin/lo-commit-stat
index 4fb8a10..4135b8b 100755
--- a/bin/lo-commit-stat
+++ b/bin/lo-commit-stat
@@ -11,10 +11,11 @@ my $main_repo="core";
 my @pieces=("binfilter", "dictionaries", "help", "translations");
 
 my %bugzillas = (
-    fdo  => "https://bugs.freedesktop.org/",
-    bnc  => "https://bugzilla.novell.com/",
-    rhbz => "https://bugzilla.redhat.com/",
-    i    => "https://issues.apache.org/ooo/",
+    fdo  => "https://bugs.freedesktop.org/show_bug.cgi?id=",
+    bnc  => "https://bugzilla.novell.com/show_bug.cgi?id=",
+    rhbz => "https://bugzilla.redhat.com/show_bug.cgi?id=",
+    i    => "https://issues.apache.org/ooo/show_bug.cgi?id=",
+    fate => "https://features.opensuse.org/",
 );
 
 sub search_bugs($$$$)
@@ -305,7 +306,7 @@ sub get_bug_name($$)
     my $bug_number = $2;          # 12345
 
     if ( $bugzillas{$bugzilla} ) {
-        my $url = $bugzillas{$bugzilla} . "show_bug.cgi?id=" . $bug_number;
+        my $url = $bugzillas{$bugzilla} . $bug_number;
         my $ua = LWP::UserAgent->new;
         $ua->timeout(10);
         $ua->env_proxy;
commit 7a76e29d6e0849336219e56f91fb05f3c5efaa8b
Author: Thorsten Behrens <tbehrens at suse.com>
Date:   Sat Jun 23 16:08:10 2012 +0200

    Slightly more robust removal of bug title prefix.
    
    Change-Id: Ic37589222831d03ec48689a077b1eb16a9199385
    Signed-off-by: Petr Mladek <pmladek at suse.cz>

diff --git a/bin/lo-commit-stat b/bin/lo-commit-stat
index d2b6d855..4fb8a10 100755
--- a/bin/lo-commit-stat
+++ b/bin/lo-commit-stat
@@ -312,11 +312,11 @@ sub get_bug_name($$)
         my $response = $ua->get($url);
         if ($response->is_success) {
             my $title = $response->title;
-            if ( $title =~ s/^Bug \d+ – // ) {
+            if ( $title =~ s/^Bug \d+ \S+ // ) {
                 print "$title\n";
                 return $title;
             } else {
-                print "warning: not found; using commit message\n";
+                print "warning: not found; using commit message (only got $title)\n";
             }
         } else {
             print "\n";
commit 2e6ce1e89374582413daad2fd82006575f49865c
Author: Maxime de Roucy <mderoucy at linagora.com>
Date:   Fri Nov 23 14:40:27 2012 +0100

    fix bug 53508
    
    In the format paintbrush function :
    Apply the paragraph automatic attributes to all the nodes in the
    selection instead of just the last node.
    
    Change-Id: I655f00cbf44d3d80c19a7ef623bc1c7cb505ead9
    Reviewed-on: https://gerrit.libreoffice.org/1180
    Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>
    Tested-by: Norbert Thiebaud <nthiebaud at gmail.com>

diff --git a/sw/source/ui/uiview/formatclipboard.cxx b/sw/source/ui/uiview/formatclipboard.cxx
index 8b09cba..15e3cdf 100644
--- a/sw/source/ui/uiview/formatclipboard.cxx
+++ b/sw/source/ui/uiview/formatclipboard.cxx
@@ -551,7 +551,15 @@ void SwFormatClipboard::Paste( SwWrtShell& rWrtShell, SfxStyleSheetBasePool* pPo
             // it can't be a multiple selection
             SwPaM* pCrsr = rWrtShell.GetCrsr();
 
-            // apply the paragraph automatic attributes
+            // apply the paragraph automatic attributes to all the nodes in the selection
+            for (SwNodeIndex pNodeIndexIterator = pCrsr->Start()->nNode,
+                             pNodeIndexEnd = pCrsr->End()->nNode;
+                    pNodeIndexIterator != pNodeIndexEnd;
+                    ++pNodeIndexIterator )
+            {
+                pNodeIndexIterator.GetNode().GetCntntNode()->SetAttr( *pTemplateItemSet );
+            }
+            // same as pCrsr->End()->nNode.GetNode().GetCntntNode()->SetAttr
             pCrsr->GetCntntNode()->SetAttr( *pTemplateItemSet );
 
             // store the attributes in aItemVector in order not to apply them as
commit ca3b32f2384cbcfb59dc6c7b4243491a38880b1e
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Nov 24 18:35:12 2012 +0100

    this method actually can throw, related fdo#57451
    
    Change-Id: I26b79829029e127eb8b9ab4fbea3e0f02035ee41
    Signed-off-by: Michael Meeks <michael.meeks at suse.com>

diff --git a/oox/inc/oox/core/xmlfilterbase.hxx b/oox/inc/oox/core/xmlfilterbase.hxx
index 0e015da..e001df0 100644
--- a/oox/inc/oox/core/xmlfilterbase.hxx
+++ b/oox/inc/oox/core/xmlfilterbase.hxx
@@ -235,7 +235,7 @@ public:
 
     sal_Int32 getNamespaceId( const ::rtl::OUString& rUrl );
 
-    void importDocumentProperties() throw();
+    void importDocumentProperties();
 
 protected:
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >
diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx
index 583170b..e7db943 100644
--- a/oox/source/core/xmlfilterbase.cxx
+++ b/oox/source/core/xmlfilterbase.cxx
@@ -236,7 +236,7 @@ XmlFilterBase::~XmlFilterBase()
 
 // ----------------------------------------------------------------------------
 
-void XmlFilterBase::importDocumentProperties() throw()
+void XmlFilterBase::importDocumentProperties()
 {
     Reference< XMultiServiceFactory > xFactory( getServiceFactory(), UNO_QUERY );
     MediaDescriptor aMediaDesc( getMediaDescriptor() );
commit 97ccd34a77d7461bf91d1908f77d6aeb8143f32d
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Nov 24 18:56:18 2012 +0100

    we need to catch the exception here, fdo#57451
    
    Change-Id: I203aa640e7d4373f3a090a4988c28c6059b93064
    Signed-off-by: Michael Meeks <michael.meeks at suse.com>

diff --git a/sc/source/filter/oox/excelfilter.cxx b/sc/source/filter/oox/excelfilter.cxx
index 84f9331..51f764e 100644
--- a/sc/source/filter/oox/excelfilter.cxx
+++ b/sc/source/filter/oox/excelfilter.cxx
@@ -129,7 +129,14 @@ bool ExcelFilter::importDocument() throw()
     WorkbookGlobalsRef xBookGlob = WorkbookHelper::constructGlobals( *this );
     if ( xBookGlob.get() && importFragment( new WorkbookFragment( *xBookGlob, aWorkbookPath ) ) )
     {
-        importDocumentProperties();
+        try
+        {
+            importDocumentProperties();
+        }
+        catch( const Exception& e )
+        {
+            SAL_WARN("sc", "exception when importing document properties " << e.Message);
+        }
         return true;
     }
     return false;


More information about the Libreoffice-commits mailing list