[Libreoffice-commits] core.git: 6 commits - cui/source editeng/CppunitTest_editeng_core.mk editeng/qa editeng/source Makefile.in solenv/bin sw/source vcl/unx

Caolán McNamara caolanm at redhat.com
Fri Mar 1 04:20:51 PST 2013


 Makefile.in                         |    2 
 cui/source/tabpages/page.src        |    4 -
 editeng/CppunitTest_editeng_core.mk |    1 
 editeng/qa/unit/core-test.cxx       |  116 ++++++++++++++++++++++++++++++++++++
 editeng/source/misc/svxacorr.cxx    |   13 ++--
 solenv/bin/callcatcher.Makefile     |   12 ---
 sw/source/filter/ww8/ww8graf.cxx    |    5 +
 vcl/unx/generic/printer/cupsmgr.cxx |    5 +
 8 files changed, 137 insertions(+), 21 deletions(-)

New commits:
commit a526370737099b57b399f2ca8de43e74e24ab794
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Mar 1 10:50:11 2013 +0000

    Related: fdo#55693 add regression tests for autocorrection
    
    Change-Id: Ie9bbeb38ec9cc2fa0377709e75abb0338b20bab5

diff --git a/editeng/CppunitTest_editeng_core.mk b/editeng/CppunitTest_editeng_core.mk
index 6db6082..d8ede2e 100644
--- a/editeng/CppunitTest_editeng_core.mk
+++ b/editeng/CppunitTest_editeng_core.mk
@@ -81,6 +81,7 @@ $(eval $(call gb_CppunitTest_use_components,editeng_core,\
     configmgr/source/configmgr \
     framework/util/fwk \
     i18npool/util/i18npool \
+    linguistic/source/lng \
     sfx2/util/sfx \
     ucb/source/core/ucb1 \
     ucb/source/ucp/file/ucpfile1 \
diff --git a/editeng/qa/unit/core-test.cxx b/editeng/qa/unit/core-test.cxx
index a43dcaa..dd4711c 100644
--- a/editeng/qa/unit/core-test.cxx
+++ b/editeng/qa/unit/core-test.cxx
@@ -38,6 +38,7 @@
 #include "editeng/eeitem.hxx"
 #include "editeng/editids.hrc"
 #include "editeng/editdoc.hxx"
+#include "editeng/svxacorr.hxx"
 #include "editeng/unofield.hxx"
 
 #include <com/sun/star/text/textfield/Type.hpp>
@@ -61,9 +62,15 @@ public:
      */
     void testUnoTextFields();
 
+    /**
+     * AutoCorrect tests
+     */
+    void testAutocorrect();
+
     CPPUNIT_TEST_SUITE(Test);
     CPPUNIT_TEST(testConstruction);
     CPPUNIT_TEST(testUnoTextFields);
+    CPPUNIT_TEST(testAutocorrect);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -221,6 +228,115 @@ void Test::testUnoTextFields()
     }
 }
 
