diff options
author | Mathias Bauer <mba@openoffice.org> | 2010-10-28 23:02:10 +0200 |
---|---|---|
committer | Mathias Bauer <mba@openoffice.org> | 2010-10-28 23:02:10 +0200 |
commit | 83d7b776fba6a9b6be8e52f221b237b49ff7612d (patch) | |
tree | 204f94243b92698fa07d3859d7336a3730f626fd /linguistic | |
parent | e02ccd1ae444b8bd21e963adc9f368c462fc3609 (diff) | |
parent | da622616ce54d5c5b4e2e299fbf0a8ae527fd413 (diff) |
CWS gnumake: resync to m91; conflicts unresolved
Diffstat (limited to 'linguistic')
-rw-r--r-- | linguistic/prj/build.lst | 4 | ||||
-rw-r--r-- | linguistic/prj/d.lst | 5 | ||||
-rw-r--r-- | linguistic/qa/complex/linguistic/HangulHanjaConversion.java | 122 | ||||
-rw-r--r-- | linguistic/qa/complex/linguistic/TestDocument.java | 41 | ||||
-rw-r--r-- | linguistic/qa/complex/linguistic/makefile.mk | 60 | ||||
-rw-r--r-- | linguistic/source/convdiclist.cxx | 25 | ||||
-rwxr-xr-x[-rw-r--r--] | linguistic/source/dicimp.cxx | 115 | ||||
-rw-r--r-- | linguistic/source/dlistimp.cxx | 25 | ||||
-rw-r--r-- | linguistic/source/gciterator.cxx | 24 | ||||
-rw-r--r-- | linguistic/source/grammarchecker.cxx | 21 | ||||
-rw-r--r-- | linguistic/source/lng.component | 46 | ||||
-rw-r--r-- | linguistic/source/lngopt.cxx | 23 | ||||
-rw-r--r-- | linguistic/source/lngreg.cxx | 58 | ||||
-rw-r--r-- | linguistic/source/lngsvcmgr.cxx | 59 | ||||
-rw-r--r-- | linguistic/source/lngsvcmgr.hxx | 2 | ||||
-rw-r--r-- | linguistic/source/makefile.mk | 13 |
16 files changed, 255 insertions, 388 deletions
diff --git a/linguistic/prj/build.lst b/linguistic/prj/build.lst index 57c332f6f3ea..b85d4cfd9d73 100644 --- a/linguistic/prj/build.lst +++ b/linguistic/prj/build.lst @@ -3,4 +3,8 @@ lg linguistic usr1 - all lg_mkout NULL lg linguistic\prj get - all lg_prj NULL lg linguistic\inc nmake - all lg_inc NULL lg linguistic\source nmake - all lg_src lg_inc NULL + lg linguistic\qa\unoapi nmake - all lg_qa_unoapi NULL + +# could be we need a Japanese office version +# lg linguistic\qa\complex\linguistic nmake - all lg_qa_complex NULL diff --git a/linguistic/prj/d.lst b/linguistic/prj/d.lst index c0641294a333..4b2e240ef2ef 100644 --- a/linguistic/prj/d.lst +++ b/linguistic/prj/d.lst @@ -7,4 +7,9 @@ ..\xml\*.xml %_DEST%\xml%_EXT%\*.xml mkdir: %_DEST%\inc%_EXT%\linguistic +<<<<<<< local ..\inc\linguistic\*.hxx %_DEST%\inc%_EXT%\linguistic\*.hxx +======= +..\inc\*.hxx %_DEST%\inc%_EXT%\linguistic\*.hxx +..\%__SRC%\misc\lng.component %_DEST%\xml%_EXT%\lng.component +>>>>>>> other diff --git a/linguistic/qa/complex/linguistic/HangulHanjaConversion.java b/linguistic/qa/complex/linguistic/HangulHanjaConversion.java index 160a1b42fd78..63412254c29f 100644 --- a/linguistic/qa/complex/linguistic/HangulHanjaConversion.java +++ b/linguistic/qa/complex/linguistic/HangulHanjaConversion.java @@ -43,56 +43,57 @@ import com.sun.star.linguistic2.XConversionDictionaryList; import com.sun.star.sheet.XSpreadsheet; import com.sun.star.sheet.XSpreadsheetDocument; import com.sun.star.table.XCell; -import com.sun.star.text.XTextCursor; -import com.sun.star.text.XTextDocument; -import com.sun.star.text.XWordCursor; + import com.sun.star.uno.UnoRuntime; -import complexlib.ComplexTestCase; -import java.io.PrintWriter; import util.DesktopTools; +// import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import static org.junit.Assert.*; -public class HangulHanjaConversion extends ComplexTestCase { +public class HangulHanjaConversion { XMultiServiceFactory xMSF = null; boolean disposed = false; Locale aLocale = new Locale("ko", "KR", ""); short dictType = ConversionDictionaryType.HANGUL_HANJA; - public String[] getTestMethodNames() { - return new String[] { "ConversionDictionaryList" }; - } +// public String[] getTestMethodNames() { +// return new String[] { "ConversionDictionaryList" }; +// } - public void before() { - xMSF = (XMultiServiceFactory) param.getMSF(); + @Before public void before() { + xMSF = getMSF(); } - public void ConversionDictionaryList() { + @Test public void ConversionDictionaryList() { Object ConversionDictionaryList = null; try { ConversionDictionaryList = xMSF.createInstance( "com.sun.star.linguistic2.ConversionDictionaryList"); } catch (com.sun.star.uno.Exception e) { - assure("Couldn't create ConversionDictionaryList", false); + fail("Couldn't create ConversionDictionaryList"); } if (ConversionDictionaryList == null) { - assure("Couldn't create ConversionDictionaryList", false); + fail("Couldn't create ConversionDictionaryList"); } boolean bList = checkXConversionDictionaryList( ConversionDictionaryList); - assure("XConversionDictionaryList doesnt work as expected", bList); + assertTrue("XConversionDictionaryList doesnt work as expected", bList); } private boolean checkXConversionDictionaryList(Object list) { boolean res = true; - XConversionDictionaryList xCList = (XConversionDictionaryList) UnoRuntime.queryInterface( - XConversionDictionaryList.class, - list); + XConversionDictionaryList xCList = UnoRuntime.queryInterface(XConversionDictionaryList.class, list); XConversionDictionary xDict = null; try { @@ -100,28 +101,30 @@ public class HangulHanjaConversion extends ComplexTestCase { dictType); } catch (com.sun.star.lang.NoSupportException e) { res = false; - assure("Couldn't add Dictionary", false); + fail("Couldn't add Dictionary"); } catch (com.sun.star.container.ElementExistException e) { res = false; - assure("Couldn't add Dictionary", false); + fail("Couldn't add Dictionary"); } try { xCList.addNewDictionary("addNewDictionary", aLocale, dictType); res = false; - assure("wrong exception while adding Dictionary again", false); + fail("wrong exception while adding Dictionary again"); } catch (com.sun.star.lang.NoSupportException e) { res = false; - assure("wrong exception while adding Dictionary again", false); + fail("wrong exception while adding Dictionary again"); } catch (com.sun.star.container.ElementExistException e) { } boolean localRes = checkNameContainer(xCList.getDictionaryContainer()); res &= localRes; - assure("getDictionaryContainer didn't work as expected", localRes); + assertTrue("getDictionaryContainer didn't work as expected", localRes); - String FileToLoad = util.utils.getFullTestURL("hangulhanja.sxc"); - XComponent xDoc = DesktopTools.loadDoc(xMSF, FileToLoad, + String FileToLoad = TestDocument.getUrl("hangulhanja.sxc"); + // String FileToLoad = util.utils.getFullTestURL(); + +XComponent xDoc = DesktopTools.loadDoc(xMSF, FileToLoad, new PropertyValue[] { }); XSpreadsheet xSheet = getSheet(xDoc); boolean done = false; @@ -145,7 +148,7 @@ public class HangulHanjaConversion extends ComplexTestCase { } catch (com.sun.star.lang.IllegalArgumentException e) { e.printStackTrace(); res = false; - assure("Exception while checking adding entry", false); + fail("Exception while checking adding entry"); } catch (com.sun.star.container.ElementExistException e) { //ignored } @@ -157,7 +160,7 @@ public class HangulHanjaConversion extends ComplexTestCase { } catch (com.sun.star.lang.IllegalArgumentException e) { e.printStackTrace(); res = false; - assure("Exception while checking adding entry", false); + fail("Exception while checking adding entry"); } catch (com.sun.star.container.ElementExistException e) { //ignored } @@ -165,7 +168,7 @@ public class HangulHanjaConversion extends ComplexTestCase { localRes = xCList.queryMaxCharCount(aLocale, dictType, ConversionDirection.FROM_LEFT) == 42; res &= localRes; - assure("queryMaxCharCount returned the wrong value", localRes); + assertTrue("queryMaxCharCount returned the wrong value", localRes); String[] conversion = null; @@ -177,37 +180,36 @@ public class HangulHanjaConversion extends ComplexTestCase { TextConversionOption.NONE); } catch (com.sun.star.lang.IllegalArgumentException e) { res = false; - assure("Exception while calling queryConversions", false); + fail("Exception while calling queryConversions"); } catch (com.sun.star.lang.NoSupportException e) { res = false; - assure("Exception while calling queryConversions", false); + fail("Exception while calling queryConversions"); } localRes = conversion[0].equals(expectedConversion); res &= localRes; - assure("queryConversions didn't work as expected", localRes); + assertTrue("queryConversions didn't work as expected", localRes); try { xCList.getDictionaryContainer().removeByName("addNewDictionary"); } catch (com.sun.star.container.NoSuchElementException e) { res = false; - assure("exception while removing Dictionary again", false); + fail("exception while removing Dictionary again"); } catch (com.sun.star.lang.WrappedTargetException e) { res = false; - assure("exception while removing Dictionary again", false); + fail("exception while removing Dictionary again"); } localRes = !xCList.getDictionaryContainer() .hasByName("addNewDictionary"); res &= localRes; - assure("Dictionary hasn't been removed properly", localRes); + assertTrue("Dictionary hasn't been removed properly", localRes); - XComponent dicList = (XComponent) UnoRuntime.queryInterface( - XComponent.class, xCList); + XComponent dicList = UnoRuntime.queryInterface(XComponent.class, xCList); XEventListener listen = new EventListener(); dicList.addEventListener(listen); dicList.dispose(); - assure("dispose didn't work", disposed); + assertTrue("dispose didn't work", disposed); dicList.removeEventListener(listen); DesktopTools.closeDoc(xDoc); @@ -244,23 +246,17 @@ public class HangulHanjaConversion extends ComplexTestCase { } private XSpreadsheet getSheet(XComponent xDoc) { - XSpreadsheetDocument xSheetDoc = (XSpreadsheetDocument) UnoRuntime.queryInterface( - XSpreadsheetDocument.class, - xDoc); + XSpreadsheetDocument xSheetDoc = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xDoc); XSpreadsheet xSheet = null; try { - xSheet = (XSpreadsheet) UnoRuntime.queryInterface( - XSpreadsheet.class, - xSheetDoc.getSheets() - .getByName(xSheetDoc.getSheets() - .getElementNames()[0])); + xSheet = UnoRuntime.queryInterface(XSpreadsheet.class, xSheetDoc.getSheets().getByName(xSheetDoc.getSheets().getElementNames()[0])); } catch (com.sun.star.container.NoSuchElementException e) { - log.println("Couldn't get sheet"); - e.printStackTrace((PrintWriter) log); + System.out.println("Couldn't get sheet"); + e.printStackTrace(); } catch (com.sun.star.lang.WrappedTargetException e) { - log.println("Couldn't get sheet"); - e.printStackTrace((PrintWriter) log); + System.out.println("Couldn't get sheet"); + e.printStackTrace(); } return xSheet; @@ -280,8 +276,8 @@ public class HangulHanjaConversion extends ComplexTestCase { try { re = xSpreadsheet.getCellByPosition(x, y); } catch (com.sun.star.lang.IndexOutOfBoundsException e) { - log.println("Couldn't get word"); - e.printStackTrace((PrintWriter) log); + System.out.println("Couldn't get word"); + e.printStackTrace(); } return re; @@ -342,4 +338,26 @@ public class HangulHanjaConversion extends ComplexTestCase { disposed = true; } } -}
\ No newline at end of file + + private XMultiServiceFactory getMSF() + { + final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager()); + return xMSF1; + } + + // setup and close connections + @BeforeClass public static void setUpConnection() throws Exception { + System.out.println("setUpConnection()"); + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { + System.out.println("tearDownConnection()"); + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); + +} diff --git a/linguistic/qa/complex/linguistic/TestDocument.java b/linguistic/qa/complex/linguistic/TestDocument.java new file mode 100644 index 000000000000..575640662e5f --- /dev/null +++ b/linguistic/qa/complex/linguistic/TestDocument.java @@ -0,0 +1,41 @@ +/************************************************************************* +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ + +package complex.linguistic; + +import java.io.File; +import org.openoffice.test.OfficeFileUrl; + +final class TestDocument +{ + public static String getUrl(String name) + { + return OfficeFileUrl.getAbsolute(new File("testdocuments", name)); + } + + private TestDocument() {} +} diff --git a/linguistic/qa/complex/linguistic/makefile.mk b/linguistic/qa/complex/linguistic/makefile.mk index 75330e3c5de0..43a88ee0a198 100644 --- a/linguistic/qa/complex/linguistic/makefile.mk +++ b/linguistic/qa/complex/linguistic/makefile.mk @@ -25,49 +25,37 @@ # #************************************************************************* -PRJ = ..$/..$/.. -TARGET = HangulHanjaConversion -PRJNAME = linguistic -PACKAGE = complex$/linguistic +.IF "$(OOO_SUBSEQUENT_TESTS)" == "" +nothing .PHONY: +.ELSE -# --- Settings ----------------------------------------------------- -.INCLUDE: settings.mk - - -#----- compile .java files ----------------------------------------- - -JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \ - OOoRunner.jar mysql.jar -JAVAFILES = HangulHanjaConversion.java -JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -#----- make a jar from compiled files ------------------------------ +PRJ = ../../.. +PRJNAME = sc +TARGET = qa_complex_linguistic -MAXLINELENGTH = 100000 +.IF "$(OOO_JUNIT_JAR)" != "" +PACKAGE = complex/linguistic -JARCLASSDIRS = $(PACKAGE) -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE +# here store only Files which contain a @Test +JAVATESTFILES = \ + HangulHanjaConversion.java -# --- Parameters for the test -------------------------------------- +# put here all other files +JAVAFILES = $(JAVATESTFILES) \ + TestDocument.java -# test base is java complex -CT_TESTBASE = -tb java_complex +JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar +EXTRAJARFILES = $(OOO_JUNIT_JAR) -# test looks something like the.full.package.TestName -CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b) +# Sample how to debug +# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y -# start the runner application -CT_APP = org.openoffice.Runner - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk - -RUN: run - -run: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_TEST) -tdoc $(PWD)$/testdocuments +.END +.INCLUDE: settings.mk +.INCLUDE: target.mk +.INCLUDE: installationtest.mk +ALLTAR : javatest +.END diff --git a/linguistic/source/convdiclist.cxx b/linguistic/source/convdiclist.cxx index 6f94f4735fab..7f4dc8a913a0 100644 --- a/linguistic/source/convdiclist.cxx +++ b/linguistic/source/convdiclist.cxx @@ -692,31 +692,6 @@ uno::Reference< uno::XInterface > SAL_CALL ConvDicList_CreateInstance( return StaticConvDicList::get(); } - -sal_Bool SAL_CALL ConvDicList_writeInfo( - void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey ) -{ - try - { - String aImpl( '/' ); - aImpl += ConvDicList::getImplementationName_Static().getStr(); - aImpl.AppendAscii( "/UNO/SERVICES" ); - uno::Reference< registry::XRegistryKey > xNewKey = - pRegistryKey->createKey(aImpl ); - uno::Sequence< OUString > aServices = - ConvDicList::getSupportedServiceNames_Static(); - for( INT32 i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i]); - - return sal_True; - } - catch(Exception &) - { - return sal_False; - } -} - - void * SAL_CALL ConvDicList_getFactory( const sal_Char * pImplName, XMultiServiceFactory * pServiceManager, void * ) diff --git a/linguistic/source/dicimp.cxx b/linguistic/source/dicimp.cxx index fe53bf344ac3..01c6838a4d3d 100644..100755 --- a/linguistic/source/dicimp.cxx +++ b/linguistic/source/dicimp.cxx @@ -438,101 +438,48 @@ ULONG DictionaryNeo::saveEntries(const OUString &rURL) return static_cast< ULONG >(-1); SvStreamPtr pStream = SvStreamPtr( utl::UcbStreamHelper::CreateStream( xStream ) ); - ULONG nErr = sal::static_int_cast< ULONG >(-1); - rtl_TextEncoding eEnc = osl_getThreadTextEncoding(); - if (nDicVersion >= DIC_VERSION_6) - eEnc = RTL_TEXTENCODING_UTF8; - - if (nDicVersion == DIC_VERSION_7) + // + // Always write as the latest version, i.e. DIC_VERSION_7 + // + rtl_TextEncoding eEnc = RTL_TEXTENCODING_UTF8; + pStream->WriteLine(ByteString (pVerOOo7)); + if (0 != (nErr = pStream->GetError())) + return nErr; + if (nLanguage == LANGUAGE_NONE) + pStream->WriteLine(ByteString("lang: <none>")); + else { - pStream->WriteLine(ByteString (pVerOOo7)); - if (0 != (nErr = pStream->GetError())) - return nErr; - - if (nLanguage == LANGUAGE_NONE) - pStream->WriteLine(ByteString("lang: <none>")); - else - { - ByteString aLine("lang: "); - aLine += ByteString( String( MsLangId::convertLanguageToIsoString( nLanguage ) ), eEnc); - pStream->WriteLine( aLine ); - } - if (0 != (nErr = pStream->GetError())) - return nErr; - - if (eDicType == DictionaryType_POSITIVE) - pStream->WriteLine(ByteString("type: positive")); - else - pStream->WriteLine(ByteString("type: negative")); - if (0 != (nErr = pStream->GetError())) - return nErr; - - pStream->WriteLine(ByteString("---")); - if (0 != (nErr = pStream->GetError())) - return nErr; - - const uno::Reference< XDictionaryEntry > *pEntry = aEntries.getConstArray(); - for (INT32 i = 0; i < nCount; i++) - { - ByteString aOutStr = formatForSave(pEntry[i], eEnc); - pStream->WriteLine (aOutStr); - if (0 != (nErr = pStream->GetError())) - return nErr; - } + ByteString aLine("lang: "); + aLine += ByteString( String( MsLangId::convertLanguageToIsoString( nLanguage ) ), eEnc); + pStream->WriteLine( aLine ); } + if (0 != (nErr = pStream->GetError())) + return nErr; + if (eDicType == DictionaryType_POSITIVE) + pStream->WriteLine(ByteString("type: positive")); else + pStream->WriteLine(ByteString("type: negative")); + if (0 != (nErr = pStream->GetError())) + return nErr; + pStream->WriteLine(ByteString("---")); + if (0 != (nErr = pStream->GetError())) + return nErr; + const uno::Reference< XDictionaryEntry > *pEntry = aEntries.getConstArray(); + for (INT32 i = 0; i < nCount; i++) { - sal_Char aWordBuf[BUFSIZE]; - - // write version - const sal_Char *pVerStr = NULL; - if (DIC_VERSION_6 == nDicVersion) - pVerStr = pVerStr6; - else - pVerStr = eDicType == DictionaryType_POSITIVE ? pVerStr2 : pVerStr5; - strcpy( aWordBuf, pVerStr ); // #100211# - checked - USHORT nLen = sal::static_int_cast< USHORT >(strlen( aWordBuf )); - *pStream << nLen; + ByteString aOutStr = formatForSave(pEntry[i], eEnc); + pStream->WriteLine (aOutStr); if (0 != (nErr = pStream->GetError())) return nErr; - pStream->Write(aWordBuf, nLen); - if (0 != (nErr = pStream->GetError())) - return nErr; - - *pStream << nLanguage; - if (0 != (nErr = pStream->GetError())) - return nErr; - *pStream << (sal_Char) (eDicType == DictionaryType_NEGATIVE ? TRUE : FALSE); - if (0 != (nErr = pStream->GetError())) - return nErr; - - const uno::Reference< XDictionaryEntry > *pEntry = aEntries.getConstArray(); - for (INT32 i = 0; i < nCount; i++) - { - ByteString aOutStr = formatForSave(pEntry[i], eEnc); - - // the old format would fail (mis-calculation of nLen) and write - // uninitialized junk for combined len >= BUFSIZE - we truncate - // silently here, but BUFSIZE is large anyway. - nLen = aOutStr.Len(); - if (nLen >= BUFSIZE) - nLen = BUFSIZE - 1; - - *pStream << nLen; - if (0 != (nErr = pStream->GetError())) - return nErr; - pStream->Write(aOutStr.GetBuffer(), nLen); - if (0 != (nErr = pStream->GetError())) - return nErr; - } } - //! get return value before Stream is destroyed - ULONG nError = pStream->GetError(); + //If we are migrating from an older version, then on first successful + //write, we're now converted to the latest version, i.e. DIC_VERSION_7 + nDicVersion = DIC_VERSION_7; - return nError; + return nErr; } void DictionaryNeo::launchEvent(INT16 nEvent, diff --git a/linguistic/source/dlistimp.cxx b/linguistic/source/dlistimp.cxx index 817dbeb311ca..0e1a045bb98e 100644 --- a/linguistic/source/dlistimp.cxx +++ b/linguistic/source/dlistimp.cxx @@ -796,31 +796,6 @@ uno::Sequence< rtl::OUString > DicList::getSupportedServiceNames_Static() throw( return aSNS; } - -sal_Bool SAL_CALL DicList_writeInfo( - void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey ) -{ - try - { - String aImpl( '/' ); - aImpl += DicList::getImplementationName_Static().getStr(); - aImpl.AppendAscii( "/UNO/SERVICES" ); - uno::Reference< registry::XRegistryKey > xNewKey = - pRegistryKey->createKey(aImpl ); - uno::Sequence< rtl::OUString > aServices = - DicList::getSupportedServiceNames_Static(); - for( INT32 i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i]); - - return sal_True; - } - catch(Exception &) - { - return sal_False; - } -} - - void * SAL_CALL DicList_getFactory( const sal_Char * pImplName, XMultiServiceFactory * pServiceManager, void * ) { diff --git a/linguistic/source/gciterator.cxx b/linguistic/source/gciterator.cxx index 7fbeecad0622..e311e54cde88 100644 --- a/linguistic/source/gciterator.cxx +++ b/linguistic/source/gciterator.cxx @@ -1333,27 +1333,3 @@ void * SAL_CALL GrammarCheckingIterator_getFactory( } return pRet; } - - -sal_Bool SAL_CALL GrammarCheckingIterator_writeInfo( - void * /*pServiceManager*/, - registry::XRegistryKey * pRegistryKey ) -{ - try - { - OUString aImpl( '/' ); - aImpl += GrammarCheckingIterator_getImplementationName().getStr(); - aImpl += A2OU( "/UNO/SERVICES" ); - uno::Reference< registry::XRegistryKey > xNewKey = pRegistryKey->createKey( aImpl ); - uno::Sequence< OUString > aServices = GrammarCheckingIterator_getSupportedServiceNames(); - for( sal_Int32 i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - return sal_True; - } - catch (uno::Exception &) - { - return sal_False; - } -} - diff --git a/linguistic/source/grammarchecker.cxx b/linguistic/source/grammarchecker.cxx index 5dc23d6f2a0f..4647cd7feefe 100644 --- a/linguistic/source/grammarchecker.cxx +++ b/linguistic/source/grammarchecker.cxx @@ -276,27 +276,6 @@ OUString SAL_CALL GrammarChecker::getImplementationName( ) throw(uno::RuntimeEx return getImplementationName_Static(); } -sal_Bool SAL_CALL GrammarChecker_writeInfo( void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey ) -{ - try - { - String aImpl( '/' ); - aImpl += GrammarChecker::getImplementationName_Static().getStr(); - aImpl.AppendAscii( "/UNO/SERVICES" ); - uno::Reference< registry::XRegistryKey > xNewKey = - pRegistryKey->createKey( aImpl ); - uno::Sequence< OUString > aServices = GrammarChecker::getSupportedServiceNames_Static(); - for( INT32 i = 0; i < aServices.getLength(); ++i ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - return sal_True; - } - catch(uno::Exception &) - { - return sal_False; - } -} - uno::Reference< uno::XInterface > SAL_CALL GrammarChecker_CreateInstance( const uno::Reference< lang::XMultiServiceFactory > & /*rSMgr*/ ) throw(uno::Exception) diff --git a/linguistic/source/lng.component b/linguistic/source/lng.component new file mode 100644 index 000000000000..f4f3ca603a88 --- /dev/null +++ b/linguistic/source/lng.component @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.lingu2.ConvDicList"> + <service name="com.sun.star.linguistic2.ConversionDictionaryList"/> + </implementation> + <implementation name="com.sun.star.lingu2.DicList"> + <service name="com.sun.star.linguistic2.DictionaryList"/> + </implementation> + <implementation name="com.sun.star.lingu2.LinguProps"> + <service name="com.sun.star.linguistic2.LinguProperties"/> + </implementation> + <implementation name="com.sun.star.lingu2.LngSvcMgr"> + <service name="com.sun.star.linguistic2.LinguServiceManager"/> + </implementation> + <implementation name="com.sun.star.lingu2.ProofreadingIterator"> + <service name="com.sun.star.linguistic2.ProofreadingIterator"/> + </implementation> +</component> diff --git a/linguistic/source/lngopt.cxx b/linguistic/source/lngopt.cxx index cc4f60e3b16f..f00f4f439451 100644 --- a/linguistic/source/lngopt.cxx +++ b/linguistic/source/lngopt.cxx @@ -665,29 +665,6 @@ uno::Sequence< OUString > LinguProps::getSupportedServiceNames_Static() return aSNS; } - -sal_Bool SAL_CALL LinguProps_writeInfo( void * /*pServiceManager*/, - XRegistryKey * pRegistryKey ) -{ - try - { - String aImpl( '/' ); - aImpl += LinguProps::getImplementationName_Static().getStr(); - aImpl.AppendAscii( "/UNO/SERVICES" ); - Reference< XRegistryKey > xNewKey = - pRegistryKey->createKey(aImpl ); - uno::Sequence< OUString > aServices = LinguProps::getSupportedServiceNames_Static(); - for( INT32 i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i]); - - return sal_True; - } - catch(Exception &) - { - return sal_False; - } -} - void * SAL_CALL LinguProps_getFactory( const sal_Char * pImplName, XMultiServiceFactory *pServiceManager, void * ) { diff --git a/linguistic/source/lngreg.cxx b/linguistic/source/lngreg.cxx index 6ab3db60d268..0f6add07b466 100644 --- a/linguistic/source/lngreg.cxx +++ b/linguistic/source/lngreg.cxx @@ -38,42 +38,6 @@ using namespace com::sun::star::lang; using namespace com::sun::star::registry; -//////////////////////////////////////// -// declaration of external RegEntry-functions defined by the service objects -// - -extern sal_Bool SAL_CALL LngSvcMgr_writeInfo -( - void * /*pServiceManager*/, - XRegistryKey * pRegistryKey -); - -extern sal_Bool SAL_CALL DicList_writeInfo -( - void * /*pServiceManager*/, XRegistryKey * pRegistryKey -); - -extern sal_Bool SAL_CALL LinguProps_writeInfo -( - void * /*pServiceManager*/, - XRegistryKey * pRegistryKey -); - -extern sal_Bool SAL_CALL ConvDicList_writeInfo -( - void * /*pServiceManager*/, XRegistryKey * pRegistryKey -); - -extern sal_Bool SAL_CALL GrammarCheckingIterator_writeInfo -( - void * /*pServiceManager*/, XRegistryKey * pRegistryKey -); - -//extern sal_Bool SAL_CALL GrammarChecker_writeInfo -//( -// void * /*pServiceManager*/, XRegistryKey * pRegistryKey -//); - extern void * SAL_CALL LngSvcMgr_getFactory ( const sal_Char * pImplName, @@ -129,28 +93,6 @@ void SAL_CALL component_getImplementationEnvironment( *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } -sal_Bool SAL_CALL component_writeInfo -( - void * pServiceManager, - XRegistryKey * pRegistryKey -) -{ - sal_Bool bRet = LngSvcMgr_writeInfo( pServiceManager, pRegistryKey ); - if(bRet) - bRet = LinguProps_writeInfo( pServiceManager, pRegistryKey ); - if(bRet) - bRet = DicList_writeInfo( pServiceManager, pRegistryKey ); - if(bRet) - bRet = ConvDicList_writeInfo( pServiceManager, pRegistryKey ); - if(bRet) - bRet = GrammarCheckingIterator_writeInfo( pServiceManager, pRegistryKey ); -/* - if(bRet) - bRet = GrammarChecker_writeInfo( pServiceManager, pRegistryKey ); -*/ - return bRet; -} - void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey ) { diff --git a/linguistic/source/lngsvcmgr.cxx b/linguistic/source/lngsvcmgr.cxx index db423e5725ec..c6da72bca6c1 100644 --- a/linguistic/source/lngsvcmgr.cxx +++ b/linguistic/source/lngsvcmgr.cxx @@ -45,6 +45,8 @@ #include <cppuhelper/extract.hxx> #include <rtl/logfile.hxx> +#include <boost/checked_delete.hpp> + #include "lngsvcmgr.hxx" #include "lngopt.hxx" #include "linguistic/misc.hxx" @@ -605,6 +607,14 @@ LngSvcMgr::LngSvcMgr() : EnableNotification( aNames ); } +void LngSvcMgr::clearSvcInfoArray(SvcInfoArray* pInfo) +{ + if (pInfo) + { + std::for_each(pInfo->begin(), pInfo->end(), boost::checked_deleter<SvcInfo>()); + delete pInfo; + } +} LngSvcMgr::~LngSvcMgr() { @@ -612,10 +622,10 @@ LngSvcMgr::~LngSvcMgr() // will be freed in the destructor of the respective Reference's // xSpellDsp, xGrammarDsp, xHyphDsp, xThesDsp - delete pAvailSpellSvcs; - delete pAvailGrammarSvcs; - delete pAvailHyphSvcs; - delete pAvailThesSvcs; + clearSvcInfoArray(pAvailSpellSvcs); + clearSvcInfoArray(pAvailGrammarSvcs); + clearSvcInfoArray(pAvailHyphSvcs); + clearSvcInfoArray(pAvailThesSvcs); } @@ -652,7 +662,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames ) if (0 == rName.compareTo( aSpellCheckerList, aSpellCheckerList.getLength() )) { // delete old cached data, needs to be acquired new on demand - delete pAvailSpellSvcs; pAvailSpellSvcs = 0; + clearSvcInfoArray(pAvailSpellSvcs); pAvailSpellSvcs = 0; OUString aNode( aSpellCheckerList ); if (lcl_SeqHasString( aSpellCheckerListEntries, aKeyText )) @@ -677,7 +687,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames ) else if (0 == rName.compareTo( aGrammarCheckerList, aGrammarCheckerList.getLength() )) { // delete old cached data, needs to be acquired new on demand - delete pAvailGrammarSvcs; pAvailGrammarSvcs = 0; + clearSvcInfoArray(pAvailGrammarSvcs); pAvailGrammarSvcs = 0; OUString aNode( aGrammarCheckerList ); if (lcl_SeqHasString( aGrammarCheckerListEntries, aKeyText )) @@ -705,7 +715,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames ) else if (0 == rName.compareTo( aHyphenatorList, aHyphenatorList.getLength() )) { // delete old cached data, needs to be acquired new on demand - delete pAvailHyphSvcs; pAvailHyphSvcs = 0; + clearSvcInfoArray(pAvailHyphSvcs); pAvailHyphSvcs = 0; OUString aNode( aHyphenatorList ); if (lcl_SeqHasString( aHyphenatorListEntries, aKeyText )) @@ -730,7 +740,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames ) else if (0 == rName.compareTo( aThesaurusList, aThesaurusList.getLength() )) { // delete old cached data, needs to be acquired new on demand - delete pAvailThesSvcs; pAvailThesSvcs = 0; + clearSvcInfoArray(pAvailThesSvcs); pAvailThesSvcs = 0; OUString aNode( aThesaurusList ); if (lcl_SeqHasString( aThesaurusListEntries, aKeyText )) @@ -1402,7 +1412,7 @@ uno::Sequence< OUString > SAL_CALL { // don't used cached data here (force re-evaluation in order to have downloaded dictionaries // already found without the need to restart the office - delete pAvailSpellSvcs; pAvailSpellSvcs = 0; + clearSvcInfoArray(pAvailSpellSvcs); pAvailSpellSvcs = 0; GetAvailableSpellSvcs_Impl(); pInfoArray = pAvailSpellSvcs; } @@ -1410,7 +1420,7 @@ uno::Sequence< OUString > SAL_CALL { // don't used cached data here (force re-evaluation in order to have downloaded dictionaries // already found without the need to restart the office - delete pAvailGrammarSvcs; pAvailGrammarSvcs = 0; + clearSvcInfoArray(pAvailGrammarSvcs); pAvailGrammarSvcs = 0; GetAvailableGrammarSvcs_Impl(); pInfoArray = pAvailGrammarSvcs; } @@ -1418,7 +1428,7 @@ uno::Sequence< OUString > SAL_CALL { // don't used cached data here (force re-evaluation in order to have downloaded dictionaries // already found without the need to restart the office - delete pAvailHyphSvcs; pAvailHyphSvcs = 0; + clearSvcInfoArray(pAvailHyphSvcs); pAvailHyphSvcs = 0; GetAvailableHyphSvcs_Impl(); pInfoArray = pAvailHyphSvcs; } @@ -1426,7 +1436,7 @@ uno::Sequence< OUString > SAL_CALL { // don't used cached data here (force re-evaluation in order to have downloaded dictionaries // already found without the need to restart the office - delete pAvailThesSvcs; pAvailThesSvcs = 0; + clearSvcInfoArray(pAvailThesSvcs); pAvailThesSvcs = 0; GetAvailableThesSvcs_Impl(); pInfoArray = pAvailThesSvcs; } @@ -1990,31 +2000,6 @@ uno::Reference< uno::XInterface > SAL_CALL LngSvcMgr_CreateInstance( return xService; } - - -sal_Bool SAL_CALL LngSvcMgr_writeInfo( - void * /*pServiceManager*/, - registry::XRegistryKey * pRegistryKey ) -{ - try - { - String aImpl( '/' ); - aImpl += LngSvcMgr::getImplementationName_Static().getStr(); - aImpl.AppendAscii( "/UNO/SERVICES" ); - uno::Reference< registry::XRegistryKey > xNewKey = - pRegistryKey->createKey( aImpl ); - uno::Sequence< OUString > aServices = LngSvcMgr::getSupportedServiceNames_Static(); - for( INT32 i = 0; i < aServices.getLength(); i++ ) - xNewKey->createKey( aServices.getConstArray()[i] ); - - return sal_True; - } - catch(uno::Exception &) - { - return sal_False; - } -} - void * SAL_CALL LngSvcMgr_getFactory( const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager, diff --git a/linguistic/source/lngsvcmgr.hxx b/linguistic/source/lngsvcmgr.hxx index b8e0427ae328..1fd74d08acd1 100644 --- a/linguistic/source/lngsvcmgr.hxx +++ b/linguistic/source/lngsvcmgr.hxx @@ -143,6 +143,8 @@ class LngSvcMgr : void SetAvailableCfgServiceLists( LinguDispatcher &rDispatcher, const SvcInfoArray &rAvailSvcs ); + static void clearSvcInfoArray(SvcInfoArray *pInfo); + // utl::ConfigItem (to allow for listening of changes of relevant properties) virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString > &rPropertyNames ); virtual void Commit(); diff --git a/linguistic/source/makefile.mk b/linguistic/source/makefile.mk index 3f68afb30575..9bbd456ce89d 100644 --- a/linguistic/source/makefile.mk +++ b/linguistic/source/makefile.mk @@ -91,9 +91,8 @@ DEF1DES =Linguistic main DLL .IF "$(GUI)"=="WNT" -DEF1EXPORT1 = component_writeInfo -DEF1EXPORT2 = component_getFactory -DEF1EXPORT3 = component_getImplementationEnvironment +DEF1EXPORT1 = component_getFactory +DEF1EXPORT2 = component_getImplementationEnvironment .ENDIF # --- Targets ------------------------------------------------------ @@ -109,3 +108,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk @echo component >> $@ @echo __CT >> $@ + +ALLTAR : $(MISC)/lng.component + +$(MISC)/lng.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + lng.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt lng.component |