[Libreoffice-commits] core.git: Branch 'distro/collabora/lov-4.4' - 32 commits - basic/inc basic/source dictionaries drawinglayer/source editeng/source filter/source .gitignore i18npool/source icon-themes/galaxy include/editeng include/xmloff offapi/com readlicense_oo/license sc/source sd/source sw/CppunitTest_sw_rtfexport.mk sw/inc sw/qa sw/source vcl/generic vcl/source vcl/unx wizards/com writerfilter/source xmloff/inc xmloff/source

Miklos Vajna vmiklos at collabora.co.uk
Thu May 28 03:44:18 PDT 2015


 .gitignore                                                    |    3 
 basic/inc/pch/precompiled_sb.hxx                              |    2 
 basic/source/runtime/methods.cxx                              |   46 
 dev/null                                                      |binary
 dictionaries                                                  |    2 
 drawinglayer/source/attribute/fillgradientattribute.cxx       |    4 
 drawinglayer/source/attribute/fillgraphicattribute.cxx        |    4 
 drawinglayer/source/attribute/fillhatchattribute.cxx          |    4 
 drawinglayer/source/attribute/lineattribute.cxx               |    4 
 drawinglayer/source/attribute/linestartendattribute.cxx       |    4 
 drawinglayer/source/attribute/sdrfillattribute.cxx            |    4 
 drawinglayer/source/attribute/sdrfillgraphicattribute.cxx     |    4 
 drawinglayer/source/attribute/sdrlightingattribute3d.cxx      |    4 
 drawinglayer/source/attribute/sdrlineattribute.cxx            |    4 
 drawinglayer/source/attribute/sdrlinestartendattribute.cxx    |    4 
 drawinglayer/source/attribute/sdrsceneattribute3d.cxx         |    4 
 drawinglayer/source/attribute/sdrshadowattribute.cxx          |    4 
 drawinglayer/source/attribute/strokeattribute.cxx             |    4 
 editeng/source/items/flditem.cxx                              |    2 
 editeng/source/uno/unofield.cxx                               |    9 
 filter/source/xslt/import/spreadsheetml/spreadsheetml2ooo.xsl |   13 
 i18npool/source/breakiterator/breakiterator_th.cxx            |   10 
 icon-themes/galaxy/res/helpimg/rechenlt.png                   |binary
 include/editeng/flditem.hxx                                   |    2 
 include/xmloff/txtimp.hxx                                     |    1 
 include/xmloff/xmltoken.hxx                                   |    1 
 offapi/com/sun/star/text/textfield/Type.idl                   |    2 
 readlicense_oo/license/CREDITS.fodt                           | 2784 +++++-----
 sc/source/ui/view/gridwin4.cxx                                |   10 
 sd/source/ui/app/sdmod2.cxx                                   |    6 
 sd/source/ui/app/strings.src                                  |   10 
 sd/source/ui/inc/strings.hrc                                  |    2 
 sd/source/ui/unoidl/unomodel.cxx                              |    6 
 sw/CppunitTest_sw_rtfexport.mk                                |   31 
 sw/inc/doc.hxx                                                |    5 
 sw/inc/frmfmt.hxx                                             |   23 
 sw/inc/node.hxx                                               |    9 
 sw/qa/extras/htmlexport/data/tdf90905.odt                     |binary
 sw/qa/extras/htmlexport/htmlexport.cxx                        |    9 
 sw/qa/extras/inc/swmodeltestbase.hxx                          |    6 
 sw/qa/extras/odfimport/odfimport.cxx                          |    2 
 sw/qa/extras/ooxmlexport/data/hyperlink-field.odt             |binary
 sw/qa/extras/ooxmlexport/data/tdf91261.docx                   |binary
 sw/qa/extras/ooxmlexport/ooxmlexport.cxx                      |   19 
 sw/qa/extras/ooxmlexport/ooxmlexport5.cxx                     |    8 
 sw/qa/extras/rtfexport/data/tdf90421.fodt                     |    8 
 sw/qa/extras/rtfexport/rtfexport.cxx                          |   23 
 sw/qa/extras/rtfimport/data/tdf91074.rtf                      |    7 
 sw/qa/extras/rtfimport/rtfimport.cxx                          |    7 
 sw/source/core/doc/DocumentRedlineManager.cxx                 |    2 
 sw/source/core/doc/docbm.cxx                                  |    2 
 sw/source/core/doc/doclay.cxx                                 |   18 
 sw/source/core/doc/docnew.cxx                                 |    2 
 sw/source/core/docnode/node.cxx                               |   47 
 sw/source/core/docnode/nodes.cxx                              |   76 
 sw/source/core/layout/atrfrm.cxx                              |   51 
 sw/source/core/layout/frmtool.cxx                             |    9 
 sw/source/core/txtnode/ndtxt.cxx                              |    8 
 sw/source/core/undo/undoflystrattr.cxx                        |    1 
 sw/source/core/unocore/unoflatpara.cxx                        |   10 
 sw/source/core/unocore/unoframe.cxx                           |   21 
 sw/source/filter/html/wrthtml.cxx                             |    8 
 sw/source/filter/ww8/docxattributeoutput.cxx                  |   10 
 sw/source/filter/ww8/rtfattributeoutput.cxx                   |   74 
 sw/source/filter/ww8/rtfattributeoutput.hxx                   |    3 
 sw/source/ui/fldui/fldref.cxx                                 |    5 
 vcl/generic/glyphs/gcach_layout.cxx                           |    6 
 vcl/source/gdi/mapmod.cxx                                     |    8 
 vcl/source/outdev/font.cxx                                    |    5 
 vcl/source/outdev/map.cxx                                     |    1 
 vcl/source/window/floatwin.cxx                                |    4 
 vcl/unx/generic/gdi/cairotextrender.cxx                       |    2 
 wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py |    8 
 writerfilter/source/dmapper/DomainMapper.cxx                  |   21 
 writerfilter/source/dmapper/DomainMapper_Impl.cxx             |   12 
 writerfilter/source/dmapper/PropertyIds.cxx                   |    2 
 writerfilter/source/dmapper/PropertyIds.hxx                   |    2 
 writerfilter/source/dmapper/PropertyMap.cxx                   |    5 
 writerfilter/source/dmapper/PropertyMap.hxx                   |    2 
 writerfilter/source/rtftok/rtfdocumentimpl.cxx                |    6 
 writerfilter/source/rtftok/rtfsdrimport.cxx                   |   45 
 writerfilter/source/rtftok/rtfsdrimport.hxx                   |    2 
 xmloff/inc/txtflde.hxx                                        |    1 
 xmloff/inc/txtfldi.hxx                                        |   22 
 xmloff/source/core/xmltoken.cxx                               |    1 
 xmloff/source/style/XMLBackgroundImageContext.cxx             |    3 
 xmloff/source/text/txtflde.cxx                                |   16 
 xmloff/source/text/txtfldi.cxx                                |   31 
 xmloff/source/text/txtimp.cxx                                 |    2 
 89 files changed, 2077 insertions(+), 1597 deletions(-)

New commits:
commit 9aef835e08c34341d9d4ec6aa2905b9217b4c5a6
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon May 11 09:05:12 2015 +0200

    tdf#91074 RTF import: handle \dplineco* for text frames
    
    RTFSdrImport::resolve() already had the logic to use the relevant API
    depending on if the shape is a text frame or not -- extract that to a
    separate member function and use it from RTFDocumentImpl::popState(),
    too.
    
    (cherry picked from commit ec1a96e79e3e6225706151cb72eb3df763b0598d)
    
    Conflicts:
    	sw/qa/extras/rtfimport/rtfimport.cxx
    	writerfilter/source/rtftok/rtfsdrimport.cxx
    	writerfilter/source/rtftok/rtfsdrimport.hxx
    
    Change-Id: I663b372244f09f002447ece62587143b2a575795
    Reviewed-on: https://gerrit.libreoffice.org/15939
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/qa/extras/rtfimport/data/tdf91074.rtf b/sw/qa/extras/rtfimport/data/tdf91074.rtf
new file mode 100644
index 0000000..ff3fe9b
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/tdf91074.rtf
@@ -0,0 +1,7 @@
+{\rtf1\ansi\ansicpg1252\deff0\deftab720
+{\*\do\dobxpage\dobypage\dodhgt8192\dptxbx
+{\dptxbxtext\pard\plain
+inner\par }
+\dpx674\dpy725\dpxsize1875\dpysize1020\dplinecor255\dplinecog0\dplinecob0\dplinew40\dpfillfgcr0\dpfillfgcg0\dpfillfgcb0\dpfillbgcr0\dpfillbgcg0\dpfillbgcb0\dpfillpat0}
+\par
+outer\par}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index 6c52362..535687f 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -2265,6 +2265,13 @@ DECLARE_RTFIMPORT_TEST(testTdf86182, "tdf86182.rtf")
     CPPUNIT_ASSERT_EQUAL(text::WritingMode2::RL_TB, getProperty<sal_Int16>(getParagraph(1), "WritingMode"));
 }
 
+DECLARE_RTFIMPORT_TEST(testTdf91074, "tdf91074.rtf")
+{
+    // The file failed to load, as the border color was imported using the LineColor UNO property.
+    uno::Reference<drawing::XShape> xShape = getShape(1);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(COL_LIGHTRED), getProperty<table::BorderLine2>(xShape, "TopBorder").Color);
+}
+
 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 ad9954b..b039ede 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -5541,7 +5541,11 @@ int RTFDocumentImpl::popState()
             xShape->setSize(awt::Size(rDrawing.nRight, rDrawing.nBottom));
 
             if (rDrawing.bHasLineColor)