+class TestAutoCorrDoc : public SvxAutoCorrDoc
+{
+public:
+    TestAutoCorrDoc(const OUString &rText, LanguageType eLang)
+        : m_sText(rText)
+        , m_eLang(eLang)
+    {
+    }
+    OUString getResult() const
+    {
+        return m_sText.toString();
+    }
+private:
+    OUStringBuffer m_sText;
+    LanguageType m_eLang;
+    virtual sal_Bool Delete( xub_StrLen nStt, xub_StrLen nEnd )
+    {
+        //fprintf(stderr, "TestAutoCorrDoc::Delete\n");
+        m_sText.remove(nStt, nEnd-nStt);
+        return true;
+    }
+    virtual sal_Bool Insert( xub_StrLen nPos, const String& rTxt )
+    {
+        //fprintf(stderr, "TestAutoCorrDoc::Insert\n");
+        m_sText.insert(nPos, rTxt);
+        return true;
+    }
+    virtual sal_Bool Replace( xub_StrLen nPos, const String& rTxt )
+    {
+        //fprintf(stderr, "TestAutoCorrDoc::Replace\n");
+        return ReplaceRange( nPos, rTxt.Len(), rTxt );
+    }
+    virtual sal_Bool ReplaceRange( xub_StrLen nPos, xub_StrLen nLen, const String& rTxt )
+    {
+        //fprintf(stderr, "TestAutoCorrDoc::ReplaceRange %d %d %s\n", nPos, nLen, OUStringToOString(rTxt, RTL_TEXTENCODING_UTF8).getStr());
+        m_sText.remove(nPos, nLen);
+        m_sText.insert(nPos, rTxt);
+        return true;
+    }
+    virtual sal_Bool SetAttr( xub_StrLen, xub_StrLen, sal_uInt16, SfxPoolItem& )
+    {
+        //fprintf(stderr, "TestAutoCorrDoc::SetAttr\n");
+        return true;
+    }
+    virtual sal_Bool SetINetAttr( xub_StrLen, xub_StrLen, const String& )
+    {
+        //fprintf(stderr, "TestAutoCorrDoc::SetINetAttr\n");
+        return true;
+    }
+    virtual const String* GetPrevPara( sal_Bool )
+    {
+        //fprintf(stderr, "TestAutoCorrDoc::GetPrevPara\n");
+        return NULL;
+    }
+    virtual sal_Bool ChgAutoCorrWord( sal_uInt16& rSttPos,
+                sal_uInt16 nEndPos, SvxAutoCorrect& rACorrect,
+                const String** ppPara )
+    {
+        //fprintf(stderr, "TestAutoCorrDoc::ChgAutoCorrWord\n");
+
+        if (m_sText.isEmpty())
+            return false;
+
+        const SvxAutocorrWord* pFnd = rACorrect.SearchWordsInList(m_sText.toString(), rSttPos, nEndPos, *this, m_eLang);
+        if (pFnd && pFnd->IsTextOnly())
+        {
+            m_sText.remove(rSttPos, nEndPos);
+            m_sText.insert(rSttPos, pFnd->GetLong());
+            if( ppPara )
+                *ppPara = NULL;//&pCurNode->GetString();
+            return true;
+        }
+
+        return false;
+    }
+};
+
+//https://bugs.freedesktop.org/show_bug.cgi?id=55693
+//Two capitalized letters are not corrected if dash or slash are directly
+//before the two letters
+void Test::testAutocorrect()
+{
+    OUString sShareAutocorrFile;
+    OUString sUserAutocorrFile;
+    SvxAutoCorrect aAutoCorrect(sShareAutocorrFile, sUserAutocorrFile);
+
+    {
+        OUString sInput("TEst-TEst");
+        sal_Unicode cNextChar(' ');
+        OUString sExpected("Test-Test ");
+
+        TestAutoCorrDoc aFoo(sInput, LANGUAGE_ENGLISH_US);
+        aAutoCorrect.AutoCorrect(aFoo, sInput, sInput.getLength(), cNextChar, true);
+
+        CPPUNIT_ASSERT_MESSAGE("autocorrect", aFoo.getResult() == sExpected);
+    }
+
+    {
+        OUString sInput("TEst/TEst");
+        sal_Unicode cNextChar(' ');
+        OUString sExpected("Test/Test ");
+
+        TestAutoCorrDoc aFoo(sInput, LANGUAGE_ENGLISH_US);
+        aAutoCorrect.AutoCorrect(aFoo, sInput, sInput.getLength(), cNextChar, true);
+
+        CPPUNIT_ASSERT_MESSAGE("autocorrect", aFoo.getResult() == sExpected);
+    }
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);
 
 }
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
index e0a0180..fb05f4d 100644
--- a/editeng/source/misc/svxacorr.cxx
+++ b/editeng/source/misc/svxacorr.cxx
@@ -1458,12 +1458,15 @@ sal_uLong SvxAutoCorrect::AutoCorrect( SvxAutoCorrDoc& rDoc, const String& rTxt,
 
         if( nHelpId )
         {
-            nHelpId -= 1;
-            Application::GetHelp()->OpenHelpAgent( aHelpIds[nHelpId] );
+            Help* pHelp = Application::GetHelp();
+            if (pHelp)
+            {
+                nHelpId -= 1;
+                Application::GetHelp()->OpenHelpAgent( aHelpIds[nHelpId] );
+            }
         }
     }
 
-
     return nRet;
 }
 
commit 4a05ab1dd4c7da10810fec9948b2de76b7bdd0b6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Mar 1 09:35:12 2013 +0000

    Resolves: #i120028# SvxBorderLine leak
    
    Change-Id: I652653ae8a99b8486e893c65b6c82b6ea6e4faec

diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 4001639..599b1ac 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -1560,7 +1560,10 @@ sal_Int32 SwWW8ImplReader::MatchSdrBoxIntoFlyBoxItem(const Color& rLineColor,
         aLine.SetBorderLineStyle(nIdx);
 
         for(sal_uInt16 nLine = 0; nLine < 4; ++nLine)
-            rBox.SetLine(new SvxBorderLine( aLine ), nLine);
+        {
+            //aLine is cloned by SetLine
+            rBox.SetLine(&aLine, nLine);
+        }
     }
 
     return nOutsideThick;
commit 1bb8ae7a52564ec8b3d08ffe2175e466a02cfd76
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Mar 1 07:48:49 2013 +0000

    fix higher debug level build
    
    Change-Id: I1c0fb9a3c36708159495af6ac08f1e66074fc029

diff --git a/vcl/unx/generic/printer/cupsmgr.cxx b/vcl/unx/generic/printer/cupsmgr.cxx
index 4a4700a..e087264 100644
--- a/vcl/unx/generic/printer/cupsmgr.cxx
+++ b/vcl/unx/generic/printer/cupsmgr.cxx
@@ -894,7 +894,10 @@ const char* CUPSManager::authenticateUser( const char* /*pIn*/ )
         osl_unloadModule( pLib );
     }
 #if OSL_DEBUG_LEVEL > 1