-                xPropertySet->setPropertyValue("LineColor", uno::makeAny(sal_uInt32((rDrawing.nLineColorR<<16) + (rDrawing.nLineColorG<<8) + rDrawing.nLineColorB)));
+            {
+                uno::Any aLineColor = uno::makeAny(sal_uInt32((rDrawing.nLineColorR<<16) + (rDrawing.nLineColorG<<8) + rDrawing.nLineColorB));
+                uno::Any aLineWidth;
+                RTFSdrImport::resolveLineColorAndWidth(bTextFrame, xPropertySet, aLineColor, aLineWidth);
+            }
             if (rDrawing.bHasFillColor)
                 xPropertySet->setPropertyValue("FillColor", uno::makeAny(sal_uInt32((rDrawing.nFillColorR<<16) + (rDrawing.nFillColorG<<8) + rDrawing.nFillColorB)));
             else if (!bTextFrame)
diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx b/writerfilter/source/rtftok/rtfsdrimport.cxx
index 7969b0b..1ebaf46 100644
--- a/writerfilter/source/rtftok/rtfsdrimport.cxx
+++ b/writerfilter/source/rtftok/rtfsdrimport.cxx
@@ -128,6 +128,31 @@ void RTFSdrImport::resolveDhgt(uno::Reference<beans::XPropertySet> const& xPrope
     pHelper->addItem(xPropertySet, nZOrder);
 }
 
+void RTFSdrImport::resolveLineColorAndWidth(bool bTextFrame, const uno::Reference<beans::XPropertySet>& xPropertySet, uno::Any& rLineColor, uno::Any& rLineWidth)
+{
+    if (!bTextFrame)
+    {
+        xPropertySet->setPropertyValue("LineColor", rLineColor);
+        xPropertySet->setPropertyValue("LineWidth", rLineWidth);
+    }
+    else
+    {
+        static const char* aBorders[] =
+        {
+            "TopBorder", "LeftBorder", "BottomBorder", "RightBorder"
+        };
+        for (unsigned int i = 0; i < SAL_N_ELEMENTS(aBorders); ++i)
+        {
+            table::BorderLine2 aBorderLine = xPropertySet->getPropertyValue(OUString::createFromAscii(aBorders[i])).get<table::BorderLine2>();
+            if (rLineColor.hasValue())
+                aBorderLine.Color = rLineColor.get<sal_Int32>();
+            if (rLineWidth.hasValue())
+                aBorderLine.LineWidth = rLineWidth.get<sal_Int32>();
+            xPropertySet->setPropertyValue(OUString::createFromAscii(aBorders[i]), uno::makeAny(aBorderLine));
+        }
+    }
+}
+
 void RTFSdrImport::resolveFLine(uno::Reference<beans::XPropertySet> const& xPropertySet,
                                 sal_Int32 const nFLine)
 {
@@ -752,25 +777,7 @@ void RTFSdrImport::resolve(RTFShape& rShape, bool bClose, ShapeOrPict const shap
 
     if (xPropertySet.is())
     {
-        if (!m_bTextFrame)
-        {
-            xPropertySet->setPropertyValue("LineColor", aLineColor);
-            xPropertySet->setPropertyValue("LineWidth", aLineWidth);
-        }
-        else
-        {
-            static const OUString aBorders[] =
-            {
-                OUString("TopBorder"), OUString("LeftBorder"), OUString("BottomBorder"), OUString("RightBorder")
-            };
-            for (unsigned int i = 0; i < SAL_N_ELEMENTS(aBorders); ++i)
-            {
-                table::BorderLine2 aBorderLine = xPropertySet->getPropertyValue(aBorders[i]).get<table::BorderLine2>();
-                aBorderLine.Color = aLineColor.get<sal_Int32>();
-                aBorderLine.LineWidth = aLineWidth.get<sal_Int32>();
-                xPropertySet->setPropertyValue(aBorders[i], uno::makeAny(aBorderLine));
-            }
-        }
+        resolveLineColorAndWidth(m_bTextFrame, xPropertySet, aLineColor, aLineWidth);
         if (rShape.oZ)
             resolveDhgt(xPropertySet, *rShape.oZ, /*bOldStyle=*/false);
         if (m_bTextFrame)
diff --git a/writerfilter/source/rtftok/rtfsdrimport.hxx b/writerfilter/source/rtftok/rtfsdrimport.hxx
index 8135ada..53da0ee 100644
--- a/writerfilter/source/rtftok/rtfsdrimport.hxx
+++ b/writerfilter/source/rtftok/rtfsdrimport.hxx
@@ -32,6 +32,8 @@ public:
     /// Append property on the current parent.
     void appendGroupProperty(const OUString& aKey, const OUString& aValue);
     void resolveDhgt(css::uno::Reference<css::beans::XPropertySet> const& xPropertySet, sal_Int32 nZOrder, bool bOldStyle);
+    /// Set line color and line width on the shape, using the relevant API depending on if the shape is a text frame or not.
+    static void resolveLineColorAndWidth(bool bTextFrame, const css::uno::Reference<css::beans::XPropertySet>& xPropertySet, css::uno::Any& rLineColor, css::uno::Any& rLineWidth);
     void resolveFLine(css::uno::Reference<css::beans::XPropertySet> const& xPropertySet, sal_Int32 nFLine);
     /**
      * These are the default in Word, but not in Writer.
commit 0cb181730ec27e178e2ba434ab855d1ae4efdb97
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 27 17:24:13 2015 +0100

    Resolves: tdf#91403 no wrtshell during initial layout
    
    (cherry picked from commit ff44502d836880d2bdb057e7fdfd9b5abeb87842)
    
    (cherry picked from commit cf851cda7c943548d0ce60d0b4836ccbf6e76698)
    
    Change-Id: I0d0b8027e07f9dc2dfff584abd026d1b496d93dd
    Reviewed-on: https://gerrit.libreoffice.org/15933
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sw/source/ui/fldui/fldref.cxx b/sw/source/ui/fldui/fldref.cxx
index 360c080c..1244308 100644
--- a/sw/source/ui/fldui/fldref.cxx
+++ b/sw/source/ui/fldui/fldref.cxx
@@ -183,9 +183,12 @@ void SwFldRefPage::Reset(const SfxItemSet* )
 
     // fill up with the sequence types
     SwWrtShell *pSh = GetWrtShell();
-    if(!pSh)
+    if (!pSh)
         pSh = ::GetActiveWrtShell();
 
+    if (!pSh)
+        return;
+
     const sal_uInt16 nFldTypeCnt = pSh->GetFldTypeCount(RES_SETEXPFLD);
 
     for (sal_uInt16 n = 0; n < nFldTypeCnt; ++n)
commit c11cb9228c2e3624e4fac67143e4b6ada05adb9c
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 27 16:20:34 2015 +0100

    Resolves: tdf#89731 numberingChange feature not available in writer
    
    Change-Id: Ie779e78fc3c7ccf717117513d9187697c22cc51a
    (cherry picked from commit 0123bbbc4d07fd7d6c233f67139984ab3cd4555d)
    Reviewed-on: https://gerrit.libreoffice.org/15932
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 3e7e4af..040e228 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4700,8 +4700,10 @@ void DomainMapper_Impl::SetCurrentRedlineAuthor( const OUString& sAuthor )
 {
     if (!m_xAnnotationField.is())
     {
-        assert( m_currentRedline.get());
-        m_currentRedline->m_sAuthor = sAuthor;
+        if (m_currentRedline.get())
+            m_currentRedline->m_sAuthor = sAuthor;
+        else
+            SAL_INFO("writerfilter.dmapper", "numberingChange not implemented");
     }
     else
         m_xAnnotationField->setPropertyValue("Author", uno::makeAny(sAuthor));
@@ -4717,8 +4719,10 @@ void DomainMapper_Impl::SetCurrentRedlineDate( const OUString& sDate )
 {
     if (!m_xAnnotationField.is())
     {
-        assert( m_currentRedline.get());
-        m_currentRedline->m_sDate = sDate;
+        if (m_currentRedline.get())
+            m_currentRedline->m_sDate = sDate;
+        else
+            SAL_INFO("writerfilter.dmapper", "numberingChange not implemented");
     }
     else
         m_xAnnotationField->setPropertyValue("DateTimeValue", uno::makeAny(ConversionHelper::ConvertDateStringToDateTime(sDate)));
commit 47eb112275d3dc426a0e2e05be91517f0da8943f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 27 15:39:12 2015 +0100

    wrong comparison in letter wizard
    
    the file name widget is empty when it shouldn't be.
    the other wizards get this right
    
    Change-Id: Icdb629e676a73fcf8d8be4352818abbef455bbaf
    (cherry picked from commit a3727ad62b7c1a30f9b0531042cce5ce5b8c6089)
    Reviewed-on: https://gerrit.libreoffice.org/15931
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py b/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py
index d8598ff..f4a16e2 100644
--- a/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py
+++ b/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py
@@ -123,7 +123,7 @@ class LetterWizardDialogImpl(LetterWizardDialog):
                 self.myConfig.cp_PrivateLetter.cp_Salutation = \
                     self.resources.SalutationLabels[2]
 
-            if self.myPathSelection.xSaveTextBox.Text.lower():
+            if self.myPathSelection.xSaveTextBox.Text.lower() == "":
                 self.myPathSelection.initializePath()
 
             xContainerWindow = self.myLetterDoc.xFrame.ContainerWindow
@@ -256,7 +256,7 @@ class LetterWizardDialogImpl(LetterWizardDialog):
         self.lstBusinessStyleItemChanged()
         self.enableSenderReceiver()
         self.setPossibleFooter(True)
-        if self.myPathSelection.xSaveTextBox.Text.lower():
+        if self.myPathSelection.xSaveTextBox.Text.lower() == "":
             self.myPathSelection.initializePath()
 
     def optPrivOfficialLetterItemChanged(self):
@@ -273,7 +273,7 @@ class LetterWizardDialogImpl(LetterWizardDialog):
         self.disableBusinessPaper()
         self.disableSenderReceiver()
         self.setPossibleFooter(True)
-        if self.myPathSelection.xSaveTextBox.Text.lower():
+        if self.myPathSelection.xSaveTextBox.Text.lower() == "":
             self.myPathSelection.initializePath()
         self.myLetterDoc.fillSenderWithUserData()
 
@@ -291,7 +291,7 @@ class LetterWizardDialogImpl(LetterWizardDialog):
         self.disableBusinessPaper()
         self.disableSenderReceiver()
         self.setPossibleFooter(False)
-        if self.myPathSelection.xSaveTextBox.Text.lower():
+        if self.myPathSelection.xSaveTextBox.Text.lower() == "":
             self.myPathSelection.initializePath()
 
     def optSenderPlaceholderItemChanged(self):
commit eb6d735edc45bb3e0fbe511de097e3f476ac6c91
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 27 12:06:36 2015 +0100

    fix build
    
    Change-Id: Ie620107c7ce3ca7a3235adc296daf964a78f0540

diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx
index c51ee4a..af9830c 100644
--- a/vcl/generic/glyphs/gcach_layout.cxx
+++ b/vcl/generic/glyphs/gcach_layout.cxx
@@ -446,7 +446,7 @@ bool HbLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs)
                 int32_t nCharPos = pHbGlyphInfos[i].cluster;
 
                 // tdf#89231 if it's just a missing non-breaking space, then use a normal space
-                if (!nGlyphIndex && (SalLayoutFlags::ForFallback & rArgs.mnFlags) && nCharPos >= 0 && rArgs.mpStr[nCharPos] == 0x202F)
+                if (!nGlyphIndex && (SAL_LAYOUT_FOR_FALLBACK & rArgs.mnFlags) && nCharPos >= 0 && rArgs.mpStr[nCharPos] == 0x202F)
                 {
                     nGlyphIndex = rFont.GetGlyphIndex(' ');
                 }
commit 3ac7eb1c3868329f05a7e53f11e8768ece3b65c9
Author: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Date:   Sun May 24 11:53:59 2015 +0200

    Fix tdf#87509 - default sdr attribute is special object.
    
    The drawinglayer attributes signal defaultness by object identity, not
    value equalness. That should fix a number of subtle cache and redraw
    problems.
    
    Change-Id: I049ffda228a48db71cef108571805c6e41e4b149
    (cherry picked from commit 551c204740a37c8dbc7acd35bc9fe683ade3fe80)
    Reviewed-on: https://gerrit.libreoffice.org/15922
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/drawinglayer/source/attribute/fillgradientattribute.cxx b/drawinglayer/source/attribute/fillgradientattribute.cxx
index 2689d07..497817e 100644
--- a/drawinglayer/source/attribute/fillgradientattribute.cxx
+++ b/drawinglayer/source/attribute/fillgradientattribute.cxx
@@ -142,6 +142,10 @@ namespace drawinglayer
 
         bool FillGradientAttribute::operator==(const FillGradientAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpFillGradientAttribute == mpFillGradientAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/fillgraphicattribute.cxx b/drawinglayer/source/attribute/fillgraphicattribute.cxx
index bd7b98e..89422be 100644
--- a/drawinglayer/source/attribute/fillgraphicattribute.cxx
+++ b/drawinglayer/source/attribute/fillgraphicattribute.cxx
@@ -120,6 +120,10 @@ namespace drawinglayer
 
         bool FillGraphicAttribute::operator==(const FillGraphicAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpFillGraphicAttribute == mpFillGraphicAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/fillhatchattribute.cxx b/drawinglayer/source/attribute/fillhatchattribute.cxx
index 9e3adc7..f54db08 100644
--- a/drawinglayer/source/attribute/fillhatchattribute.cxx
+++ b/drawinglayer/source/attribute/fillhatchattribute.cxx
@@ -131,6 +131,10 @@ namespace drawinglayer
 
         bool FillHatchAttribute::operator==(const FillHatchAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpFillHatchAttribute == mpFillHatchAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/lineattribute.cxx b/drawinglayer/source/attribute/lineattribute.cxx
index 6cf96e1..6d22e56 100644
--- a/drawinglayer/source/attribute/lineattribute.cxx
+++ b/drawinglayer/source/attribute/lineattribute.cxx
@@ -118,6 +118,10 @@ namespace drawinglayer
 
         bool LineAttribute::operator==(const LineAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpLineAttribute == mpLineAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/linestartendattribute.cxx b/drawinglayer/source/attribute/linestartendattribute.cxx
index f11e66f..f3a0822 100644
--- a/drawinglayer/source/attribute/linestartendattribute.cxx
+++ b/drawinglayer/source/attribute/linestartendattribute.cxx
@@ -110,6 +110,10 @@ namespace drawinglayer
 
         bool LineStartEndAttribute::operator==(const LineStartEndAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpLineStartEndAttribute == mpLineStartEndAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/sdrfillattribute.cxx b/drawinglayer/source/attribute/sdrfillattribute.cxx
index aacfa87..2ad96fe 100644
--- a/drawinglayer/source/attribute/sdrfillattribute.cxx
+++ b/drawinglayer/source/attribute/sdrfillattribute.cxx
@@ -126,6 +126,10 @@ namespace drawinglayer
 
         bool SdrFillAttribute::operator==(const SdrFillAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpSdrFillAttribute == mpSdrFillAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx b/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx
index 2e7f05e..a2f7576 100644
--- a/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx
+++ b/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx
@@ -161,6 +161,10 @@ namespace drawinglayer
 
         bool SdrFillGraphicAttribute::operator==(const SdrFillGraphicAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpSdrFillGraphicAttribute == mpSdrFillGraphicAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/sdrlightingattribute3d.cxx b/drawinglayer/source/attribute/sdrlightingattribute3d.cxx
index 9e3f809..43b4b94 100644
--- a/drawinglayer/source/attribute/sdrlightingattribute3d.cxx
+++ b/drawinglayer/source/attribute/sdrlightingattribute3d.cxx
@@ -102,6 +102,10 @@ namespace drawinglayer
 
         bool SdrLightingAttribute::operator==(const SdrLightingAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpSdrLightingAttribute == mpSdrLightingAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/sdrlineattribute.cxx b/drawinglayer/source/attribute/sdrlineattribute.cxx
index 5afcac0..f1842fa 100644
--- a/drawinglayer/source/attribute/sdrlineattribute.cxx
+++ b/drawinglayer/source/attribute/sdrlineattribute.cxx
@@ -142,6 +142,10 @@ namespace drawinglayer
 
         bool SdrLineAttribute::operator==(const SdrLineAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpSdrLineAttribute == mpSdrLineAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/sdrlinestartendattribute.cxx b/drawinglayer/source/attribute/sdrlinestartendattribute.cxx
index 20aa45d..b64f98c 100644
--- a/drawinglayer/source/attribute/sdrlinestartendattribute.cxx
+++ b/drawinglayer/source/attribute/sdrlinestartendattribute.cxx
@@ -144,6 +144,10 @@ namespace drawinglayer
 
         bool SdrLineStartEndAttribute::operator==(const SdrLineStartEndAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpSdrLineStartEndAttribute == mpSdrLineStartEndAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/sdrsceneattribute3d.cxx b/drawinglayer/source/attribute/sdrsceneattribute3d.cxx
index 5776d20..a873440 100644
--- a/drawinglayer/source/attribute/sdrsceneattribute3d.cxx
+++ b/drawinglayer/source/attribute/sdrsceneattribute3d.cxx
@@ -123,6 +123,10 @@ namespace drawinglayer
 
         bool SdrSceneAttribute::operator==(const SdrSceneAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpSdrSceneAttribute == mpSdrSceneAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/sdrshadowattribute.cxx b/drawinglayer/source/attribute/sdrshadowattribute.cxx
index 9630593..907423a 100644
--- a/drawinglayer/source/attribute/sdrshadowattribute.cxx
+++ b/drawinglayer/source/attribute/sdrshadowattribute.cxx
@@ -109,6 +109,10 @@ namespace drawinglayer
 
         bool SdrShadowAttribute::operator==(const SdrShadowAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return mpSdrShadowAttribute == rCandidate.mpSdrShadowAttribute;
         }
 
diff --git a/drawinglayer/source/attribute/strokeattribute.cxx b/drawinglayer/source/attribute/strokeattribute.cxx
index 08445b0..efbcc5d 100644
--- a/drawinglayer/source/attribute/strokeattribute.cxx
+++ b/drawinglayer/source/attribute/strokeattribute.cxx
@@ -110,6 +110,10 @@ namespace drawinglayer
 
         bool StrokeAttribute::operator==(const StrokeAttribute& rCandidate) const
         {
+            // tdf#87509 default attr is always != non-default attr, even with same values
+            if(rCandidate.isDefault() != isDefault())
+                return false;
+
             return rCandidate.mpStrokeAttribute == mpStrokeAttribute;
         }
 
commit 66980c60ae9d75620928b92f829dc69d455f3a54
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue May 26 15:45:30 2015 +0100

    Resolves: tdf#89231 if no font has 0x202F fallback to a normal space
    
    Change-Id: I2325c0b09ccf66ee15597251ad027b295de5502f
    (cherry picked from commit f76ecc3e9ce51b35fc18db55b808270079a3652b)
    Reviewed-on: https://gerrit.libreoffice.org/15912
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx
index b29627d..c51ee4a 100644
--- a/vcl/generic/glyphs/gcach_layout.cxx
+++ b/vcl/generic/glyphs/gcach_layout.cxx
@@ -445,6 +445,12 @@ bool HbLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs)
                 int32_t nGlyphIndex = pHbGlyphInfos[i].codepoint;
                 int32_t nCharPos = pHbGlyphInfos[i].cluster;
 
+                // tdf#89231 if it's just a missing non-breaking space, then use a normal space
+                if (!nGlyphIndex && (SalLayoutFlags::ForFallback & rArgs.mnFlags) && nCharPos >= 0 && rArgs.mpStr[nCharPos] == 0x202F)
+                {
+                    nGlyphIndex = rFont.GetGlyphIndex(' ');
+                }
+
                 // if needed request glyph fallback by updating LayoutArgs
                 if (!nGlyphIndex)
                 {
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index b04a318..068b2bb 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -2080,7 +2080,10 @@ SalLayout* OutputDevice::ImplGlyphFallbackLayout( SalLayout* pSalLayout, ImplLay
         if( nFallbackLevel < MAX_FALLBACK-1)
         {
             // ignore fallback font if it is the same as the original font
-            if( mpFontEntry->maFontSelData.mpFontData == aFontSelData.mpFontData )
+            // unless we are looking for a substituion for 0x202F, in which
+            // case we'll just use a normal space
+            if( mpFontEntry->maFontSelData.mpFontData == aFontSelData.mpFontData &&
+                aMissingCodes.indexOf(0x202F) == -1 )
             {
                 mpFontCache->Release( pFallbackFont );
                 continue;
commit c3f3f145a6f7ba9456dd6ce2ea27c4327980cea4
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Apr 21 17:00:57 2015 +0200

    tdf#90421 RTF export: ignore hyperlinks without an URL
    
    Commit fe444d1f74abe417962be0bcd3340f40f2446b58 (fdo#62536: sw: fix
    AutoCorrect bold/underline on existing AUTOFMT, 2013-06-20) adds an
    empty inet format hint on the text node during autocorrection, on export
    we can safely ignore that to provide well-formed output.
    
    (cherry picked from commit 7d42346ba77c9c4df241ea40eaf550993ca18783)
    
    Change-Id: Iafae941a13e29dcc7d8b4bade5ce94a486b59638
    Reviewed-on: https://gerrit.libreoffice.org/15906
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/sw/CppunitTest_sw_rtfexport.mk b/sw/CppunitTest_sw_rtfexport.mk
index 88f371b..b47c906 100644
--- a/sw/CppunitTest_sw_rtfexport.mk
+++ b/sw/CppunitTest_sw_rtfexport.mk
@@ -48,36 +48,7 @@ $(eval $(call gb_CppunitTest_use_api,sw_rtfexport,\
 $(eval $(call gb_CppunitTest_use_ure,sw_rtfexport))
 $(eval $(call gb_CppunitTest_use_vcl,sw_rtfexport))
 
-$(eval $(call gb_CppunitTest_use_components,sw_rtfexport,\
-	basic/util/sb \
-    comphelper/util/comphelp \
-    configmgr/source/configmgr \
-    embeddedobj/util/embobj \
-    filter/source/config/cache/filterconfig1 \
-    filter/source/storagefilterdetect/storagefd \
-    framework/util/fwk \
-    i18npool/util/i18npool \
-    linguistic/source/lng \
-    package/source/xstor/xstor \
-    package/util/package2 \
-    sax/source/expatwrap/expwrap \
-    sfx2/util/sfx \
-    starmath/util/sm \
-    svl/source/fsstor/fsstorage \
-    svtools/util/svt \
-    sw/util/msword \
-    sw/util/sw \
-    sw/util/swd \
-    toolkit/util/tk \
-    ucb/source/core/ucb1 \
-    ucb/source/ucp/file/ucpfile1 \
-    unotools/util/utl \
-    unoxml/source/service/unoxml \
-	uui/util/uui \
-    writerfilter/util/writerfilter \
-    xmloff/util/xo \
-	oox/util/oox \
-))
+$(eval $(call gb_CppunitTest_use_rdb,sw_rtfexport,services))
 
 $(eval $(call gb_CppunitTest_use_configuration,sw_rtfexport))
 
diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx b/sw/qa/extras/inc/swmodeltestbase.hxx
index 760afc2..4cd9919 100644
--- a/sw/qa/extras/inc/swmodeltestbase.hxx
+++ b/sw/qa/extras/inc/swmodeltestbase.hxx
@@ -264,6 +264,7 @@ protected:
         header();
         preTest(filename);
         load(mpTestDocumentPath, filename);
+        postLoad(filename);
         reload(mpFilter, filename);
         postTest(filename);
         verify();
@@ -313,6 +314,11 @@ protected:
     {
     }
 
+    /// Override this function if some special file-specific setup is needed during export test: after load, but before save.
+    virtual void postLoad(const char* /*pFilename*/)
+    {
+    }
+
     /**
      * Override this function if some special filename-specific teardown is needed
      */
diff --git a/sw/qa/extras/rtfexport/data/tdf90421.fodt b/sw/qa/extras/rtfexport/data/tdf90421.fodt
new file mode 100644
index 0000000..a0da4b8
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/tdf90421.fodt
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oas
 is:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:
 experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
+ <office:body>
+  <office:text>
+   <text:p text:style-name="P1">A <text:a xlink:type="simple" xlink:href="http://s/" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link">http://s/</text:a> B</text:p>
+  </office:text>
+ </office:body>
+</office:document>
diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx
index 2a13b4b..9bc57d5 100644
--- a/sw/qa/extras/rtfexport/rtfexport.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport.cxx
@@ -76,6 +76,16 @@ public:
         return false;
 
     }
+
+    virtual void postLoad(const char* pFilename) SAL_OVERRIDE
+    {
+        if (OString(pFilename) == "tdf90421.fodt")
+        {
+            // Change the hyperlink, so its URL is empty.
+            uno::Reference<beans::XPropertySet> xRun(getRun(getParagraph(1), 2), uno::UNO_QUERY);
+            xRun->setPropertyValue("HyperLinkURL", uno::makeAny(OUString()));
+        }
+    }
 };
 
 DECLARE_RTFEXPORT_TEST(testZoom, "zoom.rtf")