-    else fprintf( stderr, "loading of module %s failed\n", OUStringToOString( aLib, osl_getThreadTextEncoding() ).getStr() );
+    else
+    {
+        fprintf( stderr, "loading of module %s failed\n", _XSALSET_LIBNAME );
+    }
 #endif
 
     return pRet;
commit 4e1dd61364d6f158ed18660a0389ceff61007197
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Feb 28 23:28:49 2013 +0000

    reduce callcatcher call post dmake death
    
    Change-Id: I05a68199c606c815ab007cb662c0b29053eb3609

diff --git a/Makefile.in b/Makefile.in
index df98339..13a635f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -336,7 +336,7 @@ findunusedcode:
 	@echo unexport CFLAGS >> $(SRCDIR)/config_host_callcatcher.mk
 	@echo unexport CXXFLAGS >> $(SRCDIR)/config_host_callcatcher.mk
 	@mkdir -p $(SRCDIR)/solenv/callcatcher/bin && \
-	@$(GNUMAKE) -f $(SOLARENV)/bin/callcatcher.Makefile findunusedcode
+	$(GNUMAKE) -f $(SOLARENV)/bin/callcatcher.Makefile findunusedcode
 	@grep ::.*\( unusedcode.all \
               | grep -v ^Atom \
               | grep -v ^atom:: \
diff --git a/solenv/bin/callcatcher.Makefile b/solenv/bin/callcatcher.Makefile
index f915750..c88b173 100644
--- a/solenv/bin/callcatcher.Makefile
+++ b/solenv/bin/callcatcher.Makefile
@@ -18,13 +18,6 @@ export AR:=callarchive ar
 else
 export AR:=callarchive $(AR)
 endif
-#old-school ones, can go post-gbuildification is complete
-export LINK:=$(CXX)
-ifeq ($(LIBMGR),)
-export LIBMGR:=callarchive ar
-else
-export LIBMGR:=callarchive $(LIBMGR)
-endif
 export dbglevel:=2
 
 include $(SOLARENV)/gbuild/gbuild.mk
@@ -33,9 +26,6 @@ findunusedcode:
 	$(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f Makefile.build
 	ooinstall -l $(DEVINSTALLDIR)/opt
 	$(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f Makefile.build subsequentcheck
-	callanalyse \
-        $(WORKDIR)/LinkTarget/*/* \
-	    */$(OUTPATH)/bin/* \
-	    */$(OUTPATH)/lib/* > unusedcode.all
+	callanalyse $(WORKDIR)/LinkTarget/*/* > unusedcode.all
 
 # vim: set noet sw=4 ts=4:
commit b458e734fda37a01db36ed59127984d65f12a883
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Feb 28 23:10:33 2013 +0000

    vector::at on guaranteed in-bounds values
    
    Change-Id: I6ca8ec182e4c68f4cc29c7669168b513cdf148bd

diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
index 2880651..e0a0180 100644
--- a/editeng/source/misc/svxacorr.cxx
+++ b/editeng/source/misc/svxacorr.cxx
@@ -393,8 +393,8 @@ sal_Bool SvxAutoCorrect::FnCptlSttWrd( SvxAutoCorrDoc& rDoc, const String& rTxt,
     // Two capital letters at the beginning of word?
     for(n = 0; n < aDelimiters.size() - 1; n++)
     {
-        nSttPos = aDelimiters.at( n );
-        nEndPos = aDelimiters.at( n + 1 );
+        nSttPos = aDelimiters[n];
+        nEndPos = aDelimiters[n + 1];
 
         if( nSttPos+2 < nEndPos &&
             IsUpperLetter( rCC.getCharacterType( rTxt, nSttPos )) &&
commit 891a99ce9f5396e752e389d994f794af97dddef6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Feb 28 22:44:01 2013 +0000

    Monarch is apparently #7 3/4 not #8
    
    Change-Id: I1664065e9fee3db5b900051ea3bf086c61ef0cee

diff --git a/cui/source/tabpages/page.src b/cui/source/tabpages/page.src
index 96acd3f..0d2234a 100644
--- a/cui/source/tabpages/page.src
+++ b/cui/source/tabpages/page.src
@@ -48,8 +48,8 @@ StringArray RID_SVXSTRARY_PAPERSIZE_STD
         < "C6/5 Envelope" ; PAPERSIZE_C65 ; > ;
         < "C5 Envelope" ; PAPERSIZE_C5 ; > ;
         < "C4 Envelope" ; PAPERSIZE_C4 ; > ;
-        < "#6 3/4 (Personal) Envelope" ; PAPERSIZE_COM675; > ;
-        < "#8 (Monarch) Envelope" ; PAPERSIZE_MONARCH; > ;
+        < "#6¾ Envelope" ; PAPERSIZE_COM675; > ;
+        < "#7¾ (Monarch) Envelope" ; PAPERSIZE_MONARCH; > ;
         < "#9 Envelope" ; PAPERSIZE_COM9; > ;
         < "#10 Envelope" ; PAPERSIZE_COM10; > ;
         < "#11 Envelope" ; PAPERSIZE_COM11; > ;


More information about the Libreoffice-commits mailing list