@@ -869,6 +879,19 @@ DECLARE_RTFEXPORT_TEST(testTdf80708, "tdf80708.rtf")
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(0), "TableColumnSeparators").getLength());
 }
 
+DECLARE_RTFEXPORT_TEST(testTdf90421, "tdf90421.fodt")
+{
+    if (mbExported)
+    {
+        SvMemoryStream aMemoryStream;
+        SvFileStream aStream(maTempFile.GetURL(), STREAM_READ);
+        aStream.ReadStream(aMemoryStream);
+        OString aData(static_cast<const char*>(aMemoryStream.GetData()), aMemoryStream.GetSize());
+        // This was some positive number, i.e. we exported a hyperlink with an empty URL.
+        CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1), aData.indexOf("HYPERLINK"));
+    }
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 7071e7b..da8f01f 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -437,52 +437,58 @@ void RtfAttributeOutput::EndRuby()
 
 bool RtfAttributeOutput::StartURL(const OUString& rUrl, const OUString& rTarget)
 {
-    m_aStyles.append('{');
-    m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FIELD);
-    m_aStyles.append('{');
-    m_aStyles.append(OOO_STRING_SVTOOLS_RTF_IGNORE);
-    m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FLDINST);
-    m_aStyles.append(" HYPERLINK ");
-
-    OUString sURL(rUrl);
-    if (!sURL.isEmpty())
+    m_sURL = rUrl;
+    // Ignore hyperlink without an URL.
+    if (!rUrl.isEmpty())
     {
+        m_aStyles.append('{');
+        m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FIELD);
+        m_aStyles.append('{');
+        m_aStyles.append(OOO_STRING_SVTOOLS_RTF_IGNORE);
+        m_aStyles.append(OOO_STRING_SVTOOLS_RTF_FLDINST);
+        m_aStyles.append(" HYPERLINK ");
+
+        OUString sURL(rUrl);
         m_aStyles.append("\"");
         m_aStyles.append(msfilter::rtfutil::OutString(sURL, m_rExport.eCurrentEncoding));
         m_aStyles.append("\" ");
-    }
 
-    if (!rTarget.isEmpty())
-    {
-        m_aStyles.append("\\\\t \"");
-        m_aStyles.append(msfilter::rtfutil::OutString(rTarget, m_rExport.eCurrentEncoding));
-        m_aStyles.append("\" ");
-    }
+        if (!rTarget.isEmpty())
+        {
+            m_aStyles.append("\\\\t \"");
+            m_aStyles.append(msfilter::rtfutil::OutString(rTarget, m_rExport.eCurrentEncoding));
+            m_aStyles.append("\" ");
+        }
 
-    m_aStyles.append("}");
-    m_aStyles.append("{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " {");
+        m_aStyles.append("}");
+        m_aStyles.append("{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " {");
+    }
     return true;
 }
 
 bool RtfAttributeOutput::EndURL(bool const isAtEndOfParagraph)
 {
-    // UGLY: usually EndRun is called earlier, but there is an extra
-    // call to OutAttrWithRange() when at the end of the paragraph,
-    // so in that special case the output needs to be appended to the
-    // new run's text instead of the previous run
-    if (isAtEndOfParagraph)
+    if (!m_sURL.isEmpty())
     {
-        // close the fldrslt group
-        m_aRunText->append("}}");
-        // close the field group
-        m_aRunText->append('}');
-    }
-    else
-    {
-        // close the fldrslt group
-        m_aRun->append("}}");
-        // close the field group
-        m_aRun->append('}');
+        // UGLY: usually EndRun is called earlier, but there is an extra
+        // call to OutAttrWithRange() when at the end of the paragraph,
+        // so in that special case the output needs to be appended to the
+        // new run's text instead of the previous run
+        if (isAtEndOfParagraph)
+        {
+            // close the fldrslt group
+            m_aRunText->append("}}");
+            // close the field group
+            m_aRunText->append('}');
+        }
+        else
+        {
+            // close the fldrslt group
+            m_aRun->append("}}");
+            // close the field group
+            m_aRun->append('}');
+        }
+        m_sURL.clear();
     }
     return true;
 }
diff --git a/sw/source/filter/ww8/rtfattributeoutput.hxx b/sw/source/filter/ww8/rtfattributeoutput.hxx
index a056849..72d07cc 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.hxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.hxx
@@ -596,6 +596,9 @@ private:
 
     boost::optional<css::drawing::FillStyle> m_oFillStyle;
 
+    /// If we're in the process of exporting a hyperlink, then its URL.
+    OUString m_sURL;
+
 public:
     RtfAttributeOutput(RtfExport& rExport);
 
commit b9966818449d7b60621337e354d30aa213687688
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Wed Apr 22 23:31:43 2015 +0200

    tdf#88056: Implement ODF import/export of page title field
    
    to/from loext namespace, since new tag's needed for the new field
    and it isn't approved by ODF-TC yet
    
    Change-Id: I70ceb4e16e1199663520dbdf3beae31423bc81d0
    Reviewed-on: https://gerrit.libreoffice.org/15485
    Tested-by: Michael Stahl <mstahl at redhat.com>
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/editeng/source/items/flditem.cxx b/editeng/source/items/flditem.cxx
index 57f1e2a..4e144ed 100644
--- a/editeng/source/items/flditem.cxx
+++ b/editeng/source/items/flditem.cxx
@@ -117,7 +117,7 @@ SvxFieldData* SvxFieldData::Create(const uno::Reference<text::XTextContent>& xTe
                 return new SvxPageField();
             case text::textfield::Type::PAGES:
                 return new SvxPagesField();
-            case text::textfield::Type::PAGE_TITLE:
+            case text::textfield::Type::PAGE_NAME:
                 return new SvxPageTitleField();
             case text::textfield::Type::DOCINFO_TITLE:
                 return new SvxFileField();
diff --git a/editeng/source/uno/unofield.cxx b/editeng/source/uno/unofield.cxx
index 7c7cae9..b507d3b 100644
--- a/editeng/source/uno/unofield.cxx
+++ b/editeng/source/uno/unofield.cxx
@@ -504,6 +504,9 @@ SvxFieldData* SvxUnoTextField::CreateFieldData() const throw()
     case text::textfield::Type::PRESENTATION_DATE_TIME:
         pData = new SvxDateTimeField();
         break;
+    case text::textfield::Type::PAGE_NAME:
+        pData = new SvxPageTitleField();
+        break;
     };
 
     return pData;
@@ -606,6 +609,8 @@ OUString SAL_CALL SvxUnoTextField::getPresentation( sal_Bool bShowCommand )
                 return OUString("Footer");
             case text::textfield::Type::PRESENTATION_DATE_TIME:
                 return OUString("DateTime");
+            case text::textfield::Type::PAGE_NAME:
+                return OUString("PageName");
             default:
                 return OUString("Unknown");
         }
@@ -853,6 +858,10 @@ uno::Sequence< OUString > SAL_CALL SvxUnoTextField::getSupportedServiceNames()
             pServices[2] = "com.sun.star.presentation.TextField.DateTime";
             pServices[3] = "com.sun.star.presentation.textfield.DateTime";
         break;
+        case text::textfield::Type::PAGE_NAME:
+            pServices[2] = "com.sun.star.text.TextField.PageName";
+            pServices[3] = "com.sun.star.text.textfield.PageName";
+        break;
         default:
             aSeq.realloc(0);
     }
diff --git a/include/editeng/flditem.hxx b/include/editeng/flditem.hxx
index e35e503..554a2b1 100644
--- a/include/editeng/flditem.hxx
+++ b/include/editeng/flditem.hxx
@@ -194,7 +194,7 @@ public:
 class EDITENG_DLLPUBLIC SvxPageTitleField : public SvxFieldData
 {
 public:
-    SV_DECL_PERSIST1( SvxPageTitleField, SvxFieldData, com::sun::star::text::textfield::Type::PAGE_TITLE )
+    SV_DECL_PERSIST1( SvxPageTitleField, SvxFieldData, com::sun::star::text::textfield::Type::PAGE_NAME )
     SvxPageTitleField();
 
     virtual SvxFieldData*   Clone() const SAL_OVERRIDE;
diff --git a/include/xmloff/txtimp.hxx b/include/xmloff/txtimp.hxx
index 592c834..96df6f1 100644
--- a/include/xmloff/txtimp.hxx
+++ b/include/xmloff/txtimp.hxx
@@ -210,6 +210,7 @@ enum XMLTextPElemTokens
     XML_TOK_TEXT_SEQUENCE_REF,
     XML_TOK_TEXT_NOTE_REF,
     XML_TOK_TEXT_SHEET_NAME,
+    XML_TOK_TEXT_PAGE_NAME,
     XML_TOK_TEXT_BIBLIOGRAPHY_MARK,
     XML_TOK_TEXT_ANNOTATION,
     XML_TOK_TEXT_ANNOTATION_END,
diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx
index 9639326..21b584d 100644
--- a/include/xmloff/xmltoken.hxx
+++ b/include/xmloff/xmltoken.hxx
@@ -1368,6 +1368,7 @@ namespace xmloff { namespace token {
         XML_PAGE_HEIGHT,
         XML_PAGE_MASTER,
         XML_PAGE_MASTER_NAME,
+        XML_PAGE_NAME,
         XML_PAGE_NUMBER,
         XML_PAGE_START_MARGIN,
         XML_PAGE_STYLE_NAME,
diff --git a/offapi/com/sun/star/text/textfield/Type.idl b/offapi/com/sun/star/text/textfield/Type.idl
index 42fcb8b..d2fa81f 100644
--- a/offapi/com/sun/star/text/textfield/Type.idl
+++ b/offapi/com/sun/star/text/textfield/Type.idl
@@ -42,7 +42,7 @@ constants Type
     const long PRESENTATION_HEADER    = 11;
     const long PRESENTATION_FOOTER    = 12;
     const long PRESENTATION_DATE_TIME = 13;
-    const long PAGE_TITLE    = 14;
+    const long PAGE_NAME    = 14;
 };
 
 }; }; }; }; };
diff --git a/sd/source/ui/app/sdmod2.cxx b/sd/source/ui/app/sdmod2.cxx
index dd5c666..8f2d3a2 100644
--- a/sd/source/ui/app/sdmod2.cxx
+++ b/sd/source/ui/app/sdmod2.cxx
@@ -268,6 +268,12 @@ IMPL_LINK(SdModule, CalcFieldValueHdl, EditFieldInfo*, pInfo)
             {
                 aRepresentation = pPage->GetName();
             }
+            else
+            {
+                aRepresentation = ( ( pDoc->GetDocumentType() == DOCUMENT_TYPE_IMPRESS )
+                                    ? SdResId(STR_FIELD_PLACEHOLDER_SLIDENAME).toString()
+                                    : SdResId(STR_FIELD_PLACEHOLDER_PAGENAME).toString() );
+            }
 
             pInfo->SetRepresentation( aRepresentation );
         }
diff --git a/sd/source/ui/app/strings.src b/sd/source/ui/app/strings.src
index 06b0fcf..c46b5ef 100644
--- a/sd/source/ui/app/strings.src
+++ b/sd/source/ui/app/strings.src
@@ -1066,6 +1066,16 @@ String STR_FIELD_PLACEHOLDER_COUNT
     Text [ en-US ] = "<count>" ;
 };
 
+String STR_FIELD_PLACEHOLDER_SLIDENAME
+{
+    Text [ en-US ] = "<slide-name>" ;
+};
+
+String STR_FIELD_PLACEHOLDER_PAGENAME
+{
+    Text [ en-US ] = "<page-name>" ;
+};
+
 String STR_PLACEHOLDER_DESCRIPTION_NOTES
 {
     Text [ en-US ] = "Notes Area";
diff --git a/sd/source/ui/inc/strings.hrc b/sd/source/ui/inc/strings.hrc
index 1fa282c..2c4c79e 100644
--- a/sd/source/ui/inc/strings.hrc
+++ b/sd/source/ui/inc/strings.hrc
@@ -367,6 +367,8 @@
 
 #define STR_UNDO_HANGULHANJACONVERSION                  (RID_APP_START+696)
 #define STR_FIELD_PLACEHOLDER_COUNT             (RID_APP_START+697)
+#define STR_FIELD_PLACEHOLDER_SLIDENAME         (RID_APP_START+698)
+#define STR_FIELD_PLACEHOLDER_PAGENAME          (RID_APP_START+699)
 
 #define STR_LEFT_PANE_DRAW_TITLE                        (RID_APP_START+700)
 #define STR_LEFT_PANE_IMPRESS_TITLE                     (RID_APP_START+701)
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index b461f87..2d72378 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -929,6 +929,12 @@ css::uno::Reference<css::uno::XInterface> SdXImpressDocument::create(
         return (::cppu::OWeakObject * )new SvxUnoTextField( text::textfield::Type::PRESENTATION_DATE_TIME );
     }
 
+    if( aServiceSpecifier == "com.sun.star.text.TextField.PageName" ||
+        aServiceSpecifier == "com.sun.star.text.textfield.PageName" )
+    {
+        return (::cppu::OWeakObject * )new SvxUnoTextField( text::textfield::Type::PAGE_NAME );
+    }
+
     if( aServiceSpecifier == "com.sun.star.xml.NamespaceMap" )
     {
         static sal_uInt16 aWhichIds[] = { SDRATTR_XMLATTRIBUTES, EE_CHAR_XMLATTRIBS, EE_PARA_XMLATTRIBS, 0 };
diff --git a/xmloff/inc/txtflde.hxx b/xmloff/inc/txtflde.hxx
index 5061477..79014b6 100644
--- a/xmloff/inc/txtflde.hxx
+++ b/xmloff/inc/txtflde.hxx
@@ -57,6 +57,7 @@ enum FieldIdEnum {
     FIELD_ID_AUTHOR,
     FIELD_ID_DATE,          // current date
     FIELD_ID_TIME,          // current time (+date)
+    FIELD_ID_PAGENAME,      // page/slide name
     FIELD_ID_PAGENUMBER,    // page number
     FIELD_ID_PAGESTRING,    // page contination string (page number string)
     FIELD_ID_REFPAGE_SET,   // set reference page
diff --git a/xmloff/inc/txtfldi.hxx b/xmloff/inc/txtfldi.hxx
index 4023aac..42a3263 100644
--- a/xmloff/inc/txtfldi.hxx
+++ b/xmloff/inc/txtfldi.hxx
@@ -1131,6 +1131,28 @@ protected:
         ::com::sun::star::beans::XPropertySet> & xPropertySet) SAL_OVERRIDE;
 };
 
+/** import page|slide name fields (<text:page-name>) */
+class XMLPageNameFieldImportContext : public XMLTextFieldImportContext
+{
+public:
+    TYPEINFO_OVERRIDE();
+
+    XMLPageNameFieldImportContext(
+        SvXMLImport& rImport,                   /// XML Import
+        XMLTextImportHelper& rHlp,              /// Text import helper
+        sal_uInt16 nPrfx,                       /// namespace prefix
+        const OUString& sLocalName);     /// element name w/o prefix
+
+    /// process attribute values
+    virtual void ProcessAttribute( sal_uInt16 nAttrToken,
+                                   const OUString& sAttrValue ) SAL_OVERRIDE;
+
+    /// prepare XTextField for insertion into document
+    virtual void PrepareField(
+        const ::com::sun::star::uno::Reference<
+        ::com::sun::star::beans::XPropertySet> & xPropertySet) SAL_OVERRIDE;
+};
+
 /** import hyperlinks as URL fields (Calc, Impress, Draw) (<office:a>) */
 class XMLUrlFieldImportContext : public XMLTextFieldImportContext
 {
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 323e073..e15cf96 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -1373,6 +1373,7 @@ namespace xmloff { namespace token {
         TOKEN( "page-height",                     XML_PAGE_HEIGHT ),
         TOKEN( "page-master",                     XML_PAGE_MASTER ),
         TOKEN( "page-master-name",                XML_PAGE_MASTER_NAME ),
+        TOKEN( "page-name",                       XML_PAGE_NAME ),
         TOKEN( "page-number",                     XML_PAGE_NUMBER ),
         TOKEN( "page-start-margin",               XML_PAGE_START_MARGIN ),
         TOKEN( "page-style-name",                 XML_PAGE_STYLE_NAME ),
diff --git a/xmloff/source/text/txtflde.cxx b/xmloff/source/text/txtflde.cxx
index f1f8442..7c20b5c 100644
--- a/xmloff/source/text/txtflde.cxx
+++ b/xmloff/source/text/txtflde.cxx
@@ -141,6 +141,7 @@ static sal_Char const FIELD_SERVICE_OBJECT_COUNT[] = "EmbeddedObjectCount";
 static sal_Char const FIELD_SERVICE_REFERENCE_PAGE_SET[] = "ReferencePageSet";
 static sal_Char const FIELD_SERVICE_REFERENCE_PAGE_GET[] = "ReferencePageGet";
 static sal_Char const FIELD_SERVICE_SHEET_NAME[] = "SheetName";
+static sal_Char const FIELD_SERVICE_PAGE_NAME[] = "PageName";
 static sal_Char const FIELD_SERVICE_MACRO[] = "Macro";
 static sal_Char const FIELD_SERVICE_GET_REFERENCE[] = "GetReference";
 static sal_Char const FIELD_SERVICE_DDE[] = "DDE";
@@ -234,6 +235,7 @@ SvXMLEnumStringMapEntry const aFieldServiceNameMapping[] =
 
     // non-writer fields
     ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_SHEET_NAME, FIELD_ID_SHEET_NAME ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_PAGE_NAME, FIELD_ID_PAGENAME ),
     ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_URL, FIELD_ID_URL ),
     ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_MEASURE, FIELD_ID_MEASURE ),
 
@@ -611,6 +613,7 @@ enum FieldIdEnum XMLTextFieldExport::MapFieldName(
         case FIELD_ID_FILE_NAME:
         case FIELD_ID_META:
         case FIELD_ID_SHEET_NAME:
+        case FIELD_ID_PAGENAME:
         case FIELD_ID_MEASURE:
         case FIELD_ID_URL:
         case FIELD_ID_TABLE_FORMULA:
@@ -718,6 +721,7 @@ bool XMLTextFieldExport::IsStringField(
     case FIELD_ID_TEXT_INPUT:
     case FIELD_ID_SENDER:
     case FIELD_ID_AUTHOR:
+    case FIELD_ID_PAGENAME:
     case FIELD_ID_PAGESTRING:
     case FIELD_ID_SHEET_NAME:
     case FIELD_ID_MEASURE:
@@ -932,6 +936,7 @@ void XMLTextFieldExport::ExportFieldAutoStyle(
     case FIELD_ID_DOCINFO_REVISION:
     case FIELD_ID_DOCINFO_SAVE_AUTHOR:
     case FIELD_ID_SEQUENCE:
+    case FIELD_ID_PAGENAME:
     case FIELD_ID_PAGENUMBER:
     case FIELD_ID_PAGESTRING:
     case FIELD_ID_AUTHOR:
@@ -1669,6 +1674,16 @@ void XMLTextFieldExport::ExportFieldHelper(
         ExportElement(XML_SHEET_NAME, sPresentation);
         break;
 
+    case FIELD_ID_PAGENAME:
+    {
+        if (SvtSaveOptions().GetODFDefaultVersion() > SvtSaveOptions::ODFVER_012)
+        {
+            SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_LO_EXT, XML_PAGE_NAME, false, false );
+            GetExport().Characters( sPresentation );
+        }
+        break;
+    }
+
     case FIELD_ID_URL:
     {
         // this field is a special case because it gets mapped onto a
@@ -1848,6 +1863,7 @@ void XMLTextFieldExport::ExportFieldHelper(
     }
     break;
 
+
     case FIELD_ID_UNKNOWN:
     default:
         OSL_FAIL("unknown field type encountered!");
diff --git a/xmloff/source/text/txtfldi.cxx b/xmloff/source/text/txtfldi.cxx
index 6b7c9ad..274ff52 100644
--- a/xmloff/source/text/txtfldi.cxx
+++ b/xmloff/source/text/txtfldi.cxx
@@ -129,6 +129,7 @@ const sal_Char sAPI_macro[]                     = "Macro";
 const sal_Char sAPI_dde[]                       = "DDE";
 const sal_Char sAPI_get_reference[]             = "GetReference";
 const sal_Char sAPI_sheet_name[]                = "SheetName";
+const sal_Char sAPI_pagename[]                  = "PageName";
 const sal_Char sAPI_url[]                       = "URL";
 const sal_Char sAPI_bibliography[]              = "Bibliography";
 const sal_Char sAPI_annotation[]                = "Annotation";
@@ -538,6 +539,11 @@ XMLTextFieldImportContext::CreateTextFieldImportContext(
                                                       nPrefix, rName );
             break;
 
+        case XML_TOK_TEXT_PAGE_NAME:
+            pContext = new XMLPageNameFieldImportContext( rImport, rHlp,
+                                                          nPrefix, rName );
+            break;
+
         case XML_TOK_TEXT_BIBLIOGRAPHY_MARK:
             pContext = new XMLBibliographyFieldImportContext( rImport, rHlp,
                                                               nPrefix, rName );
@@ -3267,6 +3273,31 @@ void XMLSheetNameImportContext::PrepareField(
     // no attributes -> nothing to be done
 }
 
+/** import page|slide name fields (<text:page-name>) */
+TYPEINIT1( XMLPageNameFieldImportContext, XMLTextFieldImportContext );
+
+XMLPageNameFieldImportContext::XMLPageNameFieldImportContext(
+        SvXMLImport& rImport,                   /// XML Import
+        XMLTextImportHelper& rHlp,              /// Text import helper
+        sal_uInt16 nPrfx,                       /// namespace prefix
+        const OUString& sLocalName)      /// element name w/o prefix
+: XMLTextFieldImportContext(rImport, rHlp, sAPI_pagename, nPrfx, sLocalName )
+{
+    bValid = true;
+}
+
+/// process attribute values
+void XMLPageNameFieldImportContext::ProcessAttribute( sal_uInt16,
+                                   const OUString& )
+{
+}
+
+/// prepare XTextField for insertion into document
+void XMLPageNameFieldImportContext::PrepareField(
+        const ::com::sun::star::uno::Reference<
+        ::com::sun::star::beans::XPropertySet> &)
+{
+}
 
 
 // URL fields (Calc, Impress, Draw)
diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx
index 6c74084..2ea64ce 100644
--- a/xmloff/source/text/txtimp.cxx
+++ b/xmloff/source/text/txtimp.cxx
@@ -269,6 +269,8 @@ static const SvXMLTokenMapEntry aTextPElemTokenMap[] =
 
     // draw fields
     { XML_NAMESPACE_TEXT, XML_MEASURE,  XML_TOK_TEXT_MEASURE },
+    { XML_NAMESPACE_LO_EXT, XML_PAGE_NAME, XML_TOK_TEXT_PAGE_NAME },
+    { XML_NAMESPACE_TEXT, XML_PAGE_NAME, XML_TOK_TEXT_PAGE_NAME },
 
     // RDF metadata
     { XML_NAMESPACE_TEXT, XML_META,         XML_TOK_TEXT_META },
commit cd19c5b1c6dfb5ef9c9970c2a4b6407cb52cff87
Author: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Date:   Tue May 26 23:18:49 2015 +0200

    update credits
    
    Change-Id: I5faeceb0d0d3ed16d9c6e4474720c24a8dd95f85

diff --git a/readlicense_oo/license/CREDITS.fodt b/readlicense_oo/license/CREDITS.fodt
index c89e96a..0e53f0e 100644
--- a/readlicense_oo/license/CREDITS.fodt
+++ b/readlicense_oo/license/CREDITS.fodt
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oas
 is:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:
 experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/4.4.2.2$Linux_X86_64 LibreOffice_project/c4c7d32d0d49397cad38d62472b0bc8acff48dd6</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="3166" meta:word-count="11230" meta:character-count="81181" meta:non-whitespace-character-count="71062"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
+ <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/4.4.3.2$Linux_X86_64 LibreOffice_project/88805f81e9fe61362df02b9941de8e38a9b5fd16</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="3192" meta:word-count="11299" meta:character-count="81656" meta:non-whitespace-character-count="71471"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
  <office:settings>
   <config:config-item-set config:name="ooo:view-settings">
-   <config:config-item config:name="ViewAreaTop" config:type="long">660</config:config-item>
+   <config:config-item config:name="ViewAreaTop" config:type="long">739</config:config-item>
    <config:config-item config:name="ViewAreaLeft" config:type="long">501</config:config-item>
-   <config:config-item config:name="ViewAreaWidth" config:type="long">23629</config:config-item>
-   <config:config-item config:name="ViewAreaHeight" config:type="long">15215</config:config-item>
+   <config:config-item config:name="ViewAreaWidth" config:type="long">30058</config:config-item>
+   <config:config-item config:name="ViewAreaHeight" config:type="long">9077</config:config-item>
    <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
    <config:config-item config:name="InBrowseMode" config:type="boolean">true</config:config-item>
    <config:config-item-map-indexed config:name="Views">
@@ -16,9 +16,9 @@
      <config:config-item config:name="ViewLeft" config:type="long">3676</config:config-item>
      <config:config-item config:name="ViewTop" config:type="long">3471</config:config-item>
      <config:config-item config:name="VisibleLeft" config:type="long">501</config:config-item>
-     <config:config-item config:name="VisibleTop" config:type="long">660</config:config-item>
-     <config:config-item config:name="VisibleRight" config:type="long">24128</config:config-item>
-     <config:config-item config:name="VisibleBottom" config:type="long">15873</config:config-item>
+     <config:config-item config:name="VisibleTop" config:type="long">739</config:config-item>
+     <config:config-item config:name="VisibleRight" config:type="long">30558</config:config-item>
+     <config:config-item config:name="VisibleBottom" config:type="long">9814</config:config-item>
      <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
@@ -36,6 +36,7 @@
    <config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item>
    <config:config-item config:name="PrintSingleJobs" config:type="boolean">false</config:config-item>
    <config:config-item config:name="PrintEmptyPages" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="SubtractFlysAnchoredAtFlys" config:type="boolean">true</config:config-item>
    <config:config-item config:name="ApplyParagraphMarkFormatToNumbering" config:type="boolean">false</config:config-item>
    <config:config-item config:name="TabOverMargin" config:type="boolean">false</config:config-item>
    <config:config-item config:name="EmbedSystemFonts" config:type="boolean">false</config:config-item>
@@ -82,7 +83,7 @@
    <config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
    <config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item>
    <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
-   <config:config-item config:name="Rsid" config:type="int">2684130</config:config-item>
+   <config:config-item config:name="Rsid" config:type="int">2811305</config:config-item>
    <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
    <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
    <config:config-item config:name="AlignTabStopPosition" config:type="boolean">true</config:config-item>
@@ -131,8 +132,8 @@
   <style:font-face style:name="HG Mincho Light J" svg:font-family="'HG Mincho Light J'" style:font-pitch="variable"/>
   <style:font-face style:name="Thorndale AMT" svg:font-family="'Thorndale AMT'" style:font-family-generic="roman" style:font-pitch="variable"/>
   <style:font-face style:name="Albany" svg:font-family="Albany" style:font-family-generic="swiss" style:font-pitch="variable"/>
-  <style:font-face style:name="Liberation Sans1" svg:font-family="'Liberation Sans'" style:font-adornments="Bold" style:font-family-generic="swiss" style:font-pitch="variable"/>
-  <style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-adornments="Regular" style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-adornments="Bold" style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Liberation Sans1" svg:font-family="'Liberation Sans'" style:font-adornments="Regular" style:font-family-generic="swiss" style:font-pitch="variable"/>
   <style:font-face style:name="Mangal" svg:font-family="Mangal" style:font-family-generic="system" style:font-pitch="variable"/>
   <style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
  </office:font-face-decls>
@@ -163,7 +164,7 @@
   </style:style>
   <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
    <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.499cm" loext:contextual-spacing="false"/>
-   <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" fo:language="en" fo:country="US"/>
+   <style:text-properties style:font-name="Liberation Sans1" fo:font-family="'Liberation Sans'" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" fo:language="en" fo:country="US"/>
   </style:style>
   <style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
    <style:text-properties style:font-size-asian="12pt" style:font-name-complex="Mangal1" style:font-family-complex="Mangal"/>
@@ -201,7 +202,7 @@
    </style:paragraph-properties>
   </style:style>
   <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="text">
-   <style:text-properties style:font-name="Liberation Sans1" fo:font-family="'Liberation Sans'" style:font-style-name="Bold" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="24pt" fo:language="en" fo:country="US" fo:font-weight="bold" style:font-name-asian="HG Mincho Light J" style:font-family-asian="'HG Mincho Light J'" style:font-pitch-asian="variable" style:font-size-asian="24pt" style:font-weight-asian="bold" style:font-name-complex="Arial Unicode MS" style:font-family-complex="'Arial Unicode MS'" style:font-pitch-complex="variable" style:font-size-complex="24pt" style:font-weight-complex="bold"/>
+   <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-style-name="Bold" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="24pt" fo:language="en" fo:country="US" fo:font-weight="bold" style:font-name-asian="HG Mincho Light J" style:font-family-asian="'HG Mincho Light J'" style:font-pitch-asian="variable" style:font-size-asian="24pt" style:font-weight-asian="bold" style:font-name-complex="Arial Unicode MS" style:font-family-complex="'Arial Unicode MS'" style:font-pitch-complex="variable" style:font-size-complex="24pt" style:font-weight-complex="bold"/>
   </style:style>
   <style:style style:name="Quotations" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
    <style:paragraph-properties fo:margin-left="1cm" fo:margin-right="1cm" fo:margin-top="0cm" fo:margin-bottom="0.499cm" loext:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
@@ -210,14 +211,14 @@
    <style:text-properties fo:font-variant="small-caps"/>
   </style:style>
   <style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="3" style:list-style-name="" style:class="text">
-   <style:text-properties style:font-name="Liberation Sans1" fo:font-family="'Liberation Sans'" style:font-style-name="Bold" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="14pt" fo:language="en" fo:country="US" fo:font-weight="bold" style:font-name-asian="SimSun" style:font-family-asian="SimSun" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
+   <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-style-name="Bold" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="14pt" fo:language="en" fo:country="US" fo:font-weight="bold" style:font-name-asian="SimSun" style:font-family-asian="SimSun" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
   </style:style>
   <style:style style:name="Table_20_Heading" style:display-name="Table Heading" style:family="paragraph" style:parent-style-name="Table_20_Contents" style:class="extra">
    <style:paragraph-properties fo:text-align="center" style:justify-single-word="false" text:number-lines="false" text:line-number="0"/>
    <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
   </style:style>
   <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="2" style:list-style-name="" style:class="text">
-   <style:text-properties style:font-name="Liberation Sans1" fo:font-family="'Liberation Sans'" style:font-style-name="Bold" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="18pt" fo:language="en" fo:country="US" fo:font-weight="bold" style:font-name-asian="SimSun" style:font-family-asian="SimSun" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-weight-asian="bold" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-weight-complex="bold"/>
+   <style:text-properties style:font-name="Liberation Sans" fo:font-family="'Liberation Sans'" style:font-style-name="Bold" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="18pt" fo:language="en" fo:country="US" fo:font-weight="bold" style:font-name-asian="SimSun" style:font-family-asian="SimSun" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-weight-asian="bold" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-weight-complex="bold"/>
   </style:style>
   <style:style style:name="Frame_20_contents" style:display-name="Frame contents" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="extra"/>
   <style:style style:name="Endnote_20_Symbol" style:display-name="Endnote Symbol" style:family="text"/>
@@ -301,23 +302,26 @@
  </office:styles>
  <office:automatic-styles>
   <style:style style:name="Tabelle1" style:family="table">
-   <style:table-properties style:width="23.206cm" table:align="left"/>
+   <style:table-properties style:width="24.64cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle1.A" style:family="table-column">
-   <style:table-column-properties style:column-width="6.288cm"/>
+   <style:table-column-properties style:column-width="5.902cm"/>
   </style:style>
   <style:style style:name="Tabelle1.B" style:family="table-column">
-   <style:table-column-properties style:column-width="5.48cm"/>
+   <style:table-column-properties style:column-width="5.373cm"/>
   </style:style>
   <style:style style:name="Tabelle1.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.112cm"/>
+   <style:table-column-properties style:column-width="6.563cm"/>
   </style:style>
   <style:style style:name="Tabelle1.D" style:family="table-column">
-   <style:table-column-properties style:column-width="5.325cm"/>
+   <style:table-column-properties style:column-width="6.802cm"/>
   </style:style>
   <style:style style:name="Tabelle1.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
   </style:style>
+  <style:style style:name="Tabelle1.D231" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
+  </style:style>
   <style:style style:name="Tabelle2" style:family="table">
    <style:table-properties style:width="16.702cm" table:align="left"/>
   </style:style>
@@ -379,23 +383,26 @@
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="Tabelle5" style:family="table">
-   <style:table-properties style:width="23.206cm" table:align="left"/>
+   <style:table-properties style:width="29.635cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle5.A" style:family="table-column">
-   <style:table-column-properties style:column-width="5.413cm"/>
+   <style:table-column-properties style:column-width="6.189cm"/>
   </style:style>
   <style:style style:name="Tabelle5.B" style:family="table-column">
-   <style:table-column-properties style:column-width="4.865cm"/>
+   <style:table-column-properties style:column-width="10.552cm"/>
   </style:style>
   <style:style style:name="Tabelle5.C" style:family="table-column">
-   <style:table-column-properties style:column-width="4.87cm"/>
+   <style:table-column-properties style:column-width="6.541cm"/>
   </style:style>
   <style:style style:name="Tabelle5.D" style:family="table-column">
-   <style:table-column-properties style:column-width="8.057cm"/>
+   <style:table-column-properties style:column-width="6.354cm"/>
   </style:style>
   <style:style style:name="Tabelle5.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
   </style:style>
+  <style:style style:name="Tabelle5.D523" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
+  </style:style>
   <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Table_20_Contents">
    <style:text-properties fo:font-size="2pt" style:font-size-asian="2pt" style:font-size-complex="2pt"/>
   </style:style>
@@ -717,8 +724,7 @@
    <style:footer-style/>
   </style:page-layout>
   <style:page-layout style:name="pm3">
-   <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="2cm" fo:margin-right="1cm" fo:background-color="#ffffff" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
-    <style:background-image/>
+   <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="2cm" fo:margin-right="1cm" fo:background-color="#ffffff" style:writing-mode="lr-tb" draw:fill="solid" draw:fill-color="#ffffff" draw:opacity="100%" style:footnote-max-height="0cm">
     <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
    </style:page-layout-properties>
    <style:header-style/>
@@ -1002,7 +1008,7 @@
        </office:binary-data>
       </draw:image>
      </draw:frame>Credits</text:p>
-    <text:p text:style-name="Text_20_body">1055 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2015-04-28 21:51:10.</text:p>
+    <text:p text:style-name="Text_20_body">1058 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2015-05-26 10:47:30.</text:p>
     <text:p text:style-name="Text_20_body"><text:span text:style-name="T1">*</text:span> marks developers whose first contributions happened after 2010-09-28.</text:p>
     <text:h text:style-name="Heading_20_2" text:outline-level="2">Developers committing code since 2010-09-28</text:h>
     <table:table table:name="Tabelle1" table:style-name="Tabelle1">
@@ -1029,18 +1035,18 @@
        <text:p text:style-name="Table_20_Contents">Vladimir Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 2000-12-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 17009<text:line-break/>Joined: 2000-10-10</text:p>
+       <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 17219<text:line-break/>Joined: 2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ivo Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 2002-09-09</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 8880<text:line-break/>Joined: 2000-10-04</text:p>
+       <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 9142<text:line-break/>Joined: 2000-10-04</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 6862<text:line-break/>Joined: 2010-03-23</text:p>
+       <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 6907<text:line-break/>Joined: 2010-03-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Kohei Yoshida<text:line-break/>Commits: 5360<text:line-break/>Joined: 2009-06-19</text:p>
@@ -1049,32 +1055,32 @@
        <text:p text:style-name="Table_20_Contents">Frank Schoenheit [fs]<text:line-break/>Commits: 5008<text:line-break/>Joined: 2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 4477<text:line-break/>Joined: 2008-06-16</text:p>
+       <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 4564<text:line-break/>Joined: 2008-06-16</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 4356<text:line-break/>Joined: 2010-07-29</text:p>
+       <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 4453<text:line-break/>Joined: 2010-07-29</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 3684<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 3842<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Mohrhard<text:line-break/>Commits: 3490<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-17</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Mohrhard<text:line-break/>Commits: 3593<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-17</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Hans-Joachim Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 2000-09-19</text:p>
+       <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3038<text:line-break/>Joined: 2009-11-12</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3001<text:line-break/>Joined: 2009-11-12</text:p>
+       <text:p text:style-name="Table_20_Contents">Hans-Joachim Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ocke Janssen [oj]<text:line-break/>Commits: 2850<text:line-break/>Joined: 2000-09-20</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 2625<text:line-break/>Joined: 2000-10-11</text:p>
+       <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 2643<text:line-break/>Joined: 2000-10-11</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Mathias Bauer<text:line-break/>Commits: 2580<text:line-break/>Joined: 2000-09-20</text:p>
@@ -1088,32 +1094,32 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Thomas Arnhold<text:line-break/>Commits: 2176<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-16</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Norbert Thiebaud<text:line-break/>Commits: 2090<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2112<text:line-break/>Joined: 2009-06-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Philipp Lohmann [pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Norbert Thiebaud<text:line-break/>Commits: 2097<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2058<text:line-break/>Joined: 2009-06-23</text:p>
+       <text:p text:style-name="Table_20_Contents">Philipp Lohmann [pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 1837<text:line-break/>Joined: 2009-10-14</text:p>
+       <text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 1869<text:line-break/>Joined: 2009-10-14</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Christian Lippka<text:line-break/>Commits: 1805<text:line-break/>Joined: 2000-09-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 1691<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 1713<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matúš Kukan<text:line-break/>Commits: 1634<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matúš Kukan<text:line-break/>Commits: 1636<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 1558<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 1575<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Luboš Luňák<text:line-break/>Commits: 1521<text:line-break/>Joined: 2010-09-21</text:p>
@@ -1133,18 +1139,18 @@
        <text:p text:style-name="Table_20_Contents">Niklas Nebel<text:line-break/>Commits: 1296<text:line-break/>Joined: 2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Daniel Rentz [dr]<text:line-break/>Commits: 1206<text:line-break/>Joined: 2000-09-28</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 1282<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Armin Le Grand<text:line-break/>Commits: 1187<text:line-break/>Joined: 2000-09-25</text:p>
+       <text:p text:style-name="Table_20_Contents">Daniel Rentz [dr]<text:line-break/>Commits: 1206<text:line-break/>Joined: 2000-09-28</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Thorsten Behrens<text:line-break/>Commits: 1100<text:line-break/>Joined: 2001-04-25</text:p>
+       <text:p text:style-name="Table_20_Contents">Armin Le Grand<text:line-break/>Commits: 1187<text:line-break/>Joined: 2000-09-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 1075<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Thorsten Behrens<text:line-break/>Commits: 1116<text:line-break/>Joined: 2001-04-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Petr Mladek<text:line-break/>Commits: 958<text:line-break/>Joined: 2006-10-03</text:p>
@@ -1155,7 +1161,7 @@
        <text:p text:style-name="Table_20_Contents">Noel Power<text:line-break/>Commits: 950<text:line-break/>Joined: 2002-09-24</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lionel Elie Mamane<text:line-break/>Commits: 916<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-15</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lionel Elie Mamane<text:line-break/>Commits: 917<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-15</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Kai Ahrens<text:line-break/>Commits: 909<text:line-break/>Joined: 2000-09-21</text:p>
@@ -1166,13 +1172,13 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Cédric Bosdonnat<text:line-break/>Commits: 882<text:line-break/>Joined: 2009-11-16</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matteo Casalin<text:line-break/>Commits: 894<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 875<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-08</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 890<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-08</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matteo Casalin<text:line-break/>Commits: 870<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Cédric Bosdonnat<text:line-break/>Commits: 882<text:line-break/>Joined: 2009-11-16</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Malte Timmermann [mt]<text:line-break/>Commits: 864<text:line-break/>Joined: 2000-10-10</text:p>
@@ -1208,7 +1214,10 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zolnai Tamás<text:line-break/>Commits: 715<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zolnai Tamás<text:line-break/>Commits: 716<text:line-break/>Joined: <text:span text:style-name="T2">2012-08-06</text:span></text:p>
+      </table:table-cell>
+      <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrzej Hunt<text:line-break/>Commits: 693<text:line-break/>Joined: <text:span text:style-name="T2">2012-03-27</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Joerg Skottke [jsk]<text:line-break/>Commits: 678<text:line-break/>Joined: 2008-06-17</text:p>
@@ -1216,11 +1225,11 @@
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joseph Powers<text:line-break/>Commits: 658<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-15</text:span></text:p>
       </table:table-cell>
+     </table:table-row>
+     <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Kai Sommerfeld<text:line-break/>Commits: 651<text:line-break/>Joined: 2000-10-10</text:p>
       </table:table-cell>
-     </table:table-row>
-     <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ingrid Halama<text:line-break/>Commits: 639<text:line-break/>Joined: 2001-01-19</text:p>
       </table:table-cell>
@@ -1228,24 +1237,21 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafael Dominguez<text:line-break/>Commits: 606<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Thomas Benisch [tbe]<text:line-break/>Commits: 551<text:line-break/>Joined: 2000-10-23</text:p>
-      </table:table-cell>
-      <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Jürgen Schmidt<text:line-break/>Commits: 512<text:line-break/>Joined: 2000-10-09</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Meeks<text:line-break/>Commits: 575<text:line-break/>Joined: <text:span text:style-name="T2">2013-09-10</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrzej Hunt<text:line-break/>Commits: 506<text:line-break/>Joined: <text:span text:style-name="T2">2012-03-27</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Thomas Benisch [tbe]<text:line-break/>Commits: 551<text:line-break/>Joined: 2000-10-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Michael Meeks<text:line-break/>Commits: 499<text:line-break/>Joined: <text:span text:style-name="T2">2013-09-10</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Jürgen Schmidt<text:line-break/>Commits: 512<text:line-break/>Joined: 2000-10-09</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Andreas Bregas<text:line-break/>Commits: 470<text:line-break/>Joined: 2000-09-25</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Sherlock<text:line-break/>Commits: 499<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-25</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Sherlock<text:line-break/>Commits: 469<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-25</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Andreas Bregas<text:line-break/>Commits: 470<text:line-break/>Joined: 2000-09-25</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1256,7 +1262,7 @@
        <text:p text:style-name="Table_20_Contents">Dirk Voelzke<text:line-break/>Commits: 392<text:line-break/>Joined: 2000-11-27</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 387<text:line-break/>Joined: 2005-03-14</text:p>
+       <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 388<text:line-break/>Joined: 2005-03-14</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Ivan Timofeev<text:line-break/>Commits: 380<text:line-break/>Joined: <text:span text:style-name="T2">2011-09-16</text:span></text:p>
@@ -1287,15 +1293,15 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>August Sodora<text:line-break/>Commits: 285<text:line-break/>Joined: <text:span text:style-name="T2">2011-10-18</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pierre-André Jacquod<text:line-break/>Commits: 276<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 279<text:line-break/>Joined: 2008-06-01</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Siqi Liu<text:line-break/>Commits: 275<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Pierre-André Jacquod<text:line-break/>Commits: 276<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 272<text:line-break/>Joined: 2008-06-01</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Siqi Liu<text:line-break/>Commits: 275<text:line-break/>Joined: <text:span text:style-name="T2">2013-04-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Lars Langhans<text:line-break/>Commits: 260<text:line-break/>Joined: 2000-09-22</text:p>
@@ -1306,24 +1312,24 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robert Antoni Buj Gelonch<text:line-break/>Commits: 239<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-11</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Robert Antoni Buj Gelonch<text:line-break/>Commits: 246<text:line-break/>Joined: <text:span text:style-name="T2">2014-06-11</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Khaled Hosny<text:line-break/>Commits: 224<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-28</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Katarina Behrens<text:line-break/>Commits: 229<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Ostrovsky<text:line-break/>Commits: 218<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-01</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Khaled Hosny<text:line-break/>Commits: 226<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-28</text:span></text:p>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list