summaryrefslogtreecommitdiff
path: root/lingucomponent/source
diff options
context:
space:
mode:
Diffstat (limited to 'lingucomponent/source')
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp1
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx73
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.component34
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx977
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx161
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk99
-rw-r--r--lingucomponent/source/languageguessing/altstrfunc.cxx50
-rw-r--r--lingucomponent/source/languageguessing/altstrfunc.hxx43
-rw-r--r--lingucomponent/source/languageguessing/guess.cxx139
-rw-r--r--lingucomponent/source/languageguessing/guess.hxx74
-rw-r--r--lingucomponent/source/languageguessing/guesslang.component34
-rw-r--r--lingucomponent/source/languageguessing/guesslang.cxx435
-rw-r--r--lingucomponent/source/languageguessing/makefile.mk88
-rw-r--r--lingucomponent/source/languageguessing/simpleguesser.cxx237
-rw-r--r--lingucomponent/source/languageguessing/simpleguesser.hxx124
-rw-r--r--lingucomponent/source/lingutil/lingutil.cxx280
-rw-r--r--lingucomponent/source/lingutil/lingutil.hxx117
-rw-r--r--lingucomponent/source/lingutil/makefile.mk63
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.component34
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macreg.cxx73
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx657
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx155
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/makefile.mk100
-rw-r--r--lingucomponent/source/spellcheck/spell/exports.dxp1
-rw-r--r--lingucomponent/source/spellcheck/spell/makefile.mk95
-rw-r--r--lingucomponent/source/spellcheck/spell/spell.component34
-rw-r--r--lingucomponent/source/spellcheck/spell/sreg.cxx71
-rw-r--r--lingucomponent/source/spellcheck/spell/sspellimp.cxx700
-rw-r--r--lingucomponent/source/spellcheck/spell/sspellimp.hxx143
-rw-r--r--lingucomponent/source/thesaurus/libnth/exports.dxp1
-rw-r--r--lingucomponent/source/thesaurus/libnth/lnth.component34
-rw-r--r--lingucomponent/source/thesaurus/libnth/makefile.mk112
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesdta.cxx116
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesdta.hxx88
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesimp.cxx794
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesimp.hxx172
-rw-r--r--lingucomponent/source/thesaurus/libnth/ntreg.cxx72
37 files changed, 0 insertions, 6481 deletions
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp
deleted file mode 100644
index 700330789..000000000
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp
+++ /dev/null
@@ -1 +0,0 @@
-component_getFactory
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx
deleted file mode 100644
index a8a1feac8..000000000
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-
-
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <rtl/string.hxx>
-
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-
-////////////////////////////////////////
-// declaration of external RegEntry-functions defined by the service objects
-//
-
-extern void * SAL_CALL Hyphenator_getFactory(
- const sal_Char * pImplName,
- XMultiServiceFactory * pServiceManager,
- void * /*pRegistryKey*/ );
-
-////////////////////////////////////////
-// definition of the two functions that are used to provide the services
-//
-
-extern "C"
-{
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- void * pRet = Hyphenator_getFactory(
- pImplName,
- reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
- pRegistryKey );
-
- return pRet;
-}
-
-}
-
-///////////////////////////////////////////////////////////////////////////
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.component b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.component
deleted file mode 100644
index aeae4c577..000000000
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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="org.openoffice.lingu.LibHnjHyphenator">
- <service name="com.sun.star.linguistic2.Hyphenator"/>
- </implementation>
-</component>
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
deleted file mode 100644
index 77485acf5..000000000
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+++ /dev/null
@@ -1,977 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
-
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <i18npool/mslangid.hxx>
-#include <tools/debug.hxx>
-#include <unotools/processfactory.hxx>
-#include <osl/mutex.hxx>
-
-#include <hyphen.h>
-#include <hyphenimp.hxx>
-
-#include <linguistic/hyphdta.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/textenc.h>
-
-#include <linguistic/lngprops.hxx>
-#include <unotools/pathoptions.hxx>
-#include <unotools/useroptions.hxx>
-#include <unotools/lingucfg.hxx>
-#include <osl/file.hxx>
-
-#include "dictmgr.hxx"
-
-#include <stdio.h>
-#include <string.h>
-
-#include <list>
-#include <set>
-
-using namespace utl;
-using namespace osl;
-using namespace com::sun::star;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::linguistic2;
-using namespace linguistic;
-
-using ::rtl::OUString;
-
-// values asigned to capitalization types
-#define CAPTYPE_UNKNOWN 0
-#define CAPTYPE_NOCAP 1
-#define CAPTYPE_INITCAP 2
-#define CAPTYPE_ALLCAP 3
-#define CAPTYPE_MIXED 4
-
-// min, max
-#define Max(a,b) (a > b ? a : b)
-
-///////////////////////////////////////////////////////////////////////////
-
-
-Hyphenator::Hyphenator() :
- aEvtListeners ( GetLinguMutex() )
-{
- bDisposing = sal_False;
- pPropHelper = NULL;
- aDicts = NULL;
- numdict = 0;
-}
-
-Hyphenator::~Hyphenator()
-{
- if (numdict && aDicts)
- {
- for (int i=0; i < numdict; ++i)
- {
- delete aDicts[i].apCC;
- if (aDicts[i].aPtr)
- hnj_hyphen_free(aDicts[i].aPtr);
- }
- }
- delete[] aDicts;
-
- if (pPropHelper)
- {
- pPropHelper->RemoveAsPropListener();
- delete pPropHelper;
- }
-}
-
-PropertyHelper_Hyphenation& Hyphenator::GetPropHelper_Impl()
-{
- if (!pPropHelper)
- {
- Reference< XPropertySet > xPropSet( GetLinguProperties(), UNO_QUERY );
-
- pPropHelper = new PropertyHelper_Hyphenation ((XHyphenator *) this, xPropSet );
- pPropHelper->AddAsPropListener(); //! after a reference is established
- }
- return *pPropHelper;
-}
-
-
-Sequence< Locale > SAL_CALL Hyphenator::getLocales()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- // this routine should return the locales supported by the installed
- // dictionaries.
-
- if (!numdict)
- {
- SvtLinguConfig aLinguCfg;
-
- // get list of dictionaries-to-use
- // (or better speaking: the list of dictionaries using the
- // new configuration entries).
- std::list< SvtLinguConfigDictionaryEntry > aDics;
- uno::Sequence< rtl::OUString > aFormatList;
- aLinguCfg.GetSupportedDictionaryFormatsFor( A2OU("Hyphenators"),
- A2OU("org.openoffice.lingu.LibHnjHyphenator"), aFormatList );
- sal_Int32 nLen = aFormatList.getLength();
- for (sal_Int32 i = 0; i < nLen; ++i)
- {
- std::vector< SvtLinguConfigDictionaryEntry > aTmpDic(
- aLinguCfg.GetActiveDictionariesByFormat( aFormatList[i] ) );
- aDics.insert( aDics.end(), aTmpDic.begin(), aTmpDic.end() );
- }
-
- //!! for compatibility with old dictionaries (the ones not using extensions
- //!! or new configuration entries, but still using the dictionary.lst file)
- //!! Get the list of old style spell checking dictionaries to use...
- std::vector< SvtLinguConfigDictionaryEntry > aOldStyleDics(
- GetOldStyleDics( "HYPH" ) );
-
- // to prefer dictionaries with configuration entries we will only
- // use those old style dictionaries that add a language that
- // is not yet supported by the list od new style dictionaries
- MergeNewStyleDicsAndOldStyleDics( aDics, aOldStyleDics );
-
- numdict = aDics.size();
- if (numdict)
- {
- // get supported locales from the dictionaries-to-use...
- sal_Int32 k = 0;
- std::set< rtl::OUString, lt_rtl_OUString > aLocaleNamesSet;
- std::list< SvtLinguConfigDictionaryEntry >::const_iterator aDictIt;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- {
- uno::Sequence< rtl::OUString > aLocaleNames( aDictIt->aLocaleNames );
- sal_Int32 nLen2 = aLocaleNames.getLength();
- for (k = 0; k < nLen2; ++k)
- {
- aLocaleNamesSet.insert( aLocaleNames[k] );
- }
- }
- // ... and add them to the resulting sequence
- aSuppLocales.realloc( aLocaleNamesSet.size() );
- std::set< rtl::OUString, lt_rtl_OUString >::const_iterator aItB;
- k = 0;
- for (aItB = aLocaleNamesSet.begin(); aItB != aLocaleNamesSet.end(); ++aItB)
- {
- Locale aTmp( MsLangId::convertLanguageToLocale(
- MsLangId::convertIsoStringToLanguage( *aItB )));
- aSuppLocales[k++] = aTmp;
- }
-
- //! For each dictionary and each locale we need a seperate entry.
- //! If this results in more than one dictionary per locale than (for now)
- //! it is undefined which dictionary gets used.
- //! In the future the implementation should support using several dictionaries
- //! for one locale.
- numdict = 0;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- numdict = numdict + aDictIt->aLocaleNames.getLength();
-
- // add dictionary information
- aDicts = new HDInfo[numdict];
-
- k = 0;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- {
- if (aDictIt->aLocaleNames.getLength() > 0 &&
- aDictIt->aLocations.getLength() > 0)
- {
- uno::Sequence< rtl::OUString > aLocaleNames( aDictIt->aLocaleNames );
- sal_Int32 nLocales = aLocaleNames.getLength();
-
- // currently only one language per dictionary is supported in the actual implementation...
- // Thus here we work-around this by adding the same dictionary several times.
- // Once for each of it's supported locales.
- for (sal_Int32 i = 0; i < nLocales; ++i)
- {
- aDicts[k].aPtr = NULL;
- aDicts[k].eEnc = RTL_TEXTENCODING_DONTKNOW;
- aDicts[k].aLoc = MsLangId::convertLanguageToLocale(
- MsLangId::convertIsoStringToLanguage( aDictIt->aLocaleNames[i] ));
- aDicts[k].apCC = new CharClass( aDicts[k].aLoc );
- // also both files have to be in the same directory and the
- // file names must only differ in the extension (.aff/.dic).
- // Thus we use the first location only and strip the extension part.
- rtl::OUString aLocation = aDictIt->aLocations[0];
- sal_Int32 nPos = aLocation.lastIndexOf( '.' );
- aLocation = aLocation.copy( 0, nPos );
- aDicts[k].aName = aLocation;
-
- ++k;
- }
- }
- }
- DBG_ASSERT( k == numdict, "index mismatch?" );
- }
- else
- {
- /* no dictionary found so register no dictionaries */
- numdict = 0;
- aDicts = NULL;
- aSuppLocales.realloc(0);
- }
- }
-
- return aSuppLocales;
-}
-
-
-
-sal_Bool SAL_CALL Hyphenator::hasLocale(const Locale& rLocale)
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!aSuppLocales.getLength())
- getLocales();
-
- const Locale *pLocale = aSuppLocales.getConstArray();
- sal_Int32 nLen = aSuppLocales.getLength();
- for (sal_Int32 i = 0; i < nLen; ++i)
- {
- if (rLocale == pLocale[i])
- {
- bRes = sal_True;
- break;
- }
- }
- return bRes;
-}
-
-
-Reference< XHyphenatedWord > SAL_CALL Hyphenator::hyphenate( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- sal_Int16 nMaxLeading,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw (com::sun::star::uno::RuntimeException, com::sun::star::lang::IllegalArgumentException)
-{
- int nHyphenationPos = -1;
- int nHyphenationPosAlt = -1;
- int nHyphenationPosAltHyph = -1;
- int wordlen;
- char *hyphens;
- char *lcword;
- int k = 0;
-
- PropertyHelper_Hyphenation& rHelper = GetPropHelper();
- rHelper.SetTmpPropVals(aProperties);
- sal_Int16 minTrail = rHelper.GetMinTrailing();
- sal_Int16 minLead = rHelper.GetMinLeading();
- sal_Int16 minLen = rHelper.GetMinWordLength();
-
- HyphenDict *dict = NULL;
- rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
- CharClass * pCC = NULL;
-
- Reference< XHyphenatedWord > xRes;
-
- k = -1;
- for (int j = 0; j < numdict; j++)
- {
- if (aLocale == aDicts[j].aLoc)
- k = j;
- }
-
- // if we have a hyphenation dictionary matching this locale
- if (k != -1)
- {
- // if this dictinary has not been loaded yet do that
- if (!aDicts[k].aPtr)
- {
- OUString DictFN = aDicts[k].aName + A2OU(".dic");
- OUString dictpath;
-
- osl::FileBase::getSystemPathFromFileURL( DictFN, dictpath );
- OString sTmp( OU2ENC( dictpath, osl_getThreadTextEncoding() ) );
-
-#if defined(WNT)
- // workaround for Windows specifc problem that the
- // path length in calls to 'fopen' is limted to somewhat
- // about 120+ characters which will usually be exceed when
- // using dictionaries as extensions.
- sTmp = Win_GetShortPathName( dictpath );
-#endif
-
- if ( ( dict = hnj_hyphen_load ( sTmp.getStr()) ) == NULL )
- {
- fprintf(stderr, "Couldn't find file %s\n", OU2ENC(dictpath, osl_getThreadTextEncoding()) );
- return NULL;
- }
- aDicts[k].aPtr = dict;
- aDicts[k].eEnc = getTextEncodingFromCharset(dict->cset);
- }
-
- // other wise hyphenate the word with that dictionary
- dict = aDicts[k].aPtr;
- eEnc = aDicts[k].eEnc;
- pCC = aDicts[k].apCC;
-
- // we don't want to work with a default text encoding since following incorrect
- // results may occur only for specific text and thus may be hard to notice.
- // Thus better always make a clean exit here if the text encoding is in question.
- // Hopefully something not working at all will raise proper attention quickly. ;-)
- DBG_ASSERT( eEnc != RTL_TEXTENCODING_DONTKNOW, "failed to get text encoding! (maybe incorrect encoding string in file)" );
- if (eEnc == RTL_TEXTENCODING_DONTKNOW)
- return NULL;
-
- sal_uInt16 ct = CAPTYPE_UNKNOWN;
- ct = capitalType(aWord, pCC);
-
- // first convert any smart quotes or apostrophes to normal ones
- OUStringBuffer rBuf(aWord);
- sal_Int32 nc = rBuf.getLength();
- sal_Unicode ch;
- for (sal_Int32 ix=0; ix < nc; ix++)
- {
- ch = rBuf.charAt(ix);
- if ((ch == 0x201C) || (ch == 0x201D))
- rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((ch == 0x2018) || (ch == 0x2019))
- rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
-
- // now convert word to all lowercase for pattern recognition
- OUString nTerm(makeLowerCase(nWord, pCC));
-
- // now convert word to needed encoding
- OString encWord(OU2ENC(nTerm,eEnc));
-
- wordlen = encWord.getLength();
- lcword = new char[wordlen + 1];
- hyphens = new char[wordlen + 5];
-
- char ** rep = NULL; // replacements of discretionary hyphenation
- int * pos = NULL; // array of [hyphenation point] minus [deletion position]
- int * cut = NULL; // length of deletions in original word
-
- // copy converted word into simple char buffer
- strcpy(lcword,encWord.getStr());
-
- // now strip off any ending periods
- int n = wordlen-1;
- while((n >=0) && (lcword[n] == '.'))
- n--;
- n++;
- if (n > 0)
- {
- const bool bFailed = 0 != hnj_hyphen_hyphenate3( dict, lcword, n, hyphens, NULL,
- &rep, &pos, &cut, minLead, minTrail,
- Max(dict->clhmin, Max(dict->clhmin, 2) + Max(0, minLead - Max(dict->lhmin, 2))),
- Max(dict->crhmin, Max(dict->crhmin, 2) + Max(0, minTrail - Max(dict->rhmin, 2))) );
- if (bFailed)
- {
- //whoops something did not work
- delete[] hyphens;
- delete[] lcword;
- if (rep)
- {
- for(int j = 0; j < n; j++)
- {
- if (rep[j]) free(rep[j]);
- }
- free(rep);
- }
- if (pos) free(pos);
- if (cut) free(cut);
- return NULL;
- }
- }
-
- // now backfill hyphens[] for any removed trailing periods
- for (int c = n; c < wordlen; c++) hyphens[c] = '0';
- hyphens[wordlen] = '\0';
-
- sal_Int32 Leading = GetPosInWordToCheck( aWord, nMaxLeading );
-
- for (sal_Int32 i = 0; i < n; i++)
- {
- int leftrep = 0;
- sal_Bool hit = (n >= minLen);
- if (!rep || !rep[i] || (i >= n))
- {
- hit = hit && (hyphens[i]&1) && (i < Leading);
- hit = hit && (i >= (minLead-1) );
- hit = hit && ((n - i - 1) >= minTrail);
- }
- else
- {
- // calculate change character length before hyphenation point signed with '='
- for (char * c = rep[i]; *c && (*c != '='); c++)
- {
- if (eEnc == RTL_TEXTENCODING_UTF8)
- {
- if (((unsigned char) *c) >> 6 != 2)
- leftrep++;
- }
- else
- leftrep++;
- }
- hit = hit && (hyphens[i]&1) && ((i + leftrep - pos[i]) < Leading);
- hit = hit && ((i + leftrep - pos[i]) >= (minLead-1) );
- hit = hit && ((n - i - 1 + sal::static_int_cast< sal_sSize >(strlen(rep[i])) - leftrep - 1) >= minTrail);
- }
- if (hit)
- {
- nHyphenationPos = i;
- if (rep && (i < n) && rep[i])
- {
- nHyphenationPosAlt = i - pos[i];
- nHyphenationPosAltHyph = i + leftrep - pos[i];
- }
- }
- }
-
- if (nHyphenationPos == -1)
- {
- xRes = NULL;
- }
- else
- {
- if (rep && rep[nHyphenationPos])
- {
- // remove equal sign
- char * s = rep[nHyphenationPos];
- int eq = 0;
- for (; *s; s++)
- {
- if (*s == '=') eq = 1;
- if (eq) *s = *(s + 1);
- }
- OUString repHyphlow(rep[nHyphenationPos], strlen(rep[nHyphenationPos]), eEnc);
- OUString repHyph;
- switch (ct)
- {
- case CAPTYPE_ALLCAP:
- {
- repHyph = makeUpperCase(repHyphlow, pCC);
- break;
- }
- case CAPTYPE_INITCAP:
- {
- if (nHyphenationPosAlt == -1)
- repHyph = makeInitCap(repHyphlow, pCC);
- else
- repHyph = repHyphlow;
- break;
- }
- default:
- {
- repHyph = repHyphlow;
- break;
- }
- }
-
- // handle shortening
- sal_Int16 nPos = (sal_Int16) ((nHyphenationPosAltHyph < nHyphenationPos) ?
- nHyphenationPosAltHyph : nHyphenationPos);
- // dicretionary hyphenation
- xRes = HyphenatedWord::CreateHyphenatedWord( aWord, LocaleToLanguage( aLocale ), nPos,
- aWord.replaceAt(nHyphenationPosAlt + 1, cut[nHyphenationPos], repHyph),
- (sal_Int16) nHyphenationPosAltHyph);
- }
- else
- {
- xRes = HyphenatedWord::CreateHyphenatedWord( aWord, LocaleToLanguage( aLocale ),
- (sal_Int16)nHyphenationPos, aWord, (sal_Int16) nHyphenationPos);
- }
- }
-
- delete[] lcword;
- delete[] hyphens;
- if (rep)
- {
- for(int j = 0; j < n; j++)
- {
- if (rep[j]) free(rep[j]);
- }
- free(rep);
- }
- if (pos) free(pos);
- if (cut) free(cut);
- return xRes;
- }
- return NULL;
-}
-
-
-Reference < XHyphenatedWord > SAL_CALL Hyphenator::queryAlternativeSpelling(
- const ::rtl::OUString& /*aWord*/,
- const ::com::sun::star::lang::Locale& /*aLocale*/,
- sal_Int16 /*nIndex*/,
- const ::com::sun::star::beans::PropertyValues& /*aProperties*/ )
- throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
-{
- /* alternative spelling isn't supported by tex dictionaries */
- /* XXX: OOo's extended libhjn algorithm can support alternative spellings with extended TeX dic. */
- /* TASK: implement queryAlternativeSpelling() */
- return NULL;
-}
-
-Reference< XPossibleHyphens > SAL_CALL Hyphenator::createPossibleHyphens( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
-{
- int wordlen;
- char *hyphens;
- char *lcword;
- int k;
-
- PropertyHelper_Hyphenation& rHelper = GetPropHelper();
- rHelper.SetTmpPropVals(aProperties);
- sal_Int16 minTrail = rHelper.GetMinTrailing();
- sal_Int16 minLead = rHelper.GetMinLeading();
-
- HyphenDict *dict = NULL;
- rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
- CharClass* pCC = NULL;
-
- Reference< XPossibleHyphens > xRes;
-
- k = -1;
- for (int j = 0; j < numdict; j++)
- {
- if (aLocale == aDicts[j].aLoc) k = j;
- }
-
- // if we have a hyphenation dictionary matching this locale
- if (k != -1)
- {
- // if this dictioanry has not been loaded yet do that
- if (!aDicts[k].aPtr)
- {
- OUString DictFN = aDicts[k].aName + A2OU(".dic");
- OUString dictpath;
-
- osl::FileBase::getSystemPathFromFileURL( DictFN, dictpath );
- OString sTmp( OU2ENC( dictpath, osl_getThreadTextEncoding() ) );
-
-#if defined(WNT)
- // workaround for Windows specifc problem that the
- // path length in calls to 'fopen' is limted to somewhat
- // about 120+ characters which will usually be exceed when
- // using dictionaries as extensions.
- sTmp = Win_GetShortPathName( dictpath );
-#endif
-
- if ( ( dict = hnj_hyphen_load ( sTmp.getStr()) ) == NULL )
- {
- fprintf(stderr, "Couldn't find file %s and %s\n", sTmp.getStr(), OU2ENC(dictpath, osl_getThreadTextEncoding()) );
- return NULL;
- }
- aDicts[k].aPtr = dict;
- aDicts[k].eEnc = getTextEncodingFromCharset(dict->cset);
- }
-
- // other wise hyphenate the word with that dictionary
- dict = aDicts[k].aPtr;
- eEnc = aDicts[k].eEnc;
- pCC = aDicts[k].apCC;
-
- // we don't want to work with a default text encoding since following incorrect
- // results may occur only for specific text and thus may be hard to notice.
- // Thus better always make a clean exit here if the text encoding is in question.
- // Hopefully something not working at all will raise proper attention quickly. ;-)
- DBG_ASSERT( eEnc != RTL_TEXTENCODING_DONTKNOW, "failed to get text encoding! (maybe incorrect encoding string in file)" );
- if (eEnc == RTL_TEXTENCODING_DONTKNOW)
- return NULL;
-
- // first handle smart quotes both single and double
- OUStringBuffer rBuf(aWord);
- sal_Int32 nc = rBuf.getLength();
- sal_Unicode ch;
- for (sal_Int32 ix=0; ix < nc; ix++)
- {
- ch = rBuf.charAt(ix);
- if ((ch == 0x201C) || (ch == 0x201D))
- rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((ch == 0x2018) || (ch == 0x2019))
- rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
-
- // now convert word to all lowercase for pattern recognition
- OUString nTerm(makeLowerCase(nWord, pCC));
-
- // now convert word to needed encoding
- OString encWord(OU2ENC(nTerm,eEnc));
-
- wordlen = encWord.getLength();
- lcword = new char[wordlen+1];
- hyphens = new char[wordlen+5];
- char ** rep = NULL; // replacements of discretionary hyphenation
- int * pos = NULL; // array of [hyphenation point] minus [deletion position]
- int * cut = NULL; // length of deletions in original word
-
- // copy converted word into simple char buffer
- strcpy(lcword,encWord.getStr());
-
- // first remove any trailing periods
- int n = wordlen-1;
- while((n >=0) && (lcword[n] == '.'))
- n--;
- n++;
- if (n > 0)
- {
- const bool bFailed = 0 != hnj_hyphen_hyphenate3(dict, lcword, n, hyphens, NULL,
- &rep, &pos, &cut, minLead, minTrail,
- Max(dict->clhmin, Max(dict->clhmin, 2) + Max(0, minLead - Max(dict->lhmin, 2))),
- Max(dict->crhmin, Max(dict->crhmin, 2) + Max(0, minTrail - Max(dict->rhmin, 2))) );
- if (bFailed)
- {
- delete[] hyphens;
- delete[] lcword;
-
- if (rep)
- {
- for(int j = 0; j < n; j++)
- {
- if (rep[j]) free(rep[j]);
- }
- free(rep);
- }
- if (pos) free(pos);
- if (cut) free(cut);
-
- return NULL;
- }
- }
- // now backfill hyphens[] for any removed periods
- for (int c = n; c < wordlen; c++)
- hyphens[c] = '0';
- hyphens[wordlen] = '\0';
-
- sal_Int16 nHyphCount = 0;
- sal_Int16 i;
-
- for ( i = 0; i < encWord.getLength(); i++)
- {
- if (hyphens[i]&1 && (!rep || !rep[i]))
- nHyphCount++;
- }
-
- Sequence< sal_Int16 > aHyphPos(nHyphCount);
- sal_Int16 *pPos = aHyphPos.getArray();
- OUStringBuffer hyphenatedWordBuffer;
- OUString hyphenatedWord;
- nHyphCount = 0;
-
- for (i = 0; i < nWord.getLength(); i++)
- {
- hyphenatedWordBuffer.append(aWord[i]);
- // hyphenation position (not alternative)
- if (hyphens[i]&1 && (!rep || !rep[i]))
- {
- pPos[nHyphCount] = i;
- hyphenatedWordBuffer.append(sal_Unicode('='));
- nHyphCount++;
- }
- }
-
- hyphenatedWord = hyphenatedWordBuffer.makeStringAndClear();
-
- xRes = PossibleHyphens::CreatePossibleHyphens( aWord, LocaleToLanguage( aLocale ),
- hyphenatedWord, aHyphPos );
-
- delete[] hyphens;
- delete[] lcword;
-
- if (rep)
- {
- for(int j = 0; j < n; j++)
- {
- if (rep[j]) free(rep[j]);
- }
- free(rep);
- }
- if (pos) free(pos);
- if (cut) free(cut);
-
- return xRes;
- }
-
- return NULL;
-}
-
-sal_uInt16 SAL_CALL Hyphenator::capitalType(const OUString& aTerm, CharClass * pCC)
-{
- sal_Int32 tlen = aTerm.getLength();
- if ((pCC) && (tlen))
- {
- String aStr(aTerm);
- sal_Int32 nc = 0;
- for (xub_StrLen tindex = 0; tindex < tlen; tindex++)
- {
- if (pCC->getCharacterType(aStr,tindex) & ::com::sun::star::i18n::KCharacterType::UPPER)
- nc++;
- }
-
- if (nc == 0)
- return (sal_uInt16) CAPTYPE_NOCAP;
- if (nc == tlen)
- return (sal_uInt16) CAPTYPE_ALLCAP;
- if ((nc == 1) && (pCC->getCharacterType(aStr,0) & ::com::sun::star::i18n::KCharacterType::UPPER))
- return (sal_uInt16) CAPTYPE_INITCAP;
-
- return (sal_uInt16) CAPTYPE_MIXED;
- }
- return (sal_uInt16) CAPTYPE_UNKNOWN;
-}
-
-OUString SAL_CALL Hyphenator::makeLowerCase(const OUString& aTerm, CharClass * pCC)
-{
- if (pCC)
- return pCC->toLower_rtl(aTerm, 0, aTerm.getLength());
- return aTerm;
-}
-
-OUString SAL_CALL Hyphenator::makeUpperCase(const OUString& aTerm, CharClass * pCC)
-{
- if (pCC)
- return pCC->toUpper_rtl(aTerm, 0, aTerm.getLength());
- return aTerm;
-}
-
-
-OUString SAL_CALL Hyphenator::makeInitCap(const OUString& aTerm, CharClass * pCC)
-{
- sal_Int32 tlen = aTerm.getLength();
- if ((pCC) && (tlen))
- {
- OUString bTemp = aTerm.copy(0,1);
- if (tlen > 1)
- return ( pCC->toUpper_rtl(bTemp, 0, 1) + pCC->toLower_rtl(aTerm,1,(tlen-1)) );
-
- return pCC->toUpper_rtl(bTemp, 0, 1);
- }
- return aTerm;
-}
-
-
-Reference< XInterface > SAL_CALL Hyphenator_CreateInstance(
- const Reference< XMultiServiceFactory > & /*rSMgr*/ )
- throw(Exception)
-{
- Reference< XInterface > xService = (cppu::OWeakObject*) new Hyphenator;
- return xService;
-}
-
-
-sal_Bool SAL_CALL Hyphenator::addLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!bDisposing && rxLstnr.is())
- {
- bRes = GetPropHelper().addLinguServiceEventListener( rxLstnr );
- }
- return bRes;
-}
-
-
-sal_Bool SAL_CALL Hyphenator::removeLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!bDisposing && rxLstnr.is())
- {
- bRes = GetPropHelper().removeLinguServiceEventListener( rxLstnr );
- }
- return bRes;
-}
-
-
-OUString SAL_CALL Hyphenator::getServiceDisplayName( const Locale& /*rLocale*/ )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
- return A2OU( "Libhyphen Hyphenator" );
-}
-
-
-void SAL_CALL Hyphenator::initialize( const Sequence< Any >& rArguments )
- throw(Exception, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!pPropHelper)
- {
- sal_Int32 nLen = rArguments.getLength();
- if (2 == nLen)
- {
- Reference< XPropertySet > xPropSet;
- rArguments.getConstArray()[0] >>= xPropSet;
- //rArguments.getConstArray()[1] >>= xDicList;
-
- //! Pointer allows for access of the non-UNO functions.
- //! And the reference to the UNO-functions while increasing
- //! the ref-count and will implicitly free the memory
- //! when the object is not longer used.
- pPropHelper = new PropertyHelper_Hyphenation( (XHyphenator *) this, xPropSet );
- pPropHelper->AddAsPropListener(); //! after a reference is established
- }
- else {
- OSL_FAIL( "wrong number of arguments in sequence" );
- }
- }
-}
-
-
-void SAL_CALL Hyphenator::dispose()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing)
- {
- bDisposing = sal_True;
- EventObject aEvtObj( (XHyphenator *) this );
- aEvtListeners.disposeAndClear( aEvtObj );
- if (pPropHelper)
- {
- pPropHelper->RemoveAsPropListener();
- delete pPropHelper;
- pPropHelper = NULL;
- }
- }
-}
-
-
-void SAL_CALL Hyphenator::addEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing && rxListener.is())
- aEvtListeners.addInterface( rxListener );
-}
-
-
-void SAL_CALL Hyphenator::removeEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing && rxListener.is())
- aEvtListeners.removeInterface( rxListener );
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-// Service specific part
-//
-
-OUString SAL_CALL Hyphenator::getImplementationName()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- return getImplementationName_Static();
-}
-
-
-sal_Bool SAL_CALL Hyphenator::supportsService( const OUString& ServiceName )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
- return sal_False;
-}
-
-
-Sequence< OUString > SAL_CALL Hyphenator::getSupportedServiceNames()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- return getSupportedServiceNames_Static();
-}
-
-
-Sequence< OUString > Hyphenator::getSupportedServiceNames_Static()
- throw()
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- Sequence< OUString > aSNS( 1 ); // auch mehr als 1 Service moeglich
- aSNS.getArray()[0] = A2OU( SN_HYPHENATOR );
- return aSNS;
-}
-
-void * SAL_CALL Hyphenator_getFactory( const sal_Char * pImplName,
- XMultiServiceFactory * pServiceManager, void * )
-{
- void * pRet = 0;
- if ( !Hyphenator::getImplementationName_Static().compareToAscii( pImplName ) )
- {
- Reference< XSingleServiceFactory > xFactory =
- cppu::createOneInstanceFactory(
- pServiceManager,
- Hyphenator::getImplementationName_Static(),
- Hyphenator_CreateInstance,
- Hyphenator::getSupportedServiceNames_Static());
- // acquire, because we return an interface pointer instead of a reference
- xFactory->acquire();
- pRet = xFactory.get();
- }
- return pRet;
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-
-#undef CAPTYPE_UNKNOWN
-#undef CAPTYPE_NOCAP
-#undef CAPTYPE_INITCAP
-#undef CAPTYPE_ALLCAP
-#undef CAPTYPE_MIXED
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx
deleted file mode 100644
index 07815d43e..000000000
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-
-#ifndef _LINGU2_HYPHENIMP_HXX_
-#define _LINGU2_HYPHENIMP_HXX_
-
-#include <uno/lbnames.h> // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
-#include <cppuhelper/implbase1.hxx> // helper for implementations
-#include <cppuhelper/implbase6.hxx> // helper for implementations
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XServiceDisplayName.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyValues.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/linguistic2/XHyphenator.hpp>
-#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
-#include <com/sun/star/linguistic2/XLinguServiceEventBroadcaster.hpp>
-#include <tools/table.hxx>
-
-#include <unotools/charclass.hxx>
-
-#include <linguistic/misc.hxx>
-#include <linguistic/lngprophelp.hxx>
-
-#include <lingutil.hxx>
-#include <stdio.h>
-
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::linguistic2;
-
-
-///////////////////////////////////////////////////////////////////////////
-
-
-struct HDInfo {
- HyphenDict * aPtr;
- OUString aName;
- Locale aLoc;
- rtl_TextEncoding eEnc;
- CharClass * apCC;
-};
-
-
-
-class Hyphenator :
- public cppu::WeakImplHelper6
- <
- XHyphenator,
- XLinguServiceEventBroadcaster,
- XInitialization,
- XComponent,
- XServiceInfo,
- XServiceDisplayName
- >
-{
- Sequence< Locale > aSuppLocales;
- HDInfo * aDicts;
- sal_Int32 numdict;
-
- ::cppu::OInterfaceContainerHelper aEvtListeners;
- Reference< XMultiServiceFactory > rSMgr;
- linguistic::PropertyHelper_Hyphenation* pPropHelper;
- sal_Bool bDisposing;
-
- // disallow copy-constructor and assignment-operator for now
- Hyphenator(const Hyphenator &);
- Hyphenator & operator = (const Hyphenator &);
-
- linguistic::PropertyHelper_Hyphenation& GetPropHelper_Impl();
- linguistic::PropertyHelper_Hyphenation& GetPropHelper()
- {
- return pPropHelper ? *pPropHelper : GetPropHelper_Impl();
- }
-
-public:
- Hyphenator();
-
- virtual ~Hyphenator();
-
- // XSupportedLocales (for XHyphenator)
- virtual Sequence< Locale > SAL_CALL getLocales() throw(RuntimeException);
- virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale ) throw(RuntimeException);
-
- // XHyphenator
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XHyphenatedWord > SAL_CALL hyphenate( const ::rtl::OUString& aWord, const ::com::sun::star::lang::Locale& aLocale, sal_Int16 nMaxLeading, const ::com::sun::star::beans::PropertyValues& aProperties ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XHyphenatedWord > SAL_CALL queryAlternativeSpelling( const ::rtl::OUString& aWord, const ::com::sun::star::lang::Locale& aLocale, sal_Int16 nIndex, const ::com::sun::star::beans::PropertyValues& aProperties ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XPossibleHyphens > SAL_CALL createPossibleHyphens( const ::rtl::OUString& aWord, const ::com::sun::star::lang::Locale& aLocale, const ::com::sun::star::beans::PropertyValues& aProperties ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
- // XLinguServiceEventBroadcaster
- virtual sal_Bool SAL_CALL addLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
- virtual sal_Bool SAL_CALL removeLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
-
- // XServiceDisplayName
- virtual OUString SAL_CALL getServiceDisplayName( const Locale& rLocale ) throw(RuntimeException);
-
- // XInitialization
- virtual void SAL_CALL initialize( const Sequence< Any >& rArguments ) throw(Exception, RuntimeException);
-
- // XComponent
- virtual void SAL_CALL dispose() throw(RuntimeException);
- virtual void SAL_CALL addEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
- virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
-
- // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
-
-
- static inline OUString getImplementationName_Static() throw();
- static Sequence< OUString > getSupportedServiceNames_Static() throw();
-
-
-private:
- sal_uInt16 SAL_CALL capitalType(const OUString&, CharClass *);
- OUString SAL_CALL makeLowerCase(const OUString&, CharClass *);
- OUString SAL_CALL makeUpperCase(const OUString&, CharClass *);
- OUString SAL_CALL makeInitCap(const OUString&, CharClass *);
-};
-
-inline OUString Hyphenator::getImplementationName_Static() throw()
-{
- return A2OU( "org.openoffice.lingu.LibHnjHyphenator" );
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
deleted file mode 100644
index c09723d52..000000000
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
+++ /dev/null
@@ -1,99 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..$/..
-
-PRJNAME = lingucomponent
-TARGET = hyphen_lib
-ENABLE_EXCEPTIONS=TRUE
-USE_DEFFILE=TRUE
-
-.IF "$(GUI)"=="UNX" || "$(COM)"=="GCC"
-HNJLIB=-lhyphen
-.ELSE
-HNJLIB=hyphen.lib
-.ENDIF
-
-#----- Settings ---------------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-.IF "$(SYSTEM_HUNSPELL)" != "YES"
-HUNSPELL_CFLAGS += -I$(SOLARINCDIR)$/hunspell -DHUNSPELL_STATIC
-.ENDIF
-
-CFLAGS += -I..$/..$/..$/lingutil $(HUNSPELL_CFLAGS)
-
-EXCEPTIONSFILES= \
- $(SLO)$/hyphenimp.obj
-
-SLOFILES= \
- $(SLO)$/hreg.obj\
- $(SLO)$/hyphenimp.obj
-
-REALNAME:=hyphen
-SHL1TARGET= $(REALNAME)$(DLLPOSTFIX)
-
-SHL1STDLIBS= \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(I18NISOLANGLIB) \
- $(TOOLSLIB) \
- $(SVLLIB) \
- $(SALLIB) \
- $(UNOTOOLSLIB) \
- $(LNGLIB) \
- $(HNJLIB) \
- $(ULINGULIB) \
- $(HUNSPELLLIB)
-
-# build DLL
-SHL1LIBS= $(SLB)$/$(TARGET).lib $(SLB)$/libulingu.lib
-SHL1IMPLIB= i$(REALNAME)
-SHL1DEPN= $(SHL1LIBS)
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
-
-# build DEF file
-DEF1NAME =$(SHL1TARGET)
-DEF1EXPORTFILE= exports.dxp
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
-ALLTAR : $(MISC)/hyphen.component
-
-$(MISC)/hyphen.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- hyphen.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt hyphen.component
diff --git a/lingucomponent/source/languageguessing/altstrfunc.cxx b/lingucomponent/source/languageguessing/altstrfunc.cxx
deleted file mode 100644
index 5461a2267..000000000
--- a/lingucomponent/source/languageguessing/altstrfunc.cxx
+++ /dev/null
@@ -1,50 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/***************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-#include "altstrfunc.hxx"
-
-#include <sal/types.h>
-
-int start(const std::string &s1, const std::string &s2){
- size_t i;
- int ret = 0;
-
- size_t min = s1.length();
- if (min > s2.length())
- min = s2.length();
-
- for(i = 0; i < min && s2[i] && s1[i] && !ret; i++){
- ret = toupper(s1[i]) - toupper(s2[i]);
- if(s1[i] == '.' || s2[i] == '.'){ret = 0;}//. is a neutral character
- }
- return ret;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/languageguessing/altstrfunc.hxx b/lingucomponent/source/languageguessing/altstrfunc.hxx
deleted file mode 100644
index 5ddeda4ee..000000000
--- a/lingucomponent/source/languageguessing/altstrfunc.hxx
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/***************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef _ALT_STRFUNC_HXX_
-#define _ALT_STRFUNC_HXX_
-
-#include <string>
-#include <guess.hxx>
-
-inline bool isSeparator(const char c){
- return c == GUESS_SEPARATOR_OPEN || c == GUESS_SEPARATOR_SEP || c == GUESS_SEPARATOR_CLOSE || c == '\0';
-}
-
-int start(const std::string &s1, const std::string &s2);
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/languageguessing/guess.cxx b/lingucomponent/source/languageguessing/guess.cxx
deleted file mode 100644
index 2a377dc0f..000000000
--- a/lingucomponent/source/languageguessing/guess.cxx
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/***************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-#include <iostream>
-#include <string.h>
-
-#include <libtextcat/textcat.h>
-#include <altstrfunc.hxx>
-#include <guess.hxx>
-
-using namespace std;
-
-Guess::Guess()
-{
- language_str = DEFAULT_LANGUAGE;
- country_str = DEFAULT_COUNTRY;
- encoding_str = DEFAULT_ENCODING;
-}
-
-/*
-* this use a char * string to build the guess object
-* a string like those is made as : [language-country-encoding]...
-*
-*/
-
-Guess::Guess(char * guess_str)
-{
- Guess();
-
- string lang;
- string country;
- string enc;
-
- //if the guess is not like "UNKNOWN" or "SHORT", go into the brackets
-// if(strncmp((const char*)(guess_str + 1), _TEXTCAT_RESULT_UNKOWN, strlen(_TEXTCAT_RESULT_UNKOWN)) != 0
-// &&
-// strncmp((const char*)(guess_str + 1), _TEXTCAT_RESULT_SHORT, strlen(_TEXTCAT_RESULT_SHORT)) != 0)
-// {
- if(strcmp((const char*)(guess_str + 1), _TEXTCAT_RESULT_UNKOWN) != 0
- &&
- strcmp((const char*)(guess_str + 1), _TEXTCAT_RESULT_SHORT) != 0)
- {
-
- int current_pointer = 0;
-
- //this is to go to the first char of the guess string ( the '[' of "[en-US-utf8]" )
- while(!isSeparator(guess_str[current_pointer])){
- current_pointer++;
- }
- current_pointer++;
-
- //this is to pick up the language ( the "en" from "[en-US-utf8]" )
- while(!isSeparator(guess_str[current_pointer])){
- lang+=guess_str[current_pointer];
- current_pointer++;
- }
- current_pointer++;
-
- //this is to pick up the country ( the "US" from "[en-US-utf8]" )
- while(!isSeparator(guess_str[current_pointer])){
- country+=guess_str[current_pointer];
- current_pointer++;
- }
- current_pointer++;
-
- //this is to pick up the encoding ( the "utf8" from "[en-US-utf8]" )
- while(!isSeparator(guess_str[current_pointer])){
- enc+=guess_str[current_pointer];
- current_pointer++;
- }
-
- if(lang!=""){//if not we use the default value
- language_str=lang;
- }
- country_str=country;
-
- if(enc!=""){//if not we use the default value
- encoding_str=enc;
- }
- }
-}
-
-Guess::~Guess(){}
-
-string Guess::GetLanguage()
-{
- return language_str;
-}
-
-string Guess::GetCountry()
-{
- return country_str;
-}
-
-string Guess::GetEncoding()
-{
- return encoding_str;
-}
-
-bool Guess::operator==(string lang)
-{
- string toString;
- toString += GetLanguage();
- toString += "-";
- toString += GetCountry();
- toString += "-";
- toString += GetEncoding();
- return start(toString, lang);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/languageguessing/guess.hxx b/lingucomponent/source/languageguessing/guess.hxx
deleted file mode 100644
index b05913bb2..000000000
--- a/lingucomponent/source/languageguessing/guess.hxx
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/***************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-#ifndef GUESS_H
-#define GUESS_H
-
-#define GUESS_SEPARATOR_OPEN '['
-#define GUESS_SEPARATOR_CLOSE ']'
-#define GUESS_SEPARATOR_SEP '-'
-#define DEFAULT_LANGUAGE ""
-#define DEFAULT_COUNTRY ""
-#define DEFAULT_ENCODING ""
-
-#include <string>
-
-using namespace std;
-
-/**
-@author Jocelyn Merand
- */
-class Guess{
- public:
-
- /**
- * Default init
- */
- Guess();
-
- /**
- * Init from a string like [en-UK-utf8] and the rank
- */
- Guess(char * guess_str);
-
- ~Guess();
-
- string GetLanguage();
- string GetCountry();
- string GetEncoding();
-
- bool operator==(string lang);
-
- protected:
- string language_str;
- string country_str;
- string encoding_str;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/languageguessing/guesslang.component b/lingucomponent/source/languageguessing/guesslang.component
deleted file mode 100644
index 633a489c3..000000000
--- a/lingucomponent/source/languageguessing/guesslang.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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.LanguageGuessing">
- <service name="com.sun.star.linguistic2.LanguageGuessing"/>
- </implementation>
-</component>
diff --git a/lingucomponent/source/languageguessing/guesslang.cxx b/lingucomponent/source/languageguessing/guesslang.cxx
deleted file mode 100644
index 49e033040..000000000
--- a/lingucomponent/source/languageguessing/guesslang.cxx
+++ /dev/null
@@ -1,435 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-#include <iostream>
-
-#include <tools/debug.hxx>
-
-#include <sal/config.h>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implementationentry.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <tools/string.hxx>
-
-#include <simpleguesser.hxx>
-#include <guess.hxx>
-
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/linguistic2/XLanguageGuessing.hpp>
-#include <unotools/pathoptions.hxx>
-#include <unotools/localfilehelper.hxx>
-#include <osl/thread.h>
-
-#include <sal/macros.h>
-
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::cppu;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::linguistic2;
-
-namespace css = ::com::sun::star;
-
-//==================================================================================================
-
-#define A2OU(x) ::rtl::OUString::createFromAscii( x )
-
-#define SERVICENAME "com.sun.star.linguistic2.LanguageGuessing"
-#define IMPLNAME "com.sun.star.lingu2.LanguageGuessing"
-
-static Sequence< OUString > getSupportedServiceNames_LangGuess_Impl()
-{
- Sequence<OUString> names(1);
- names[0] = A2OU( SERVICENAME );
- return names;
-}
-
-static OUString getImplementationName_LangGuess_Impl()
-{
- return A2OU( IMPLNAME );
-}
-
-static osl::Mutex & GetLangGuessMutex()
-{
- static osl::Mutex aMutex;
- return aMutex;
-}
-
-
-class LangGuess_Impl :
- public ::cppu::WeakImplHelper2<
- XLanguageGuessing,
- XServiceInfo >
-{
- SimpleGuesser m_aGuesser;
- bool m_bInitialized;
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-
- LangGuess_Impl( const LangGuess_Impl & ); // not defined
- LangGuess_Impl & operator =( const LangGuess_Impl & ); // not defined
-
- virtual ~LangGuess_Impl() {}
- void EnsureInitialized();
-
-public:
- explicit LangGuess_Impl(css::uno::Reference< css::uno::XComponentContext > const & rxContext);
-
- // XServiceInfo implementation
- virtual OUString SAL_CALL getImplementationName( ) throw(RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(RuntimeException);
- static Sequence< OUString > SAL_CALL getSupportedServiceNames_Static( );
-
- // XLanguageGuessing implementation
- virtual ::com::sun::star::lang::Locale SAL_CALL guessPrimaryLanguage( const ::rtl::OUString& aText, ::sal_Int32 nStartPos, ::sal_Int32 nLen ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL disableLanguages( const ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale >& aLanguages ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL enableLanguages( const ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale >& aLanguages ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getAvailableLanguages( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getEnabledLanguages( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getDisabledLanguages( ) throw (::com::sun::star::uno::RuntimeException);
-
- // implementation specific
- void SetFingerPrintsDB( const rtl::OUString &fileName ) throw (RuntimeException);
-
- static const OUString & SAL_CALL getImplementationName_Static() throw();
-
-};
-
-//*************************************************************************
-
-LangGuess_Impl::LangGuess_Impl(css::uno::Reference< css::uno::XComponentContext > const & rxContext) :
- m_bInitialized( false ),
- m_xContext( rxContext )
-{
-}
-
-//*************************************************************************
-
-void LangGuess_Impl::EnsureInitialized()
-{
- if (!m_bInitialized)
- {
- // set this to true at the very start to prevent loops because of
- // implicitly called functions below
- m_bInitialized = true;
-
- // set default fingerprint path to where those get installed
- String aPhysPath;
- String aURL( SvtPathOptions().GetFingerprintPath() );
- utl::LocalFileHelper::ConvertURLToPhysicalName( aURL, aPhysPath );
-#ifdef WNT
- aPhysPath += '\\';
-#else
- aPhysPath += '/';
-#endif
-
- SetFingerPrintsDB( aPhysPath );
-
- //
- // disable currently not functional languages...
- //
- struct LangCountry
- {
- const char *pLang;
- const char *pCountry;
- };
- LangCountry aDisable[] =
- {
- {"gv", ""}, {"sco", ""}, // no lang-id available yet...
-// {"hy", ""}, {"drt", ""}, // 0 bytes fingerprints...
- {"zh", "CN"}, {"zh", "TW"}, {"ja", ""}, {"ko", ""}, // not yet correct functional...
- {"ka", ""}, {"hi", ""}, {"mr", ""}, {"ne", ""},
- {"sa", ""}, {"ta", ""}, {"th", ""},
- {"qu", ""}, {"yi", ""}
- };
- sal_Int32 nNum = SAL_N_ELEMENTS(aDisable);
- Sequence< Locale > aDisableSeq( nNum );
- Locale *pDisableSeq = aDisableSeq.getArray();
- for (sal_Int32 i = 0; i < nNum; ++i)
- {
- Locale aLocale;
- aLocale.Language = OUString::createFromAscii( aDisable[i].pLang );
- aLocale.Country = OUString::createFromAscii( aDisable[i].pCountry );
- pDisableSeq[i] = aLocale;
- }
- disableLanguages( aDisableSeq );
- DBG_ASSERT( nNum == getDisabledLanguages().getLength(), "size mismatch" );
- }
-}
-
-//*************************************************************************
-
-Locale SAL_CALL LangGuess_Impl::guessPrimaryLanguage(
- const ::rtl::OUString& rText,
- ::sal_Int32 nStartPos,
- ::sal_Int32 nLen )
- throw (lang::IllegalArgumentException, uno::RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
-
- EnsureInitialized();
-
- lang::Locale aRes;
- if (nStartPos >=0 && nLen >= 0 && nStartPos + nLen <= rText.getLength())
- {
- OString o( OUStringToOString( rText.copy(nStartPos, nLen), RTL_TEXTENCODING_UTF8 ) );
- Guess g = m_aGuesser.GuessPrimaryLanguage((char*)o.getStr());
- aRes.Language = OUString::createFromAscii(g.GetLanguage().c_str());
- aRes.Country = OUString::createFromAscii(g.GetCountry().c_str());
- }
- else
- throw lang::IllegalArgumentException();
-
- return aRes;
-}
-
-//*************************************************************************
-#define DEFAULT_CONF_FILE_NAME "fpdb.conf"
-
-void LangGuess_Impl::SetFingerPrintsDB(
- const rtl::OUString &filePath )
- throw (RuntimeException)
-{
- //! text encoding for file name / path needs to be in the same encoding the OS uses
- OString path = OUStringToOString( filePath, osl_getThreadTextEncoding() );
- OString conf_file_name( DEFAULT_CONF_FILE_NAME );
- OString conf_file_path(path);
- conf_file_path += conf_file_name;
-
- m_aGuesser.SetDBPath((const char*)conf_file_path.getStr(), (const char*)path.getStr());
-}
-
-//*************************************************************************
-uno::Sequence< Locale > SAL_CALL LangGuess_Impl::getAvailableLanguages( )
- throw (uno::RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
-
- EnsureInitialized();
-
- Sequence< com::sun::star::lang::Locale > aRes;
- vector<Guess> gs = m_aGuesser.GetAllManagedLanguages();
- aRes.realloc(gs.size());
-
- com::sun::star::lang::Locale *pRes = aRes.getArray();
-
- for(size_t i = 0; i < gs.size() ; i++ ){
- com::sun::star::lang::Locale current_aRes;
- current_aRes.Language = A2OU( gs[i].GetLanguage().c_str() );
- current_aRes.Country = A2OU( gs[i].GetCountry().c_str() );
- pRes[i] = current_aRes;
- }
-
- return aRes;
-}
-
-//*************************************************************************
-uno::Sequence< Locale > SAL_CALL LangGuess_Impl::getEnabledLanguages( )
- throw (uno::RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
-
- EnsureInitialized();
-
- Sequence< com::sun::star::lang::Locale > aRes;
- vector<Guess> gs = m_aGuesser.GetAvailableLanguages();
- aRes.realloc(gs.size());
-
- com::sun::star::lang::Locale *pRes = aRes.getArray();
-
- for(size_t i = 0; i < gs.size() ; i++ ){
- com::sun::star::lang::Locale current_aRes;
- current_aRes.Language = A2OU( gs[i].GetLanguage().c_str() );
- current_aRes.Country = A2OU( gs[i].GetCountry().c_str() );
- pRes[i] = current_aRes;
- }
-
- return aRes;
-}
-
-//*************************************************************************
-uno::Sequence< Locale > SAL_CALL LangGuess_Impl::getDisabledLanguages( )
- throw (uno::RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
-
- EnsureInitialized();
-
- Sequence< com::sun::star::lang::Locale > aRes;
- vector<Guess> gs = m_aGuesser.GetUnavailableLanguages();
- aRes.realloc(gs.size());
-
- com::sun::star::lang::Locale *pRes = aRes.getArray();
-
- for(size_t i = 0; i < gs.size() ; i++ ){
- com::sun::star::lang::Locale current_aRes;
- current_aRes.Language = A2OU( gs[i].GetLanguage().c_str() );
- current_aRes.Country = A2OU( gs[i].GetCountry().c_str() );
- pRes[i] = current_aRes;
- }
-
- return aRes;
-}
-
-//*************************************************************************
-void SAL_CALL LangGuess_Impl::disableLanguages(
- const uno::Sequence< Locale >& rLanguages )
- throw (lang::IllegalArgumentException, uno::RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
-
- EnsureInitialized();
-
- sal_Int32 nLanguages = rLanguages.getLength();
- const Locale *pLanguages = rLanguages.getConstArray();
-
- for (sal_Int32 i = 0; i < nLanguages; ++i)
- {
- string language;
-
- OString l = OUStringToOString( pLanguages[i].Language, RTL_TEXTENCODING_ASCII_US );
- OString c = OUStringToOString( pLanguages[i].Country, RTL_TEXTENCODING_ASCII_US );
-
- language += l.getStr();
- language += "-";
- language += c.getStr();
- m_aGuesser.DisableLanguage(language);
- }
-}
-
-//*************************************************************************
-void SAL_CALL LangGuess_Impl::enableLanguages(
- const uno::Sequence< Locale >& rLanguages )
- throw (lang::IllegalArgumentException, uno::RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
-
- EnsureInitialized();
-
- sal_Int32 nLanguages = rLanguages.getLength();
- const Locale *pLanguages = rLanguages.getConstArray();
-
- for (sal_Int32 i = 0; i < nLanguages; ++i)
- {
- string language;
-
- OString l = OUStringToOString( pLanguages[i].Language, RTL_TEXTENCODING_ASCII_US );
- OString c = OUStringToOString( pLanguages[i].Country, RTL_TEXTENCODING_ASCII_US );
-
- language += l.getStr();
- language += "-";
- language += c.getStr();
- m_aGuesser.EnableLanguage(language);
- }
-}
-
-//*************************************************************************
-OUString SAL_CALL LangGuess_Impl::getImplementationName( )
- throw(RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
- return A2OU( IMPLNAME );
-}
-
-//*************************************************************************
-sal_Bool SAL_CALL LangGuess_Impl::supportsService( const OUString& ServiceName )
- throw(RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getArray();
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
- return sal_False;
-}
-
-//*************************************************************************
-Sequence<OUString> SAL_CALL LangGuess_Impl::getSupportedServiceNames( )
- throw(RuntimeException)
-{
- osl::MutexGuard aGuard( GetLangGuessMutex() );
- return getSupportedServiceNames_Static();
-}
-
-//*************************************************************************
-Sequence<OUString> SAL_CALL LangGuess_Impl::getSupportedServiceNames_Static( )
-{
- OUString aName( A2OU( SERVICENAME ) );
- return Sequence< OUString >( &aName, 1 );
-}
-
-//*************************************************************************
-
-
-/**
- * Function to create a new component instance; is needed by factory helper implementation.
- * @param xMgr service manager to if the components needs other component instances
- */
-Reference< XInterface > SAL_CALL LangGuess_Impl_create(
- Reference< XComponentContext > const & xContext )
- SAL_THROW( () )
-{
- return static_cast< ::cppu::OWeakObject * >( new LangGuess_Impl(xContext) );
-}
-
-//##################################################################################################
-//#### EXPORTED ### functions to allow for registration and creation of the UNO component
-//##################################################################################################
-
-static struct ::cppu::ImplementationEntry s_component_entries [] =
-{
- {
- LangGuess_Impl_create, getImplementationName_LangGuess_Impl,
- getSupportedServiceNames_LangGuess_Impl,
- ::cppu::createSingleComponentFactory,
- 0, 0
- },
- { 0, 0, 0, 0, 0, 0 }
-};
-
-extern "C"
-{
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- sal_Char const * implName, lang::XMultiServiceFactory * xMgr,
- registry::XRegistryKey * xRegistry )
-{
- return ::cppu::component_getFactoryHelper(
- implName, xMgr, xRegistry, s_component_entries );
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/languageguessing/makefile.mk b/lingucomponent/source/languageguessing/makefile.mk
deleted file mode 100644
index 624ccba3c..000000000
--- a/lingucomponent/source/languageguessing/makefile.mk
+++ /dev/null
@@ -1,88 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=lingucomponent
-
-TARGET=guesslang
-
-ENABLE_EXCEPTIONS=TRUE
-
-#----- Settings ---------------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC" || "$(GUI)$(COM)"=="WNTGCC"
-LIBTEXTCATLIB=-ltextcat
-.ELSE # "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
-LIBTEXTCATLIB=ilibtextcat.lib
-.ENDIF # "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
-
-SLOFILES = \
- $(SLO)$/altstrfunc.obj \
- $(SLO)$/guess.obj \
- $(SLO)$/guesslang.obj \
- $(SLO)$/simpleguesser.obj
-
-
-SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
-
-SHL1STDLIBS= \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(LIBTEXTCATLIB) \
- $(SALLIB) \
- $(SVLLIB) \
- $(TOOLSLIB) \
- $(UNOTOOLSLIB)
-
-# build DLL
-SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1IMPLIB= i$(TARGET)
-SHL1DEPN= $(SHL1LIBS)
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-.IF "$(OS)"!="MACOSX"
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
-.ENDIF
-
-# build DEF file
-DEF1NAME =$(SHL1TARGET)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
-ALLTAR : $(MISC)/guesslang.component
-
-$(MISC)/guesslang.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- guesslang.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt guesslang.component
diff --git a/lingucomponent/source/languageguessing/simpleguesser.cxx b/lingucomponent/source/languageguessing/simpleguesser.cxx
deleted file mode 100644
index 68c53318f..000000000
--- a/lingucomponent/source/languageguessing/simpleguesser.cxx
+++ /dev/null
@@ -1,237 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/***************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
- /**
- *
- *
- *
- *
- * TODO
- * - Add exception throwing when h == NULL
- * - Not init h when implicit constructor is launched
- */
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-#include <string.h>
-#include <sstream>
-#include <iostream>
-
-#include <libtextcat/textcat.h>
-#include <libtextcat/common.h>
-#include <libtextcat/constants.h>
-#include <libtextcat/fingerprint.h>
-#include <libtextcat/utf8misc.h>
-
-#include <sal/types.h>
-
-#include "altstrfunc.hxx"
-#include "simpleguesser.hxx"
-
-#ifndef _UTF8_
-#define _UTF8_
-#endif
-
-
-using namespace std;
-
-
-/**
- * This 3 following structures are from fingerprint.c and textcat.c
- */
-
-typedef struct ngram_t {
-
- sint2 rank;
- char str[MAXNGRAMSIZE+1];
-
-} ngram_t;
-
-typedef struct fp_t {
-
- const char *name;
- ngram_t *fprint;
- uint4 size;
-
-} fp_t;
-
-typedef struct textcat_t{
-
- void **fprint;
- char *fprint_disable;
- uint4 size;
- uint4 maxsize;
-
- char output[MAXOUTPUTSIZE];
-
-} textcat_t;
-/** end of the 3 structs */
-
-SimpleGuesser::SimpleGuesser()
-{
- h = NULL;
-}
-
-void SimpleGuesser::operator=(SimpleGuesser& sg){
- if(h){textcat_Done(h);}
- h = sg.h;
-}
-
-SimpleGuesser::~SimpleGuesser()
-{
- if(h){textcat_Done(h);}
-}
-
-
-/*!
- \fn SimpleGuesser::GuessLanguage(char* text)
- */
-vector<Guess> SimpleGuesser::GuessLanguage(char* text)
-{
- vector<Guess> guesses;
-
- if(!h){return guesses;}
-
- //calculate le number of unicode charcters (symbols)
- int len = utfstrlen(text);
-
- if( len > MAX_STRING_LENGTH_TO_ANALYSE ){len = MAX_STRING_LENGTH_TO_ANALYSE ;}
-
- char *guess_list = textcat_Classify(h, text, len);
-
- if(strcmp(guess_list, _TEXTCAT_RESULT_SHORT) == 0){
- return guesses;
- }
-
- int current_pointer = 0;
-
- for(int i = 0; guess_list[current_pointer] != '\0'; i++)
- {
- while(guess_list[current_pointer] != GUESS_SEPARATOR_OPEN && guess_list[current_pointer] != '\0'){
- current_pointer++;
- }
- if(guess_list[current_pointer] != '\0')
- {
- Guess g((char*)(guess_list + current_pointer));
-
- guesses.push_back(g);
-
- current_pointer++;
- }
- }
-
- return guesses;
-}
-
-/*!
- \fn SimpleGuesser::GuessPrimaryLanguage(char* text)
- */
-Guess SimpleGuesser::GuessPrimaryLanguage(char* text)
-{
- vector<Guess> ret = GuessLanguage(text);
- if(!ret.empty()){
- return GuessLanguage(text)[0];
- }
- else{
- return Guess();
- }
-}
-/**
- * Is used to know wich language is available, unavailable or both
- * when mask = 0xF0, return only Available
- * when mask = 0x0F, return only Unavailable
- * when mask = 0xFF, return both Available and Unavailable
- */
-vector<Guess> SimpleGuesser::GetManagedLanguages(const char mask)
-{
- size_t i;
- textcat_t *tables = (textcat_t*)h;
-
- vector<Guess> lang;
- if(!h){return lang;}
-
- for (i=0; i<tables->size; i++) {
- if(tables->fprint_disable[i] & mask){
- string langStr = "[";
- langStr += (char*)fp_Name(tables->fprint[i]);
- Guess g( (char *)langStr.c_str());
- lang.push_back(g);
- }
- }
-
- return lang;
-}
-
-vector<Guess> SimpleGuesser::GetAvailableLanguages(){
- return GetManagedLanguages( sal::static_int_cast< char >( 0xF0 ) );
-}
-
-vector<Guess> SimpleGuesser::GetUnavailableLanguages(){
- return GetManagedLanguages( sal::static_int_cast< char >( 0x0F ));
-}
-
-vector<Guess> SimpleGuesser::GetAllManagedLanguages(){
- return GetManagedLanguages( sal::static_int_cast< char >( 0xFF ));
-}
-
-void SimpleGuesser::XableLanguage(string lang, char mask){
- size_t i;
- textcat_t *tables = (textcat_t*)h;
-
- if(!h){return;}
-
- for (i=0; i<tables->size; i++) {
- string language(fp_Name(tables->fprint[i]));
- if(start(language,lang) == 0){
- //cout << language << endl;
- tables->fprint_disable[i] = mask;
- //continue;
- }
- }
-}
-
-void SimpleGuesser::EnableLanguage(string lang){
- XableLanguage(lang, sal::static_int_cast< char >( 0xF0 ));
-}
-
-void SimpleGuesser::DisableLanguage(string lang){
- XableLanguage(lang, sal::static_int_cast< char >( 0x0F ));
-}
-
-/**
-*
-*/
-void SimpleGuesser::SetDBPath(const char* path, const char* prefix){
- if(h){
- textcat_Done(h);
- }
- h = special_textcat_Init(path, prefix);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/languageguessing/simpleguesser.hxx b/lingucomponent/source/languageguessing/simpleguesser.hxx
deleted file mode 100644
index ee76b0781..000000000
--- a/lingucomponent/source/languageguessing/simpleguesser.hxx
+++ /dev/null
@@ -1,124 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/***************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-#ifndef SIMPLEGUESSER_H
-#define SIMPLEGUESSER_H
-
-#include <string.h>
-#include <string>
-#include <cstdlib>
-#include <vector>
-#include <guess.hxx>
-
-#define MAX_STRING_LENGTH_TO_ANALYSE 200
-
-using namespace std;
-
-/**
-@author Jocelyn Merand
-*/
-class SimpleGuesser{
-public:
- /**inits the object with conf file "./conf.txt"*/
- SimpleGuesser();
-
- /** Compares the current Simpleguesser with an other
- * @param SimpleGuesser& sg the other guesser to compare
- */
- void operator=(SimpleGuesser& sg);
-
- /**
- * destroy the object
- */
- ~SimpleGuesser();
-
- /**
- * Analyze a text and return the most probable languages of the text
- * @param char* text is the text to analyze
- * @return the list of guess
- */
- vector<Guess> GuessLanguage(char* text);
-
- /**
- * Analyze a text and return the most probable language of the text
- * @param char* text is the text to analyze
- * @return the guess (containing language)
- */
- Guess GuessPrimaryLanguage(char* text);
-
- /**
- * List all available languages (possibly to be in guesses)
- * @return the list of languages
- */
- vector<Guess> GetAvailableLanguages();
-
- /**
- * List all languages (possibly in guesses or not)
- * @return the list of languages
- */
- vector<Guess> GetAllManagedLanguages();
-
- /**
- * List all Unavailable languages (disable for any reason)
- * @return the list of languages
- */
- vector<Guess> GetUnavailableLanguages();
-
- /**
- * Mark a language enabled
- * @param string lang the language to enable (build like language-COUNTRY-encoding)
- */
- void EnableLanguage(string lang);
-
- /**
- * Mark a language disabled
- * @param string lang the language to disable (build like language-COUNTRY-encoding)
- */
- void DisableLanguage(string lang);
-
- /**
- * Load a new DB of fingerprints
- * @param const char* thePathOfConfFile self explaining
- * @param const char* prefix is the path where the directory witch contains fingerprint files is stored
- */
- void SetDBPath(const char* thePathOfConfFile, const char* prefix);
-
-protected:
-
- //Where typical fingerprints (n-gram tables) are stored
- void* h;
-
- //Is used to select languages into the fingerprints DB, the mask is used to indicate if we want enabled disabled or both
- vector<Guess> GetManagedLanguages(const char mask);
-
- //Like getManagedLanguages, this function enable or disable a language and it depends of the mask
- void XableLanguage(string lang, char mask);
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/lingutil/lingutil.cxx b/lingucomponent/source/lingutil/lingutil.cxx
deleted file mode 100644
index e9cfc46f1..000000000
--- a/lingucomponent/source/lingutil/lingutil.cxx
+++ /dev/null
@@ -1,280 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-#if defined(WNT)
-#include <windows.h>
-#endif
-
-#include <osl/thread.h>
-#include <osl/file.hxx>
-#include <tools/debug.hxx>
-#include <tools/urlobj.hxx>
-#include <i18npool/mslangid.hxx>
-#include <unotools/lingucfg.hxx>
-#include <unotools/pathoptions.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/string.hxx>
-#include <rtl/tencinfo.h>
-#include <linguistic/misc.hxx>
-
-#include <set>
-#include <vector>
-#include <string.h>
-
-#include <lingutil.hxx>
-#include <dictmgr.hxx>
-
-#include <sal/macros.h>
-
-
-using ::com::sun::star::lang::Locale;
-using namespace ::com::sun::star;
-
-#if 0
-//////////////////////////////////////////////////////////////////////
-
-String GetDirectoryPathFromFileURL( const String &rFileURL )
-{
- // get file URL
- INetURLObject aURLObj;
- aURLObj.SetSmartProtocol( INET_PROT_FILE );
- aURLObj.SetSmartURL( rFileURL );
- aURLObj.removeSegment();
- DBG_ASSERT( !aURLObj.HasError(), "invalid URL" );
- String aRes = aURLObj.GetMainURL( INetURLObject::DECODE_TO_IURI );
- return aRes;
-}
-#endif
-
-#if defined(WNT)
-rtl::OString Win_GetShortPathName( const rtl::OUString &rLongPathName )
-{
- rtl::OString aRes;
-
- sal_Unicode aShortBuffer[1024] = {0};
- sal_Int32 nShortBufSize = SAL_N_ELEMENTS( aShortBuffer );
-
- // use the version of 'GetShortPathName' that can deal with Unicode...
- sal_Int32 nShortLen = GetShortPathNameW(
- reinterpret_cast<LPCWSTR>( rLongPathName.getStr() ),
- reinterpret_cast<LPWSTR>( aShortBuffer ),
- nShortBufSize );
-
- if (nShortLen < nShortBufSize) // conversion successful?
- aRes = rtl::OString( OU2ENC( rtl::OUString( aShortBuffer, nShortLen ), osl_getThreadTextEncoding()) );
- else
- OSL_FAIL( "Win_GetShortPathName: buffer to short" );
-
- return aRes;
-}
-#endif //defined(WNT)
-
-//////////////////////////////////////////////////////////////////////
-
-// build list of old style diuctionaries (not as extensions) to use.
-// User installed dictionaries (the ones residing in the user paths)
-// will get precedence over system installed ones for the same language.
-std::vector< SvtLinguConfigDictionaryEntry > GetOldStyleDics( const char *pDicType )
-{
- std::vector< SvtLinguConfigDictionaryEntry > aRes;
-
- if (!pDicType)
- return aRes;
-
- rtl::OUString aFormatName;
- String aDicExtension;
-#ifdef SYSTEM_DICTS
- rtl::OUString aSystemDir;
- rtl::OUString aSystemPrefix;
- rtl::OUString aSystemSuffix;
-#endif
- if (strcmp( pDicType, "DICT" ) == 0)
- {
- aFormatName = A2OU("DICT_SPELL");
- aDicExtension = String::CreateFromAscii( ".dic" );
-#ifdef SYSTEM_DICTS
- aSystemDir = A2OU( DICT_SYSTEM_DIR );
- aSystemSuffix = aDicExtension;
-#endif
- }
- else if (strcmp( pDicType, "HYPH" ) == 0)
- {
- aFormatName = A2OU("DICT_HYPH");
- aDicExtension = String::CreateFromAscii( ".dic" );
-#ifdef SYSTEM_DICTS
- aSystemDir = A2OU( HYPH_SYSTEM_DIR );
- aSystemPrefix = A2OU( "hyph_" );
- aSystemSuffix = aDicExtension;
-#endif
- }
- else if (strcmp( pDicType, "THES" ) == 0)
- {
- aFormatName = A2OU("DICT_THES");
- aDicExtension = String::CreateFromAscii( ".dat" );
-#ifdef SYSTEM_DICTS
- aSystemDir = A2OU( THES_SYSTEM_DIR );
- aSystemPrefix = A2OU( "th_" );
- aSystemSuffix = A2OU( "_v2.dat" );
-#endif
- }
-
-
- if (aFormatName.getLength() == 0 || aDicExtension.Len() == 0)
- return aRes;
-
- // set of languages to remember the language where it is already
- // decided to make use of the dictionary.
- std::set< LanguageType > aDicLangInUse;
-
-#ifdef SYSTEM_DICTS
- osl::Directory aSystemDicts(aSystemDir);
- if (aSystemDicts.open() == osl::FileBase::E_None)
- {
- osl::DirectoryItem aItem;
- osl::FileStatus aFileStatus(osl_FileStatus_Mask_FileURL);
- while (aSystemDicts.getNextItem(aItem) == osl::FileBase::E_None)
- {
- aItem.getFileStatus(aFileStatus);
- rtl::OUString sPath = aFileStatus.getFileURL();
- if (sPath.lastIndexOf(aSystemSuffix) == sPath.getLength()-aSystemSuffix.getLength())
- {
- sal_Int32 nStartIndex = sPath.lastIndexOf(sal_Unicode('/')) + 1;
- if (!sPath.match(aSystemPrefix, nStartIndex))
- continue;
- rtl::OUString sChunk = sPath.copy(0, sPath.getLength() - aSystemSuffix.getLength());
- sal_Int32 nIndex = nStartIndex + aSystemPrefix.getLength();
- rtl::OUString sLang = sChunk.getToken( 0, '_', nIndex );
- if (!sLang.getLength())
- continue;
- rtl::OUString sRegion;
- if (nIndex != -1)
- sRegion = sChunk.copy( nIndex, sChunk.getLength() - nIndex );
-
- // Thus we first get the language of the dictionary
- LanguageType nLang = MsLangId::convertIsoNamesToLanguage(
- sLang, sRegion );
-
- if (aDicLangInUse.count( nLang ) == 0)
- {
- // remember the new language in use
- aDicLangInUse.insert( nLang );
-
- // add the dictionary to the resulting vector
- SvtLinguConfigDictionaryEntry aDicEntry;
- aDicEntry.aLocations.realloc(1);
- aDicEntry.aLocaleNames.realloc(1);
- rtl::OUString aLocaleName( MsLangId::convertLanguageToIsoString( nLang ) );
- aDicEntry.aLocations[0] = sPath;
- aDicEntry.aFormatName = aFormatName;
- aDicEntry.aLocaleNames[0] = aLocaleName;
- aRes.push_back( aDicEntry );
- }
- }
- }
- }
-
-#endif
-
- return aRes;
-}
-
-
-void MergeNewStyleDicsAndOldStyleDics(
- std::list< SvtLinguConfigDictionaryEntry > &rNewStyleDics,
- const std::vector< SvtLinguConfigDictionaryEntry > &rOldStyleDics )
-{
- // get list of languages supported by new style dictionaries
- std::set< LanguageType > aNewStyleLanguages;
- std::list< SvtLinguConfigDictionaryEntry >::const_iterator aIt;
- for (aIt = rNewStyleDics.begin() ; aIt != rNewStyleDics.end(); ++aIt)
- {
- const uno::Sequence< rtl::OUString > aLocaleNames( aIt->aLocaleNames );
- sal_Int32 nLocaleNames = aLocaleNames.getLength();
- for (sal_Int32 k = 0; k < nLocaleNames; ++k)
- {
- LanguageType nLang = MsLangId::convertIsoStringToLanguage( aLocaleNames[k] );
- aNewStyleLanguages.insert( nLang );
- }
- }
-
- // now check all old style dictionaries if they will add a not yet
- // added language. If so add them to the resulting vector
- std::vector< SvtLinguConfigDictionaryEntry >::const_iterator aIt2;
- for (aIt2 = rOldStyleDics.begin(); aIt2 != rOldStyleDics.end(); ++aIt2)
- {
- sal_Int32 nOldStyleDics = aIt2->aLocaleNames.getLength();
-
- // old style dics should only have one language listed...
- DBG_ASSERT( nOldStyleDics, "old style dictionary with more then one language found!");
- if (nOldStyleDics > 0)
- {
- LanguageType nLang = MsLangId::convertIsoStringToLanguage( aIt2->aLocaleNames[0] );
-
- if (nLang == LANGUAGE_DONTKNOW || nLang == LANGUAGE_NONE)
- {
- OSL_FAIL( "old style dictionary with invalid language found!" );
- continue;
- }
-
- // language not yet added?
- if (aNewStyleLanguages.count( nLang ) == 0)
- rNewStyleDics.push_back( *aIt2 );
- }
- else
- {
- OSL_FAIL( "old style dictionary with no language found!" );
- }
- }
-}
-
-
-rtl_TextEncoding getTextEncodingFromCharset(const sal_Char* pCharset)
-{
- // default result: used to indicate that we failed to get the proper encoding
- rtl_TextEncoding eRet = RTL_TEXTENCODING_DONTKNOW;
-
- if (pCharset)
- {
- eRet = rtl_getTextEncodingFromMimeCharset(pCharset);
- if (eRet == RTL_TEXTENCODING_DONTKNOW)
- eRet = rtl_getTextEncodingFromUnixCharset(pCharset);
- if (eRet == RTL_TEXTENCODING_DONTKNOW)
- {
- if (strcmp("ISCII-DEVANAGARI", pCharset) == 0)
- eRet = RTL_TEXTENCODING_ISCII_DEVANAGARI;
- }
- }
- return eRet;
-}
-
-//////////////////////////////////////////////////////////////////////
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/lingutil/lingutil.hxx b/lingucomponent/source/lingutil/lingutil.hxx
deleted file mode 100644
index 53f322d80..000000000
--- a/lingucomponent/source/lingutil/lingutil.hxx
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef _LINGUTIL_HXX_
-#define _LINGUTIL_HXX_
-
-
-#include <com/sun/star/lang/Locale.hpp>
-#include <rtl/string.hxx>
-#include <rtl/ustring.hxx>
-#include <tools/string.hxx>
-
-#include <vector>
-#include <list>
-
-
-#ifndef A2OU
-# define A2OU(x) ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( x ))
-#endif
-
-#define OU2A(rtlOUString) \
- ::rtl::OString((rtlOUString).getStr(), (rtlOUString).getLength(), \
- RTL_TEXTENCODING_ASCII_US).getStr()
-
-#define OU2UTF8(rtlOUString) \
- ::rtl::OString((rtlOUString).getStr(), (rtlOUString).getLength(), \
- RTL_TEXTENCODING_UTF8).getStr()
-
-#define OU2ISO_1(rtlOUString) \
- ::rtl::OString((rtlOUString).getStr(), (rtlOUString).getLength(), \
- RTL_TEXTENCODING_ISO_8859_1).getStr()
-
-#define OU2ENC(rtlOUString, rtlEncoding) \
- ::rtl::OString((rtlOUString).getStr(), (rtlOUString).getLength(), \
- rtlEncoding, RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK).getStr()
-
-
-struct SvtLinguConfigDictionaryEntry;
-
-///////////////////////////////////////////////////////////////////////////
-
-struct lt_rtl_OUString
-{
- bool operator() (const rtl::OUString &r1, const rtl::OUString &r2) const
- {
- return r1 < r2;
- }
-};
-
-inline sal_Bool operator == ( const ::com::sun::star::lang::Locale &rL1, const ::com::sun::star::lang::Locale &rL2 )
-{
- return rL1.Language == rL2.Language &&
- rL1.Country == rL2.Country &&
- rL1.Variant == rL2.Variant;
-}
-
-#if 0
-///////////////////////////////////////////////////////////////////////////
-
-String GetDirectoryPathFromFileURL( const String &rFileURL );
-#endif
-
-#if defined(WNT)
-///////////////////////////////////////////////////////////////////////////
-// to be use to get a short path name under Windows that still can be used with
-// the 'fopen' call. This is necessary since under Windows there seems to be
-// a restriction of only about 110-130 characters length to a path name in order
-// for it to work with 'fopen'. And that length is usually easily exceeded
-// when using extensions...
-rtl::OString Win_GetShortPathName( const rtl::OUString &rLongPathName );
-#endif
-
-///////////////////////////////////////////////////////////////////////////
-
-// temporary function, to be removed when new style dictionaries
-// using configuration entries are fully implemented and provided
-std::vector< SvtLinguConfigDictionaryEntry > GetOldStyleDics( const char * pDicType );
-void MergeNewStyleDicsAndOldStyleDics( std::list< SvtLinguConfigDictionaryEntry > &rNewStyleDics, const std::vector< SvtLinguConfigDictionaryEntry > &rOldStyleDics );
-
-///////////////////////////////////////////////////////////////////////////
-
-
-//Find an encoding from a charset string, using
-//rtl_getTextEncodingFromMimeCharset and falling back to
-//rtl_getTextEncodingFromUnixCharset with the addition of
-//ISCII-DEVANAGARI. On failure will return final fallback of
-//RTL_TEXTENCODING_ISO_8859_1
-rtl_TextEncoding getTextEncodingFromCharset(const sal_Char* pCharset);
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/lingutil/makefile.mk b/lingucomponent/source/lingutil/makefile.mk
deleted file mode 100644
index 87df6aea5..000000000
--- a/lingucomponent/source/lingutil/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ = ..$/..
-
-PRJNAME = lingucomponent
-TARGET = ulingu
-LIBTARGET=NO
-
-ENABLE_EXCEPTIONS=TRUE
-
-#----- Settings ---------------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(SYSTEM_HUNSPELL)" != "YES"
-HUNSPELL_CFLAGS += -I$(SOLARINCDIR)$/hunspell -DHUNSPELL_STATIC
-.ENDIF
-
-.IF "$(SYSTEM_DICTS)" == "YES"
-CXXFLAGS += -DSYSTEM_DICTS -DDICT_SYSTEM_DIR=\"$(DICT_SYSTEM_DIR)\" -DHYPH_SYSTEM_DIR=\"$(HYPH_SYSTEM_DIR)\" -DTHES_SYSTEM_DIR=\"$(THES_SYSTEM_DIR)\"
-CFLAGSCXX += -DSYSTEM_DICTS -DDICT_SYSTEM_DIR=\"$(DICT_SYSTEM_DIR)\" -DHYPH_SYSTEM_DIR=\"$(HYPH_SYSTEM_DIR)\" -DTHES_SYSTEM_DIR=\"$(THES_SYSTEM_DIR)\"
-CFLAGSCC += -DSYSTEM_DICTS -DDICT_SYSTEM_DIR=\"$(DICT_SYSTEM_DIR)\" -DHYPH_SYSTEM_DIR=\"$(HYPH_SYSTEM_DIR)\" -DTHES_SYSTEM_DIR=\"$(THES_SYSTEM_DIR)\"
-.ENDIF
-
-CXXFLAGS += $(HUNSPELL_CFLAGS)
-CFLAGSCXX += $(HUNSPELL_CFLAGS)
-CFLAGSCC += $(HUNSPELL_CFLAGS)
-
-SLOFILES = $(SLO)$/lingutil.obj
-
-LIB1TARGET= $(SLB)$/lib$(TARGET).lib
-LIB1ARCHIV= $(LB)/lib$(TARGET).a
-LIB1OBJFILES= $(SLOFILES)
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.component b/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.component
deleted file mode 100644
index 2f2f9e102..000000000
--- a/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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="org.openoffice.lingu.MacOSXSpellChecker">
- <service name="com.sun.star.linguistic2.SpellChecker"/>
- </implementation>
-</component>
diff --git a/lingucomponent/source/spellcheck/macosxspell/macreg.cxx b/lingucomponent/source/spellcheck/macosxspell/macreg.cxx
deleted file mode 100644
index 42a26c40a..000000000
--- a/lingucomponent/source/spellcheck/macosxspell/macreg.cxx
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <rtl/string.hxx>
-
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-
-////////////////////////////////////////
-// declaration of external RegEntry-functions defined by the service objects
-//
-
-extern void * SAL_CALL MacSpellChecker_getFactory(
- const sal_Char * pImplName,
- XMultiServiceFactory * pServiceManager,
- void * /*pRegistryKey*/ );
-
-////////////////////////////////////////
-// definition of the two functions that are used to provide the services
-//
-
-extern "C"
-{
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- void * pRet = NULL;
- pRet = MacSpellChecker_getFactory(
- pImplName,
- reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
- pRegistryKey );
-
- return pRet;
-}
-
-}
-
-///////////////////////////////////////////////////////////////////////////
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx b/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx
deleted file mode 100644
index fd9004e28..000000000
--- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx
+++ /dev/null
@@ -1,657 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
-
-#include <com/sun/star/linguistic2/SpellFailure.hpp>
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <tools/debug.hxx>
-#include <unotools/processfactory.hxx>
-#include <osl/mutex.hxx>
-
-#include <dictmgr.hxx>
-#include <macspellimp.hxx>
-
-#include <linguistic/spelldta.hxx>
-#include <unotools/pathoptions.hxx>
-#include <unotools/useroptions.hxx>
-#include <osl/file.hxx>
-#include <rtl/ustrbuf.hxx>
-
-using namespace utl;
-using namespace osl;
-using namespace com::sun::star;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::linguistic2;
-using namespace linguistic;
-
-using ::rtl::OUString;
-using ::rtl::OString;
-using ::rtl::OUStringBuffer;
-using ::rtl::OUStringToOString;
-
-///////////////////////////////////////////////////////////////////////////
-// dbg_dump for development
-#if OSL_DEBUG_LEVEL > 1
-#include <rtl/strbuf.hxx>
-#include <rtl/ustring.hxx>
-
-const sal_Char *dbg_dump(const rtl::OString &rStr)
-{
- static rtl::OStringBuffer aStr;
-
- aStr = rtl::OStringBuffer(rStr);
- aStr.append(static_cast<char>(0));
- return aStr.getStr();
-}
-
-const sal_Char *dbg_dump(const rtl::OUString &rStr)
-{
- return dbg_dump(rtl::OUStringToOString(rStr, RTL_TEXTENCODING_UTF8));
-}
-
-const sal_Char *dbg_dump(rtl_String *pStr)
-{
- return dbg_dump(rtl::OString(pStr));
-}
-
-const sal_Char *dbg_dump(rtl_uString *pStr)
-{
- return dbg_dump(rtl::OUString(pStr));
-}
-
-#endif
-///////////////////////////////////////////////////////////////////////////
-
-MacSpellChecker::MacSpellChecker() :
- aEvtListeners ( GetLinguMutex() )
-{
- aDEncs = NULL;
- aDLocs = NULL;
- aDNames = NULL;
- bDisposing = sal_False;
- pPropHelper = NULL;
- numdict = 0;
- NSApplicationLoad();
- NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
- macSpell = [NSSpellChecker sharedSpellChecker];
- macTag = [NSSpellChecker uniqueSpellDocumentTag];
- [pool release];
-}
-
-
-MacSpellChecker::~MacSpellChecker()
-{
- numdict = 0;
- if (aDEncs) delete[] aDEncs;
- aDEncs = NULL;
- if (aDLocs) delete[] aDLocs;
- aDLocs = NULL;
- if (aDNames) delete[] aDNames;
- aDNames = NULL;
- if (pPropHelper)
- pPropHelper->RemoveAsPropListener();
-}
-
-
-PropertyHelper_Spell & MacSpellChecker::GetPropHelper_Impl()
-{
- if (!pPropHelper)
- {
- Reference< XPropertySet > xPropSet( GetLinguProperties(), UNO_QUERY );
-
- pPropHelper = new PropertyHelper_Spell( (XSpellChecker *) this, xPropSet );
- xPropHelper = pPropHelper;
- pPropHelper->AddAsPropListener(); //! after a reference is established
- }
- return *pPropHelper;
-}
-
-
-Sequence< Locale > SAL_CALL MacSpellChecker::getLocales()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- // this routine should return the locales supported by the installed
- // dictionaries. So here we need to parse both the user edited
- // dictionary list and the shared dictionary list
- // to see what dictionaries the admin/user has installed
-
- int numusr; // number of user dictionary entries
- int numshr; // number of shared dictionary entries
- dictentry * spdict; // shared dict entry pointer
- dictentry * updict; // user dict entry pointer
- SvtPathOptions aPathOpt;
- rtl_TextEncoding aEnc = RTL_TEXTENCODING_UTF8;
-
- std::vector<objc_object *> postspdict;
- std::vector<dictentry *> postupdict;
-
-
- if (!numdict) {
-
- // invoke a dictionary manager to get the user dictionary list
- // TODO How on Mac OS X?
-
- // invoke a second dictionary manager to get the shared dictionary list
- NSArray *aLocales = [NSLocale availableLocaleIdentifiers];
-
- //Test for existence of the dictionaries
- for (unsigned int i = 0; i < [aLocales count]; i++)
- {
- if( [macSpell setLanguage:[aLocales objectAtIndex:i] ] )
- {
- postspdict.push_back( [ aLocales objectAtIndex:i ] );
- }
- }
-
- numusr = postupdict.size();
- numshr = postspdict.size();
-
- // we really should merge these and remove duplicates but since
- // users can name their dictionaries anything they want it would
- // be impossible to know if a real duplication exists unless we
- // add some unique key to each myspell dictionary
- numdict = numshr + numusr;
-
- if (numdict) {
- aDLocs = new Locale [numdict];
- aDEncs = new rtl_TextEncoding [numdict];
- aDNames = new OUString [numdict];
- aSuppLocales.realloc(numdict);
- Locale * pLocale = aSuppLocales.getArray();
- int numlocs = 0;
- int newloc;
- int i,j;
- int k = 0;
-
- //first add the user dictionaries
- //TODO for MAC?
-
- // now add the shared dictionaries
- for (i = 0; i < numshr; i++) {
- NSDictionary *aLocDict = [ NSLocale componentsFromLocaleIdentifier:postspdict[i] ];
- NSString* aLang = [ aLocDict objectForKey:NSLocaleLanguageCode ];
- NSString* aCountry = [ aLocDict objectForKey:NSLocaleCountryCode ];
- OUString lang([aLang cStringUsingEncoding: NSUTF8StringEncoding], [aLang length], aEnc);
- OUString country([ aCountry cStringUsingEncoding: NSUTF8StringEncoding], [aCountry length], aEnc);
- Locale nLoc( lang, country, OUString() );
- newloc = 1;
- //eliminate duplicates (is this needed for MacOS?)
- for (j = 0; j < numlocs; j++) {
- if (nLoc == pLocale[j]) newloc = 0;
- }
- if (newloc) {
- pLocale[numlocs] = nLoc;
- numlocs++;
- }
- aDLocs[k] = nLoc;
- aDEncs[k] = 0;
- k++;
- }
-
- aSuppLocales.realloc(numlocs);
-
- } else {
- /* no dictionary.lst found so register no dictionaries */
- numdict = 0;
- aDEncs = NULL;
- aDLocs = NULL;
- aDNames = NULL;
- aSuppLocales.realloc(0);
- }
-
- /* de-allocation of memory is handled inside the DictMgr */
- updict = NULL;
- spdict = NULL;
-
- }
-
- return aSuppLocales;
-}
-
-
-
-sal_Bool SAL_CALL MacSpellChecker::hasLocale(const Locale& rLocale)
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!aSuppLocales.getLength())
- getLocales();
-
- sal_Int32 nLen = aSuppLocales.getLength();
- for (sal_Int32 i = 0; i < nLen; ++i)
- {
- const Locale *pLocale = aSuppLocales.getConstArray();
- if (rLocale == pLocale[i])
- {
- bRes = sal_True;
- break;
- }
- }
- return bRes;
-}
-
-
-sal_Int16 MacSpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rLocale )
-{
- rtl_TextEncoding aEnc;
-
- // initialize a myspell object for each dictionary once
- // (note: mutex is held higher up in isValid)
-
-
- sal_Int16 nRes = -1;
-
- // first handle smart quotes both single and double
- OUStringBuffer rBuf(rWord);
- sal_Int32 n = rBuf.getLength();
- sal_Unicode c;
- for (sal_Int32 ix=0; ix < n; ix++) {
- c = rBuf.charAt(ix);
- if ((c == 0x201C) || (c == 0x201D)) rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((c == 0x2018) || (c == 0x2019)) rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
-
- if (n)
- {
- aEnc = 0;
- NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
- NSString* aNSStr = [[NSString alloc] initWithCharacters: nWord.getStr() length: nWord.getLength()];
- NSString* aLang = [[NSString alloc] initWithCharacters: rLocale.Language.getStr() length: rLocale.Language.getLength()];
- if(rLocale.Country.getLength()>0)
- {
- NSString* aCountry = [[NSString alloc] initWithCharacters: rLocale.Country.getStr() length: rLocale.Country.getLength()];
- NSString* aTag = @"_";
- NSString* aTaggedCountry = [aTag stringByAppendingString:aCountry];
- [aLang autorelease];
- aLang = [aLang stringByAppendingString:aTaggedCountry];
- }
-
- int aCount;
- NSRange range = [macSpell checkSpellingOfString:aNSStr startingAt:0 language:aLang wrap:sal_False inSpellDocumentWithTag:macTag wordCount:&aCount];
- int rVal = 0;
- if(range.length>0)
- {
- rVal = -1;
- }
- else
- {
- rVal = 1;
- }
- [pool release];
- if (rVal != 1)
- {
- nRes = SpellFailure::SPELLING_ERROR;
- } else {
- return -1;
- }
- }
- return nRes;
-}
-
-
-
-sal_Bool SAL_CALL
- MacSpellChecker::isValid( const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (rLocale == Locale() || !rWord.getLength())
- return sal_True;
-
- if (!hasLocale( rLocale ))
-#ifdef LINGU_EXCEPTIONS
- throw( IllegalArgumentException() );
-#else
- return sal_True;
-#endif
-
- // Get property values to be used.
- // These are be the default values set in the SN_LINGU_PROPERTIES
- // PropertySet which are overridden by the supplied ones from the
- // last argument.
- // You'll probably like to use a simplier solution than the provided
- // one using the PropertyHelper_Spell.
-
- PropertyHelper_Spell &rHelper = GetPropHelper();
- rHelper.SetTmpPropVals( rProperties );
-
- sal_Int16 nFailure = GetSpellFailure( rWord, rLocale );
- if (nFailure != -1)
- {
- sal_Int16 nLang = LocaleToLanguage( rLocale );
- // postprocess result for errors that should be ignored
- if ( (!rHelper.IsSpellUpperCase() && IsUpper( rWord, nLang ))
- || (!rHelper.IsSpellWithDigits() && HasDigits( rWord ))
- || (!rHelper.IsSpellCapitalization()
- && nFailure == SpellFailure::CAPTION_ERROR)
- )
- nFailure = -1;
- }
-
- return (nFailure == -1);
-}
-
-
-Reference< XSpellAlternatives >
- MacSpellChecker::GetProposals( const OUString &rWord, const Locale &rLocale )
-{
- // Retrieves the return values for the 'spell' function call in case
- // of a misspelled word.
- // Especially it may give a list of suggested (correct) words:
-
- Reference< XSpellAlternatives > xRes;
- // note: mutex is held by higher up by spell which covers both
-
- sal_Int16 nLang = LocaleToLanguage( rLocale );
- int count;
- Sequence< OUString > aStr( 0 );
-
- // first handle smart quotes (single and double)
- OUStringBuffer rBuf(rWord);
- sal_Int32 n = rBuf.getLength();
- sal_Unicode c;
- for (sal_Int32 ix=0; ix < n; ix++) {
- c = rBuf.charAt(ix);
- if ((c == 0x201C) || (c == 0x201D)) rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((c == 0x2018) || (c == 0x2019)) rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
-
- if (n)
- {
- NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
- NSString* aNSStr = [[NSString alloc] initWithCharacters: nWord.getStr() length: nWord.getLength()];
- NSString* aLang = [[NSString alloc] initWithCharacters: rLocale.Language.getStr() length: rLocale.Language.getLength() ];
- if(rLocale.Country.getLength()>0)
- {
- NSString* aCountry = [[NSString alloc] initWithCharacters: rLocale.Country.getStr() length: rLocale.Country.getLength() ];
- NSString* aTag = @"_";
- NSString* aTaggedCountry = [aTag stringByAppendingString:aCountry];
- [aLang autorelease];
- aLang = [aLang stringByAppendingString:aTaggedCountry];
- }
- [macSpell setLanguage:aLang];
- NSArray *guesses = [macSpell guessesForWord:aNSStr];
- count = [guesses count];
- if (count)
- {
- aStr.realloc( count );
- OUString *pStr = aStr.getArray();
- for (int ii=0; ii < count; ii++)
- {
- // if needed add: if (suglst[ii] == NULL) continue;
- NSString* guess = [guesses objectAtIndex:ii];
- OUString cvtwrd((const sal_Unicode*)[guess cStringUsingEncoding:NSUnicodeStringEncoding], (sal_Int32)[guess length]);
- pStr[ii] = cvtwrd;
- }
- }
- [pool release];
- }
-
- // now return an empty alternative for no suggestions or the list of alternatives if some found
- SpellAlternatives *pAlt = new SpellAlternatives;
- String aTmp(rWord);
- pAlt->SetWordLanguage( aTmp, nLang );
- pAlt->SetFailureType( SpellFailure::SPELLING_ERROR );
- pAlt->SetAlternatives( aStr );
- xRes = pAlt;
- return xRes;
-
-}
-
-
-
-
-Reference< XSpellAlternatives > SAL_CALL
- MacSpellChecker::spell( const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (rLocale == Locale() || !rWord.getLength())
- return NULL;
-
- if (!hasLocale( rLocale ))
-#ifdef LINGU_EXCEPTIONS
- throw( IllegalArgumentException() );
-#else
- return NULL;
-#endif
-
- Reference< XSpellAlternatives > xAlt;
- if (!isValid( rWord, rLocale, rProperties ))
- {
- xAlt = GetProposals( rWord, rLocale );
- }
- return xAlt;
-}
-
-
-Reference< XInterface > SAL_CALL MacSpellChecker_CreateInstance(
- const Reference< XMultiServiceFactory > & /*rSMgr*/ )
- throw(Exception)
-{
-
- Reference< XInterface > xService = (cppu::OWeakObject*) new MacSpellChecker;
- return xService;
-}
-
-
-sal_Bool SAL_CALL
- MacSpellChecker::addLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!bDisposing && rxLstnr.is())
- {
- bRes = GetPropHelper().addLinguServiceEventListener( rxLstnr );
- }
- return bRes;
-}
-
-
-sal_Bool SAL_CALL
- MacSpellChecker::removeLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!bDisposing && rxLstnr.is())
- {
- DBG_ASSERT( xPropHelper.is(), "xPropHelper non existent" );
- bRes = GetPropHelper().removeLinguServiceEventListener( rxLstnr );
- }
- return bRes;
-}
-
-
-OUString SAL_CALL
- MacSpellChecker::getServiceDisplayName( const Locale& /*rLocale*/ )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
- return A2OU( "Mac OS X Spell Checker" );
-}
-
-
-void SAL_CALL
- MacSpellChecker::initialize( const Sequence< Any >& rArguments )
- throw(Exception, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!pPropHelper)
- {
- sal_Int32 nLen = rArguments.getLength();
- if (2 == nLen)
- {
- Reference< XPropertySet > xPropSet;
- rArguments.getConstArray()[0] >>= xPropSet;
- //rArguments.getConstArray()[1] >>= xDicList;
-
- //! Pointer allows for access of the non-UNO functions.
- //! And the reference to the UNO-functions while increasing
- //! the ref-count and will implicitly free the memory
- //! when the object is not longer used.
- pPropHelper = new PropertyHelper_Spell( (XSpellChecker *) this, xPropSet );
- xPropHelper = pPropHelper;
- pPropHelper->AddAsPropListener(); //! after a reference is established
- }
- else
- OSL_FAIL( "wrong number of arguments in sequence" );
-
- }
-}
-
-
-void SAL_CALL
- MacSpellChecker::dispose()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing)
- {
- bDisposing = sal_True;
- EventObject aEvtObj( (XSpellChecker *) this );
- aEvtListeners.disposeAndClear( aEvtObj );
- }
-}
-
-
-void SAL_CALL
- MacSpellChecker::addEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing && rxListener.is())
- aEvtListeners.addInterface( rxListener );
-}
-
-
-void SAL_CALL
- MacSpellChecker::removeEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing && rxListener.is())
- aEvtListeners.removeInterface( rxListener );
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-// Service specific part
-//
-
-OUString SAL_CALL MacSpellChecker::getImplementationName()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- return getImplementationName_Static();
-}
-
-
-sal_Bool SAL_CALL MacSpellChecker::supportsService( const OUString& ServiceName )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
- return sal_False;
-}
-
-
-Sequence< OUString > SAL_CALL MacSpellChecker::getSupportedServiceNames()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- return getSupportedServiceNames_Static();
-}
-
-
-Sequence< OUString > MacSpellChecker::getSupportedServiceNames_Static()
- throw()
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- Sequence< OUString > aSNS( 1 ); // auch mehr als 1 Service moeglich
- aSNS.getArray()[0] = A2OU( SN_SPELLCHECKER );
- return aSNS;
-}
-
-void * SAL_CALL MacSpellChecker_getFactory( const sal_Char * pImplName,
- XMultiServiceFactory * pServiceManager, void * )
-{
- void * pRet = 0;
- if ( !MacSpellChecker::getImplementationName_Static().compareToAscii( pImplName ) )
- {
- Reference< XSingleServiceFactory > xFactory =
- cppu::createOneInstanceFactory(
- pServiceManager,
- MacSpellChecker::getImplementationName_Static(),
- MacSpellChecker_CreateInstance,
- MacSpellChecker::getSupportedServiceNames_Static());
- // acquire, because we return an interface pointer instead of a reference
- xFactory->acquire();
- pRet = xFactory.get();
- }
- return pRet;
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx b/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx
deleted file mode 100644
index 7e20d332c..000000000
--- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx
+++ /dev/null
@@ -1,155 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef _MACSPELLIMP_H_
-#define _MACSPELLIMP_H_
-
-#include <uno/lbnames.h> // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
-#include <cppuhelper/implbase1.hxx> // helper for implementations
-#include <cppuhelper/implbase6.hxx> // helper for implementations
-
-#ifdef MACOSX
-#include <premac.h>
-#include <Carbon/Carbon.h>
-#import <Cocoa/Cocoa.h>
-#include <postmac.h>
-#endif
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XServiceDisplayName.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyValues.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/linguistic2/XSpellChecker.hpp>
-#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
-#include <com/sun/star/linguistic2/XLinguServiceEventBroadcaster.hpp>
-#include <tools/table.hxx>
-
-#include <linguistic/misc.hxx>
-#include <linguistic/lngprophelp.hxx>
-
-#include <lingutil.hxx>
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::linguistic2;
-
-using ::rtl::OUString;
-
-
-///////////////////////////////////////////////////////////////////////////
-
-
-class MacSpellChecker :
- public cppu::WeakImplHelper6
- <
- XSpellChecker,
- XLinguServiceEventBroadcaster,
- XInitialization,
- XComponent,
- XServiceInfo,
- XServiceDisplayName
- >
-{
- Sequence< Locale > aSuppLocales;
-// Hunspell ** aDicts;
- rtl_TextEncoding * aDEncs;
- Locale * aDLocs;
- OUString * aDNames;
- sal_Int32 numdict;
- NSSpellChecker * macSpell;
- int macTag; //unique tag for this doc
-
- ::cppu::OInterfaceContainerHelper aEvtListeners;
- Reference< XPropertyChangeListener > xPropHelper;
- linguistic::PropertyHelper_Spell * pPropHelper;
- sal_Bool bDisposing;
-
- // disallow copy-constructor and assignment-operator for now
- MacSpellChecker(const MacSpellChecker &);
- MacSpellChecker & operator = (const MacSpellChecker &);
-
- linguistic::PropertyHelper_Spell & GetPropHelper_Impl();
- linguistic::PropertyHelper_Spell & GetPropHelper()
- {
- return pPropHelper ? *pPropHelper : GetPropHelper_Impl();
- }
-
- sal_Int16 GetSpellFailure( const OUString &rWord, const Locale &rLocale );
- Reference< XSpellAlternatives > GetProposals( const OUString &rWord, const Locale &rLocale );
-
-public:
- MacSpellChecker();
- virtual ~MacSpellChecker();
-
- // XSupportedLocales (for XSpellChecker)
- virtual Sequence< Locale > SAL_CALL getLocales() throw(RuntimeException);
- virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale ) throw(RuntimeException);
-
- // XSpellChecker
- virtual sal_Bool SAL_CALL isValid( const OUString& rWord, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
- virtual Reference< XSpellAlternatives > SAL_CALL spell( const OUString& rWord, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
-
- // XLinguServiceEventBroadcaster
- virtual sal_Bool SAL_CALL addLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
- virtual sal_Bool SAL_CALL removeLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
-
- // XServiceDisplayName
- virtual OUString SAL_CALL getServiceDisplayName( const Locale& rLocale ) throw(RuntimeException);
-
- // XInitialization
- virtual void SAL_CALL initialize( const Sequence< Any >& rArguments ) throw(Exception, RuntimeException);
-
- // XComponent
- virtual void SAL_CALL dispose() throw(RuntimeException);
- virtual void SAL_CALL addEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
- virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
-
- // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
-
-
- static inline OUString getImplementationName_Static() throw();
- static Sequence< OUString > getSupportedServiceNames_Static() throw();
-};
-
-inline OUString MacSpellChecker::getImplementationName_Static() throw()
-{
- return A2OU( "org.openoffice.lingu.MacOSXSpellChecker" );
-}
-
-
-
-///////////////////////////////////////////////////////////////////////////
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/spellcheck/macosxspell/makefile.mk b/lingucomponent/source/spellcheck/macosxspell/makefile.mk
deleted file mode 100644
index 0a724f0f1..000000000
--- a/lingucomponent/source/spellcheck/macosxspell/makefile.mk
+++ /dev/null
@@ -1,100 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..
-
-PRJNAME = lingucomponent
-TARGET = MacOSXSpell
-ENABLE_EXCEPTIONS=TRUE
-USE_DEFFILE=TRUE
-
-.IF "$(GUIBASE)"=="aqua"
-
-#----- Settings ---------------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(SYSTEM_HUNSPELL)" != "YES"
-HUNSPELL_CFLAGS += -I$(SOLARINCDIR)$/hunspell -DHUNSPELL_STATIC
-.ENDIF
-
-CXXFLAGS += $(HUNSPELL_CFLAGS)
-CFLAGSCXX += $(HUNSPELL_CFLAGS)
-CFLAGSCC += $(HUNSPELL_CFLAGS)
-
-# --- Files --------------------------------------------------------
-
-CFLAGSCXX+=$(OBJCXXFLAGS)
-CFLAGSCXX+=-I..$/..$/lingutil
-
-EXCEPTIONSFILES= \
- $(SLO)$/macspellimp.obj
-
-
-SLOFILES= \
- $(SLO)$/macreg.obj\
- $(SLO)$/macspellimp.obj
-
-
-SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
-
-SHL1STDLIBS= \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(TOOLSLIB) \
- $(SVLLIB) \
- $(SALLIB) \
- $(UCBHELPERLIB) \
- $(UNOTOOLSLIB) \
- $(LNGLIB)
-
-SHL1STDLIBS+= -framework Cocoa
-
-# build DLL
-SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1IMPLIB= i$(TARGET)
-SHL1DEPN= $(SHL1LIBS)
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.ELSE
-dummy:
- @echo " Nothing to build for GUIBASE=$(GUIBASE)"
-.ENDIF
-
-ALLTAR : $(MISC)/MacOSXSpell.component
-
-$(MISC)/MacOSXSpell.component .ERRREMOVE : \
- $(SOLARENV)/bin/createcomponent.xslt MacOSXSpell.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt MacOSXSpell.component
diff --git a/lingucomponent/source/spellcheck/spell/exports.dxp b/lingucomponent/source/spellcheck/spell/exports.dxp
deleted file mode 100644
index 700330789..000000000
--- a/lingucomponent/source/spellcheck/spell/exports.dxp
+++ /dev/null
@@ -1 +0,0 @@
-component_getFactory
diff --git a/lingucomponent/source/spellcheck/spell/makefile.mk b/lingucomponent/source/spellcheck/spell/makefile.mk
deleted file mode 100644
index 81a683c99..000000000
--- a/lingucomponent/source/spellcheck/spell/makefile.mk
+++ /dev/null
@@ -1,95 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..
-
-PRJNAME = lingucomponent
-TARGET = spell
-ENABLE_EXCEPTIONS=TRUE
-USE_DEFFILE=TRUE
-
-.IF "$(SYSTEM_HUNSPELL)" != "YES"
-HUNSPELL_CFLAGS += -I$(SOLARINCDIR)$/hunspell -DHUNSPELL_STATIC
-.ENDIF
-
-#----- Settings ---------------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-CXXFLAGS += -I$(PRJ)$/source$/lingutil $(HUNSPELL_CFLAGS)
-CFLAGSCXX += -I$(PRJ)$/source$/lingutil $(HUNSPELL_CFLAGS)
-CFLAGSCC += -I$(PRJ)$/source$/lingutil $(HUNSPELL_CFLAGS)
-
-EXCEPTIONSFILES= \
- $(SLO)$/sspellimp.obj
-
-SLOFILES= \
- $(SLO)$/sreg.obj\
- $(SLO)$/sspellimp.obj
-
-
-SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
-
-SHL1STDLIBS= \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(I18NISOLANGLIB) \
- $(TOOLSLIB) \
- $(UNOTOOLSLIB) \
- $(SVLLIB) \
- $(SALLIB) \
- $(LNGLIB) \
- $(ULINGULIB) \
- $(ICUUCLIB) \
- $(HUNSPELLLIB)
-
-# build DLL
-SHL1LIBS= $(SLB)$/$(TARGET).lib $(SLB)$/libulingu.lib
-SHL1IMPLIB= i$(TARGET)
-SHL1DEPN= $(SHL1LIBS)
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
-
-# build DEF file
-DEF1NAME =$(SHL1TARGET)
-DEF1EXPORTFILE= exports.dxp
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
-ALLTAR : $(MISC)/spell.component
-
-$(MISC)/spell.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- spell.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt spell.component
diff --git a/lingucomponent/source/spellcheck/spell/spell.component b/lingucomponent/source/spellcheck/spell/spell.component
deleted file mode 100644
index 9f951a8a8..000000000
--- a/lingucomponent/source/spellcheck/spell/spell.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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="org.openoffice.lingu.MySpellSpellChecker">
- <service name="com.sun.star.linguistic2.SpellChecker"/>
- </implementation>
-</component>
diff --git a/lingucomponent/source/spellcheck/spell/sreg.cxx b/lingucomponent/source/spellcheck/spell/sreg.cxx
deleted file mode 100644
index 6be89517e..000000000
--- a/lingucomponent/source/spellcheck/spell/sreg.cxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <rtl/string.hxx>
-
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-
-////////////////////////////////////////
-// declaration of external RegEntry-functions defined by the service objects
-//
-extern void * SAL_CALL SpellChecker_getFactory(
- const sal_Char * pImplName,
- XMultiServiceFactory * pServiceManager,
- void * /*pRegistryKey*/ );
-////////////////////////////////////////
-// definition of the two functions that are used to provide the services
-//
-
-extern "C"
-{
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- void * pRet = NULL;
- pRet = SpellChecker_getFactory(
- pImplName,
- reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
- pRegistryKey );
-
- return pRet;
-}
-
-}
-
-///////////////////////////////////////////////////////////////////////////
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.cxx b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
deleted file mode 100644
index 52d22af29..000000000
--- a/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+++ /dev/null
@@ -1,700 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
-
-#include <com/sun/star/linguistic2/SpellFailure.hpp>
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <tools/debug.hxx>
-#include <unotools/processfactory.hxx>
-#include <osl/mutex.hxx>
-
-#include <lingutil.hxx>
-#include <hunspell.hxx>
-#include <dictmgr.hxx>
-#include <sspellimp.hxx>
-
-#include <linguistic/lngprops.hxx>
-#include <linguistic/spelldta.hxx>
-#include <i18npool/mslangid.hxx>
-#include <unotools/pathoptions.hxx>
-#include <unotools/lingucfg.hxx>
-#include <unotools/useroptions.hxx>
-#include <osl/file.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/textenc.h>
-
-#include <list>
-#include <set>
-#include <string.h>
-
-using namespace utl;
-using namespace osl;
-using namespace com::sun::star;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::linguistic2;
-using namespace linguistic;
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-using ::rtl::OString;
-
-// XML-header of SPELLML queries
-#define SPELLML_HEADER "<?xml?>"
-
-///////////////////////////////////////////////////////////////////////////
-
-SpellChecker::SpellChecker()
- : aEvtListeners(GetLinguMutex())
-{
- aDicts = NULL;
- aDEncs = NULL;
- aDLocs = NULL;
- aDNames = NULL;
- bDisposing = sal_False;
- pPropHelper = NULL;
- numdict = 0;
-}
-
-SpellChecker::~SpellChecker()
-{
- if (aDicts)
- {
- for (int i = 0; i < numdict; ++i)
- {
- delete aDicts[i];
- aDicts[i] = NULL;
- }
- delete[] aDicts;
- }
- aDicts = NULL;
- numdict = 0;
- delete[] aDEncs;
- aDEncs = NULL;
- delete[] aDLocs;
- aDLocs = NULL;
- delete[] aDNames;
- aDNames = NULL;
- if (pPropHelper)
- {
- pPropHelper->RemoveAsPropListener();
- delete pPropHelper;
- }
-}
-
-PropertyHelper_Spelling & SpellChecker::GetPropHelper_Impl()
-{
- if (!pPropHelper)
- {
- Reference< XPropertySet > xPropSet( GetLinguProperties(), UNO_QUERY );
-
- pPropHelper = new PropertyHelper_Spelling( (XSpellChecker *) this, xPropSet );
- pPropHelper->AddAsPropListener(); //! after a reference is established
- }
- return *pPropHelper;
-}
-
-
-Sequence< Locale > SAL_CALL SpellChecker::getLocales()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- // this routine should return the locales supported by the installed
- // dictionaries.
-
- if (!numdict)
- {
- SvtLinguConfig aLinguCfg;
-
- // get list of extension dictionaries-to-use
- // (or better speaking: the list of dictionaries using the
- // new configuration entries).
- std::list< SvtLinguConfigDictionaryEntry > aDics;
- uno::Sequence< rtl::OUString > aFormatList;
- aLinguCfg.GetSupportedDictionaryFormatsFor( A2OU("SpellCheckers"),
- A2OU("org.openoffice.lingu.MySpellSpellChecker"), aFormatList );
- sal_Int32 nLen = aFormatList.getLength();
- for (sal_Int32 i = 0; i < nLen; ++i)
- {
- std::vector< SvtLinguConfigDictionaryEntry > aTmpDic(
- aLinguCfg.GetActiveDictionariesByFormat( aFormatList[i] ) );
- aDics.insert( aDics.end(), aTmpDic.begin(), aTmpDic.end() );
- }
-
- //!! for compatibility with old dictionaries (the ones not using extensions
- //!! or new configuration entries, but still using the dictionary.lst file)
- //!! Get the list of old style spell checking dictionaries to use...
- std::vector< SvtLinguConfigDictionaryEntry > aOldStyleDics(
- GetOldStyleDics( "DICT" ) );
-
- // to prefer dictionaries with configuration entries we will only
- // use those old style dictionaries that add a language that
- // is not yet supported by the list od new style dictionaries
- MergeNewStyleDicsAndOldStyleDics( aDics, aOldStyleDics );
-
- numdict = aDics.size();
- if (numdict)
- {
- // get supported locales from the dictionaries-to-use...
- sal_Int32 k = 0;
- std::set< rtl::OUString, lt_rtl_OUString > aLocaleNamesSet;
- std::list< SvtLinguConfigDictionaryEntry >::const_iterator aDictIt;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- {
- uno::Sequence< rtl::OUString > aLocaleNames( aDictIt->aLocaleNames );
- sal_Int32 nLen2 = aLocaleNames.getLength();
- for (k = 0; k < nLen2; ++k)
- {
- aLocaleNamesSet.insert( aLocaleNames[k] );
- }
- }
- // ... and add them to the resulting sequence
- aSuppLocales.realloc( aLocaleNamesSet.size() );
- std::set< rtl::OUString, lt_rtl_OUString >::const_iterator aItB;
- k = 0;
- for (aItB = aLocaleNamesSet.begin(); aItB != aLocaleNamesSet.end(); ++aItB)
- {
- Locale aTmp( MsLangId::convertLanguageToLocale(
- MsLangId::convertIsoStringToLanguage( *aItB )));
- aSuppLocales[k++] = aTmp;
- }
-
- //! For each dictionary and each locale we need a seperate entry.
- //! If this results in more than one dictionary per locale than (for now)
- //! it is undefined which dictionary gets used.
- //! In the future the implementation should support using several dictionaries
- //! for one locale.
- numdict = 0;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- numdict = numdict + aDictIt->aLocaleNames.getLength();
-
- // add dictionary information
- aDicts = new Hunspell* [numdict];
- aDEncs = new rtl_TextEncoding [numdict];
- aDLocs = new Locale [numdict];
- aDNames = new OUString [numdict];
- k = 0;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- {
- if (aDictIt->aLocaleNames.getLength() > 0 &&
- aDictIt->aLocations.getLength() > 0)
- {
- uno::Sequence< rtl::OUString > aLocaleNames( aDictIt->aLocaleNames );
- sal_Int32 nLocales = aLocaleNames.getLength();
-
- // currently only one language per dictionary is supported in the actual implementation...
- // Thus here we work-around this by adding the same dictionary several times.
- // Once for each of it's supported locales.
- for (sal_Int32 i = 0; i < nLocales; ++i)
- {
- aDicts[k] = NULL;
- aDEncs[k] = RTL_TEXTENCODING_DONTKNOW;
- aDLocs[k] = MsLangId::convertLanguageToLocale(
- MsLangId::convertIsoStringToLanguage( aLocaleNames[i] ));
- // also both files have to be in the same directory and the
- // file names must only differ in the extension (.aff/.dic).
- // Thus we use the first location only and strip the extension part.
- rtl::OUString aLocation = aDictIt->aLocations[0];
- sal_Int32 nPos = aLocation.lastIndexOf( '.' );
- aLocation = aLocation.copy( 0, nPos );
- aDNames[k] = aLocation;
-
- ++k;
- }
- }
- }
- DBG_ASSERT( k == numdict, "index mismatch?" );
- }
- else
- {
- /* no dictionary found so register no dictionaries */
- numdict = 0;
- aDicts = NULL;
- aDEncs = NULL;
- aDLocs = NULL;
- aDNames = NULL;
- aSuppLocales.realloc(0);
- }
- }
-
- return aSuppLocales;
-}
-
-
-sal_Bool SAL_CALL SpellChecker::hasLocale(const Locale& rLocale)
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!aSuppLocales.getLength())
- getLocales();
-
- sal_Int32 nLen = aSuppLocales.getLength();
- for (sal_Int32 i = 0; i < nLen; ++i)
- {
- const Locale *pLocale = aSuppLocales.getConstArray();
- if (rLocale == pLocale[i])
- {
- bRes = sal_True;
- break;
- }
- }
- return bRes;
-}
-
-
-sal_Int16 SpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rLocale )
-{
- Hunspell * pMS = NULL;
- rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
-
- // initialize a myspell object for each dictionary once
- // (note: mutex is held higher up in isValid)
-
- sal_Int16 nRes = -1;
-
- // first handle smart quotes both single and double
- OUStringBuffer rBuf(rWord);
- sal_Int32 n = rBuf.getLength();
- sal_Unicode c;
- for (sal_Int32 ix=0; ix < n; ix++)
- {
- c = rBuf.charAt(ix);
- if ((c == 0x201C) || (c == 0x201D))
- rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((c == 0x2018) || (c == 0x2019))
- rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
-
- if (n)
- {
- for (sal_Int32 i = 0; i < numdict; ++i)
- {
- pMS = NULL;
- eEnc = RTL_TEXTENCODING_DONTKNOW;
-
- if (rLocale == aDLocs[i])
- {
- if (!aDicts[i])
- {
- OUString dicpath = aDNames[i] + A2OU(".dic");
- OUString affpath = aDNames[i] + A2OU(".aff");
- OUString dict;
- OUString aff;
- osl::FileBase::getSystemPathFromFileURL(dicpath,dict);
- osl::FileBase::getSystemPathFromFileURL(affpath,aff);
- OString aTmpaff(OU2ENC(aff,osl_getThreadTextEncoding()));
- OString aTmpdict(OU2ENC(dict,osl_getThreadTextEncoding()));
-
-#if defined(WNT)
- // workaround for Windows specifc problem that the
- // path length in calls to 'fopen' is limted to somewhat
- // about 120+ characters which will usually be exceed when
- // using dictionaries as extensions.
- aTmpaff = Win_GetShortPathName( aff );
- aTmpdict = Win_GetShortPathName( dict );
-#endif
-
- aDicts[i] = new Hunspell(aTmpaff.getStr(),aTmpdict.getStr());
- aDEncs[i] = RTL_TEXTENCODING_DONTKNOW;
- if (aDicts[i])
- aDEncs[i] = getTextEncodingFromCharset(aDicts[i]->get_dic_encoding());
- }
- pMS = aDicts[i];
- eEnc = aDEncs[i];
- }
-
- if (pMS)
- {
- // we don't want to work with a default text encoding since following incorrect
- // results may occur only for specific text and thus may be hard to notice.
- // Thus better always make a clean exit here if the text encoding is in question.
- // Hopefully something not working at all will raise proper attention quickly. ;-)
- DBG_ASSERT( eEnc != RTL_TEXTENCODING_DONTKNOW, "failed to get text encoding! (maybe incorrect encoding string in file)" );
- if (eEnc == RTL_TEXTENCODING_DONTKNOW)
- return -1;
-
- OString aWrd(OU2ENC(nWord,eEnc));
- int rVal = pMS->spell((char*)aWrd.getStr());
- if (rVal != 1)
- nRes = SpellFailure::SPELLING_ERROR;
- else
- return -1;
- pMS = NULL;
- }
- }
- }
-
- return nRes;
-}
-
-
-sal_Bool SAL_CALL SpellChecker::isValid( const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (rLocale == Locale() || !rWord.getLength())
- return sal_True;
-
- if (!hasLocale( rLocale ))
-#ifdef LINGU_EXCEPTIONS
- throw( IllegalArgumentException() );
-#else
- return sal_True;
-#endif
-
- // return sal_False to process SPELLML requests (they are longer than the header)
- if (rWord.match(A2OU(SPELLML_HEADER), 0) && (rWord.getLength() > 10)) return sal_False;
-
- // Get property values to be used.
- // These are be the default values set in the SN_LINGU_PROPERTIES
- // PropertySet which are overridden by the supplied ones from the
- // last argument.
- // You'll probably like to use a simplier solution than the provided
- // one using the PropertyHelper_Spell.
-
- PropertyHelper_Spelling& rHelper = GetPropHelper();
- rHelper.SetTmpPropVals( rProperties );
-
- sal_Int16 nFailure = GetSpellFailure( rWord, rLocale );
- if (nFailure != -1 && !rWord.match(A2OU(SPELLML_HEADER), 0))
- {
- sal_Int16 nLang = LocaleToLanguage( rLocale );
- // postprocess result for errors that should be ignored
- const bool bIgnoreError =
- (!rHelper.IsSpellUpperCase() && IsUpper( rWord, nLang )) ||
- (!rHelper.IsSpellWithDigits() && HasDigits( rWord )) ||
- (!rHelper.IsSpellCapitalization() && nFailure == SpellFailure::CAPTION_ERROR);
- if (bIgnoreError)
- nFailure = -1;
- }
-
- return (nFailure == -1);
-}
-
-
-Reference< XSpellAlternatives >
- SpellChecker::GetProposals( const OUString &rWord, const Locale &rLocale )
-{
- // Retrieves the return values for the 'spell' function call in case
- // of a misspelled word.
- // Especially it may give a list of suggested (correct) words:
-
- Reference< XSpellAlternatives > xRes;
- // note: mutex is held by higher up by spell which covers both
-
- Hunspell* pMS = NULL;
- rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
- int count = 0;
- int numsug = 0;
-
- // first handle smart quotes (single and double)
- OUStringBuffer rBuf(rWord);
- sal_Int32 n = rBuf.getLength();
- sal_Unicode c;
- for (sal_Int32 ix=0; ix < n; ix++)
- {
- c = rBuf.charAt(ix);
- if ((c == 0x201C) || (c == 0x201D))
- rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((c == 0x2018) || (c == 0x2019))
- rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
-
- if (n)
- {
- sal_Int16 nLang = LocaleToLanguage( rLocale );
-
- Sequence< OUString > aStr( 0 );
-
- for (int i =0; i < numdict; i++)
- {
- pMS = NULL;
- eEnc = RTL_TEXTENCODING_DONTKNOW;
- count = 0;
-
- if (rLocale == aDLocs[i])
- {
- pMS = aDicts[i];
- eEnc = aDEncs[i];
- }
-
- if (pMS)
- {
- char ** suglst = NULL;
- OString aWrd(OU2ENC(nWord,eEnc));
- count = pMS->suggest(&suglst, (const char *) aWrd.getStr());
-
- if (count)
- {
- aStr.realloc( numsug + count );
- OUString *pStr = aStr.getArray();
- for (int ii=0; ii < count; ++ii)
- {
- OUString cvtwrd(suglst[ii],strlen(suglst[ii]),eEnc);
- pStr[numsug + ii] = cvtwrd;
- }
- pMS->free_list(&suglst, count);
- numsug += count;
- }
- }
- }
-
- // now return an empty alternative for no suggestions or the list of alternatives if some found
- String aTmp(rWord);
- xRes = SpellAlternatives::CreateSpellAlternatives( aTmp, nLang, SpellFailure::SPELLING_ERROR, aStr );
- return xRes;
- }
- return xRes;
-}
-
-
-Reference< XSpellAlternatives > SAL_CALL SpellChecker::spell(
- const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (rLocale == Locale() || !rWord.getLength())
- return NULL;
-
- if (!hasLocale( rLocale ))
-#ifdef LINGU_EXCEPTIONS
- throw( IllegalArgumentException() );
-#else
- return NULL;
-#endif
-
- Reference< XSpellAlternatives > xAlt;
- if (!isValid( rWord, rLocale, rProperties ))
- {
- xAlt = GetProposals( rWord, rLocale );
- }
- return xAlt;
-}
-
-
-Reference< XInterface > SAL_CALL SpellChecker_CreateInstance(
- const Reference< XMultiServiceFactory > & /*rSMgr*/ )
- throw(Exception)
-{
-
- Reference< XInterface > xService = (cppu::OWeakObject*) new SpellChecker;
- return xService;
-}
-
-
-sal_Bool SAL_CALL SpellChecker::addLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!bDisposing && rxLstnr.is())
- {
- bRes = GetPropHelper().addLinguServiceEventListener( rxLstnr );
- }
- return bRes;
-}
-
-
-sal_Bool SAL_CALL SpellChecker::removeLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!bDisposing && rxLstnr.is())
- {
- bRes = GetPropHelper().removeLinguServiceEventListener( rxLstnr );
- }
- return bRes;
-}
-
-
-OUString SAL_CALL SpellChecker::getServiceDisplayName( const Locale& /*rLocale*/ )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
- return A2OU( "Hunspell SpellChecker" );
-}
-
-
-void SAL_CALL SpellChecker::initialize( const Sequence< Any >& rArguments )
- throw(Exception, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!pPropHelper)
- {
- sal_Int32 nLen = rArguments.getLength();
- if (2 == nLen)
- {
- Reference< XPropertySet > xPropSet;
- rArguments.getConstArray()[0] >>= xPropSet;
- //rArguments.getConstArray()[1] >>= xDicList;
-
- //! Pointer allows for access of the non-UNO functions.
- //! And the reference to the UNO-functions while increasing
- //! the ref-count and will implicitly free the memory
- //! when the object is not longer used.
- pPropHelper = new PropertyHelper_Spelling( (XSpellChecker *) this, xPropSet );
- pPropHelper->AddAsPropListener(); //! after a reference is established
- }
- else {
- OSL_FAIL( "wrong number of arguments in sequence" );
- }
- }
-}
-
-
-void SAL_CALL SpellChecker::dispose()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing)
- {
- bDisposing = sal_True;
- EventObject aEvtObj( (XSpellChecker *) this );
- aEvtListeners.disposeAndClear( aEvtObj );
- if (pPropHelper)
- {
- pPropHelper->RemoveAsPropListener();
- delete pPropHelper;
- pPropHelper = NULL;
- }
- }
-}
-
-
-void SAL_CALL SpellChecker::addEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing && rxListener.is())
- aEvtListeners.addInterface( rxListener );
-}
-
-
-void SAL_CALL SpellChecker::removeEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing && rxListener.is())
- aEvtListeners.removeInterface( rxListener );
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-// Service specific part
-//
-
-OUString SAL_CALL SpellChecker::getImplementationName()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- return getImplementationName_Static();
-}
-
-
-sal_Bool SAL_CALL SpellChecker::supportsService( const OUString& ServiceName )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
- return sal_False;
-}
-
-
-Sequence< OUString > SAL_CALL SpellChecker::getSupportedServiceNames()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- return getSupportedServiceNames_Static();
-}
-
-
-Sequence< OUString > SpellChecker::getSupportedServiceNames_Static()
- throw()
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- Sequence< OUString > aSNS( 1 ); // auch mehr als 1 Service moeglich
- aSNS.getArray()[0] = A2OU( SN_SPELLCHECKER );
- return aSNS;
-}
-
-void * SAL_CALL SpellChecker_getFactory( const sal_Char * pImplName,
- XMultiServiceFactory * pServiceManager, void * )
-{
- void * pRet = 0;
- if ( !SpellChecker::getImplementationName_Static().compareToAscii( pImplName ) )
- {
- Reference< XSingleServiceFactory > xFactory =
- cppu::createOneInstanceFactory(
- pServiceManager,
- SpellChecker::getImplementationName_Static(),
- SpellChecker_CreateInstance,
- SpellChecker::getSupportedServiceNames_Static());
- // acquire, because we return an interface pointer instead of a reference
- xFactory->acquire();
- pRet = xFactory.get();
- }
- return pRet;
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.hxx b/lingucomponent/source/spellcheck/spell/sspellimp.hxx
deleted file mode 100644
index 09417d4dc..000000000
--- a/lingucomponent/source/spellcheck/spell/sspellimp.hxx
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef _LINGU2_SPELLIMP_HXX_
-#define _LINGU2_SPELLIMP_HXX_
-
-#include <uno/lbnames.h> // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
-#include <cppuhelper/implbase1.hxx> // helper for implementations
-#include <cppuhelper/implbase6.hxx> // helper for implementations
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XServiceDisplayName.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyValues.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/linguistic2/XSpellChecker.hpp>
-#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
-#include <com/sun/star/linguistic2/XLinguServiceEventBroadcaster.hpp>
-#include <tools/table.hxx>
-
-#include <linguistic/misc.hxx>
-#include <linguistic/lngprophelp.hxx>
-
-#include <lingutil.hxx>
-
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::linguistic2;
-
-
-///////////////////////////////////////////////////////////////////////////
-
-
-class SpellChecker :
- public cppu::WeakImplHelper6
- <
- XSpellChecker,
- XLinguServiceEventBroadcaster,
- XInitialization,
- XComponent,
- XServiceInfo,
- XServiceDisplayName
- >
-{
- Sequence< Locale > aSuppLocales;
- Hunspell ** aDicts;
- rtl_TextEncoding * aDEncs;
- Locale * aDLocs;
- OUString * aDNames;
- sal_Int32 numdict;
-
- ::cppu::OInterfaceContainerHelper aEvtListeners;
- linguistic::PropertyHelper_Spelling* pPropHelper;
- sal_Bool bDisposing;
-
- // disallow copy-constructor and assignment-operator for now
- SpellChecker(const SpellChecker &);
- SpellChecker & operator = (const SpellChecker &);
-
- linguistic::PropertyHelper_Spelling& GetPropHelper_Impl();
- linguistic::PropertyHelper_Spelling& GetPropHelper()
- {
- return pPropHelper ? *pPropHelper : GetPropHelper_Impl();
- }
-
- sal_Int16 GetSpellFailure( const OUString &rWord, const Locale &rLocale );
- Reference< XSpellAlternatives > GetProposals( const OUString &rWord, const Locale &rLocale );
-
-public:
- SpellChecker();
- virtual ~SpellChecker();
-
- // XSupportedLocales (for XSpellChecker)
- virtual Sequence< Locale > SAL_CALL getLocales() throw(RuntimeException);
- virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale ) throw(RuntimeException);
-
- // XSpellChecker
- virtual sal_Bool SAL_CALL isValid( const OUString& rWord, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
- virtual Reference< XSpellAlternatives > SAL_CALL spell( const OUString& rWord, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
-
- // XLinguServiceEventBroadcaster
- virtual sal_Bool SAL_CALL addLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
- virtual sal_Bool SAL_CALL removeLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
-
- // XServiceDisplayName
- virtual OUString SAL_CALL getServiceDisplayName( const Locale& rLocale ) throw(RuntimeException);
-
- // XInitialization
- virtual void SAL_CALL initialize( const Sequence< Any >& rArguments ) throw(Exception, RuntimeException);
-
- // XComponent
- virtual void SAL_CALL dispose() throw(RuntimeException);
- virtual void SAL_CALL addEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
- virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
-
- // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
-
-
- static inline OUString getImplementationName_Static() throw();
- static Sequence< OUString > getSupportedServiceNames_Static() throw();
-};
-
-inline OUString SpellChecker::getImplementationName_Static() throw()
-{
- return A2OU( "org.openoffice.lingu.MySpellSpellChecker" );
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/thesaurus/libnth/exports.dxp b/lingucomponent/source/thesaurus/libnth/exports.dxp
deleted file mode 100644
index 700330789..000000000
--- a/lingucomponent/source/thesaurus/libnth/exports.dxp
+++ /dev/null
@@ -1 +0,0 @@
-component_getFactory
diff --git a/lingucomponent/source/thesaurus/libnth/lnth.component b/lingucomponent/source/thesaurus/libnth/lnth.component
deleted file mode 100644
index bea91b94c..000000000
--- a/lingucomponent/source/thesaurus/libnth/lnth.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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="org.openoffice.lingu.new.Thesaurus">
- <service name="com.sun.star.linguistic2.Thesaurus"/>
- </implementation>
-</component>
diff --git a/lingucomponent/source/thesaurus/libnth/makefile.mk b/lingucomponent/source/thesaurus/libnth/makefile.mk
deleted file mode 100644
index 1cbecd32d..000000000
--- a/lingucomponent/source/thesaurus/libnth/makefile.mk
+++ /dev/null
@@ -1,112 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..
-
-PRJNAME = lingucomponent
-TARGET = lnth
-ENABLE_EXCEPTIONS=TRUE
-USE_DEFFILE=TRUE
-
-
-.IF "$(MYTHESLIB)"==""
-.IF "$(GUI)"=="UNX"
-MYTHESLIB=-lmythes
-.ENDIF # unx
-.IF "$(GUI)"=="WNT"
-MYTHESLIB=libmythes.lib
-.ENDIF # wnt
-.ENDIF
-
-#----- Settings ---------------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-.IF "$(SYSTEM_HUNSPELL)" != "YES"
-HUNSPELL_CFLAGS += -I$(SOLARINCDIR)$/hunspell -DHUNSPELL_STATIC
-.ENDIF
-
-.IF "$(SYSTEM_MYTHES)" != "YES"
-CXXFLAGS += -I..$/mythes
-CFLAGSCXX += -I..$/mythes
-CFLAGSCC += -I..$/mythes
-.ENDIF
-CXXFLAGS += -I$(PRJ)$/source$/lingutil $(HUNSPELL_CFLAGS)
-CFLAGSCXX += -I$(PRJ)$/source$/lingutil $(HUNSPELL_CFLAGS)
-CFLAGSCC += -I$(PRJ)$/source$/lingutil $(HUNSPELL_CFLAGS)
-
-EXCEPTIONSFILES= \
- $(SLO)$/nthesimp.obj \
- $(SLO)$/nthesdta.obj
-
-SLOFILES= \
- $(SLO)$/nthesdta.obj\
- $(SLO)$/ntreg.obj\
- $(SLO)$/nthesimp.obj
-
-
-SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
-
-SHL1STDLIBS= \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(TOOLSLIB) \
- $(I18NISOLANGLIB) \
- $(SVLLIB) \
- $(SALLIB) \
- $(UNOTOOLSLIB) \
- $(LNGLIB) \
- $(ULINGULIB) \
- $(MYTHESLIB) \
- $(HUNSPELLLIB)
-
-# build DLL
-SHL1LIBS= $(SLB)$/$(TARGET).lib $(SLB)$/libulingu.lib
-SHL1IMPLIB= i$(TARGET)
-SHL1DEPN= $(SHL1LIBS)
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
-
-# build DEF file
-DEF1NAME =$(SHL1TARGET)
-DEF1EXPORTFILE= exports.dxp
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
-ALLTAR : $(MISC)/lnth.component
-
-$(MISC)/lnth.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- lnth.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt lnth.component
diff --git a/lingucomponent/source/thesaurus/libnth/nthesdta.cxx b/lingucomponent/source/thesaurus/libnth/nthesdta.cxx
deleted file mode 100644
index 549c9c0e4..000000000
--- a/lingucomponent/source/thesaurus/libnth/nthesdta.cxx
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-#include <com/sun/star/uno/Reference.h>
-#include <tools/debug.hxx>
-#include <unotools/processfactory.hxx>
-#include <osl/mutex.hxx>
-
-#include "nthesdta.hxx"
-#include <linguistic/misc.hxx>
-
-using namespace utl;
-using namespace osl;
-using namespace com::sun::star;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::linguistic2;
-
-using ::rtl::OUString;
-
-namespace linguistic
-{
-
-///////////////////////////////////////////////////////////////////////////
-
-Meaning::Meaning(
-#if 0
- const OUString &rTerm, sal_Int16 nLang,
- const PropertyHelper_Thes &rHelper ) :
-#else
- const OUString &rTerm, sal_Int16 nLang) :
-#endif
-
- aSyn ( Sequence< OUString >(1) ),
- aTerm (rTerm),
- nLanguage (nLang)
-
-{
-#if 0
- // this is for future use by a german thesaurus when one exists
- bIsGermanPreReform = rHelper.IsGermanPreReform;
-#endif
-}
-
-
-Meaning::~Meaning()
-{
-}
-
-
-OUString SAL_CALL Meaning::getMeaning()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
- return aTerm;
-}
-
-
-Sequence< OUString > SAL_CALL Meaning::querySynonyms()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
- return aSyn;
-}
-
-
-void Meaning::SetSynonyms( const Sequence< OUString > &rSyn )
-{
- MutexGuard aGuard( GetLinguMutex() );
- aSyn = rSyn;
-}
-
-void Meaning::SetMeaning( const OUString &rTerm )
-{
- MutexGuard aGuard( GetLinguMutex() );
- aTerm = rTerm;
-}
-
-///////////////////////////////////////////////////////////////////////////
-
-} // namespace linguistic
-
-
-
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/thesaurus/libnth/nthesdta.hxx b/lingucomponent/source/thesaurus/libnth/nthesdta.hxx
deleted file mode 100644
index 6e0352bf7..000000000
--- a/lingucomponent/source/thesaurus/libnth/nthesdta.hxx
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef _LINGUISTIC_THESDTA_HXX_
-#define _LINGUISTIC_THESDTA_HXX_
-
-
-#include <com/sun/star/linguistic2/XMeaning.hpp>
-
-#include <tools/solar.h>
-
-#include <uno/lbnames.h> // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
-#include <cppuhelper/implbase1.hxx> // helper for implementations
-
-
-namespace linguistic
-{
-
-class Meaning :
- public cppu::WeakImplHelper1
- <
- ::com::sun::star::linguistic2::XMeaning
- >
-{
- ::com::sun::star::uno::Sequence< ::rtl::OUString > aSyn; // list of synonyms, may be empty.
- ::rtl::OUString aTerm;
- sal_Int16 nLanguage;
-
-#if 0
- // this is for future use by a German thesaurus
- sal_Bool bIsGermanPreReform;
-#endif
-
- // disallow copy-constructor and assignment-operator for now
- Meaning(const Meaning &);
- Meaning & operator = (const Meaning &);
-
-public:
-#if 0
- Meaning(const ::rtl::OUString &rTerm, sal_Int16 nLang, const PropertyHelper_Thes &rHelper);
-#else
- Meaning(const ::rtl::OUString &rTerm, sal_Int16 nLang);
-#endif
- virtual ~Meaning();
-
- // XMeaning
- virtual ::rtl::OUString SAL_CALL getMeaning() throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL querySynonyms() throw(::com::sun::star::uno::RuntimeException);
-
- // non-interface specific functions
- void SetSynonyms( const ::com::sun::star::uno::Sequence< ::rtl::OUString > &rSyn );
- void SetMeaning( const ::rtl::OUString &rTerm );
-};
-
-
-///////////////////////////////////////////////////////////////////////////
-
-} // namespace linguistic
-
-#endif
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
deleted file mode 100644
index 5d207ca45..000000000
--- a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
+++ /dev/null
@@ -1,794 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-#include <com/sun/star/uno/Reference.h>
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <i18npool/mslangid.hxx>
-#include <tools/debug.hxx>
-#include <unotools/processfactory.hxx>
-#include <osl/mutex.hxx>
-#include <unotools/pathoptions.hxx>
-#include <unotools/lingucfg.hxx>
-
-#include <rtl/string.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/textenc.h>
-
-#include "nthesimp.hxx"
-#include <linguistic/misc.hxx>
-#include <linguistic/lngprops.hxx>
-#include "nthesdta.hxx"
-#include <dictmgr.hxx>
-
-#include <list>
-#include <set>
-#include <string.h>
-
-// values asigned to capitalization types
-#define CAPTYPE_UNKNOWN 0
-#define CAPTYPE_NOCAP 1
-#define CAPTYPE_INITCAP 2
-#define CAPTYPE_ALLCAP 3
-#define CAPTYPE_MIXED 4
-
-// XML-header to query SPELLML support
-#define SPELLML_SUPPORT "<?xml?>"
-
-using namespace utl;
-using namespace osl;
-using namespace com::sun::star;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::linguistic2;
-using namespace linguistic;
-
-using ::rtl::OUString;
-using ::rtl::OString;
-using ::rtl::OUStringToOString;
-
-///////////////////////////////////////////////////////////////////////////
-
-static uno::Reference< XLinguServiceManager > GetLngSvcMgr_Impl()
-{
- uno::Reference< XLinguServiceManager > xRes;
- uno::Reference< XMultiServiceFactory > xMgr = getProcessServiceFactory();
- if (xMgr.is())
- {
- xRes = uno::Reference< XLinguServiceManager > ( xMgr->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.linguistic2.LinguServiceManager" ) ) ), UNO_QUERY ) ;
- }
- return xRes;
-}
-
-Thesaurus::Thesaurus() :
- aEvtListeners ( GetLinguMutex() )
-{
- bDisposing = sal_False;
- pPropHelper = NULL;
- aThes = NULL;
- aCharSetInfo = NULL;
- aTEncs = NULL;
- aTLocs = NULL;
- aTNames = NULL;
- numthes = 0;
-}
-
-
-Thesaurus::~Thesaurus()
-{
- if (aThes)
- {
- for (int i = 0; i < numthes; i++)
- {
- if (aThes[i]) delete aThes[i];
- aThes[i] = NULL;
- }
- delete[] aThes;
- }
- aThes = NULL;
- if (aCharSetInfo)
- {
- for (int i = 0; i < numthes; i++)
- {
- if (aCharSetInfo[i]) delete aCharSetInfo[i];
- aCharSetInfo[i] = NULL;
- }
- delete[] aCharSetInfo;
- }
- aCharSetInfo = NULL;
- numthes = 0;
- if (aTEncs) delete[] aTEncs;
- aTEncs = NULL;
- if (aTLocs) delete[] aTLocs;
- aTLocs = NULL;
- if (aTNames) delete[] aTNames;
- aTNames = NULL;
-
- if (pPropHelper)
- {
- pPropHelper->RemoveAsPropListener();
- delete pPropHelper;
- }
-}
-
-
-PropertyHelper_Thesaurus& Thesaurus::GetPropHelper_Impl()
-{
- if (!pPropHelper)
- {
- Reference< XPropertySet > xPropSet( GetLinguProperties(), UNO_QUERY );
-
- pPropHelper = new PropertyHelper_Thesaurus( (XThesaurus *) this, xPropSet );
- pPropHelper->AddAsPropListener(); //! after a reference is established
- }
- return *pPropHelper;
-}
-
-
-Sequence< Locale > SAL_CALL Thesaurus::getLocales()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- // this routine should return the locales supported by the installed
- // dictionaries.
-
- if (!numthes)
- {
- SvtLinguConfig aLinguCfg;
-
- // get list of dictionaries-to-use
- std::list< SvtLinguConfigDictionaryEntry > aDics;
- uno::Sequence< rtl::OUString > aFormatList;
- aLinguCfg.GetSupportedDictionaryFormatsFor( A2OU("Thesauri"),
- A2OU("org.openoffice.lingu.new.Thesaurus"), aFormatList );
- sal_Int32 nLen = aFormatList.getLength();
- for (sal_Int32 i = 0; i < nLen; ++i)
- {
- std::vector< SvtLinguConfigDictionaryEntry > aTmpDic(
- aLinguCfg.GetActiveDictionariesByFormat( aFormatList[i] ) );
- aDics.insert( aDics.end(), aTmpDic.begin(), aTmpDic.end() );
- }
-
- //!! for compatibility with old dictionaries (the ones not using extensions
- //!! or new configuration entries, but still using the dictionary.lst file)
- //!! Get the list of old style spell checking dictionaries to use...
- std::vector< SvtLinguConfigDictionaryEntry > aOldStyleDics(
- GetOldStyleDics( "THES" ) );
-
- // to prefer dictionaries with configuration entries we will only
- // use those old style dictionaries that add a language that
- // is not yet supported by the list od new style dictionaries
- MergeNewStyleDicsAndOldStyleDics( aDics, aOldStyleDics );
-
- numthes = aDics.size();
- if (numthes)
- {
- // get supported locales from the dictionaries-to-use...
- sal_Int32 k = 0;
- std::set< rtl::OUString, lt_rtl_OUString > aLocaleNamesSet;
- std::list< SvtLinguConfigDictionaryEntry >::const_iterator aDictIt;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- {
- uno::Sequence< rtl::OUString > aLocaleNames( aDictIt->aLocaleNames );
- sal_Int32 nLen2 = aLocaleNames.getLength();
- for (k = 0; k < nLen2; ++k)
- {
- aLocaleNamesSet.insert( aLocaleNames[k] );
- }
- }
- // ... and add them to the resulting sequence
- aSuppLocales.realloc( aLocaleNamesSet.size() );
- std::set< rtl::OUString, lt_rtl_OUString >::const_iterator aItB;
- k = 0;
- for (aItB = aLocaleNamesSet.begin(); aItB != aLocaleNamesSet.end(); ++aItB)
- {
- Locale aTmp( MsLangId::convertLanguageToLocale(
- MsLangId::convertIsoStringToLanguage( *aItB )));
- aSuppLocales[k++] = aTmp;
- }
-
- //! For each dictionary and each locale we need a seperate entry.
- //! If this results in more than one dictionary per locale than (for now)
- //! it is undefined which dictionary gets used.
- //! In the future the implementation should support using several dictionaries
- //! for one locale.
- numthes = 0;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- numthes = numthes + aDictIt->aLocaleNames.getLength();
-
- // add dictionary information
- aThes = new MyThes* [numthes];
- aTEncs = new rtl_TextEncoding [numthes];
- aTLocs = new Locale [numthes];
- aTNames = new OUString [numthes];
- aCharSetInfo = new CharClass* [numthes];
-
- k = 0;
- for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
- {
- if (aDictIt->aLocaleNames.getLength() > 0 &&
- aDictIt->aLocations.getLength() > 0)
- {
- uno::Sequence< rtl::OUString > aLocaleNames( aDictIt->aLocaleNames );
- sal_Int32 nLocales = aLocaleNames.getLength();
-
- // currently only one language per dictionary is supported in the actual implementation...
- // Thus here we work-around this by adding the same dictionary several times.
- // Once for each of it's supported locales.
- for (sal_Int32 i = 0; i < nLocales; ++i)
- {
- aThes[k] = NULL;
- aTEncs[k] = RTL_TEXTENCODING_DONTKNOW;
- aTLocs[k] = MsLangId::convertLanguageToLocale(
- MsLangId::convertIsoStringToLanguage( aDictIt->aLocaleNames[i] ));
- aCharSetInfo[k] = new CharClass( aTLocs[k] );
- // also both files have to be in the same directory and the
- // file names must only differ in the extension (.aff/.dic).
- // Thus we use the first location only and strip the extension part.
- rtl::OUString aLocation = aDictIt->aLocations[0];
- sal_Int32 nPos = aLocation.lastIndexOf( '.' );
- aLocation = aLocation.copy( 0, nPos );
- aTNames[k] = aLocation;
-
- ++k;
- }
- }
- }
- DBG_ASSERT( k == numthes, "index mismatch?" );
- }
- else
- {
- /* no dictionary found so register no dictionaries */
- numthes = 0;
- aThes = NULL;
- aTEncs = NULL;
- aTLocs = NULL;
- aTNames = NULL;
- aCharSetInfo = NULL;
- aSuppLocales.realloc(0);
- }
- }
-
- return aSuppLocales;
-}
-
-
-
-sal_Bool SAL_CALL Thesaurus::hasLocale(const Locale& rLocale)
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- sal_Bool bRes = sal_False;
- if (!aSuppLocales.getLength())
- getLocales();
- sal_Int32 nLen = aSuppLocales.getLength();
- for (sal_Int32 i = 0; i < nLen; ++i)
- {
- const Locale *pLocale = aSuppLocales.getConstArray();
- if (rLocale == pLocale[i])
- {
- bRes = sal_True;
- break;
- }
- }
- return bRes;
-}
-
-
-Sequence < Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL Thesaurus::queryMeanings(
- const OUString& qTerm, const Locale& rLocale,
- const PropertyValues& rProperties)
- throw(IllegalArgumentException, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- uno::Sequence< Reference< XMeaning > > aMeanings( 1 );
- uno::Sequence< Reference< XMeaning > > noMeanings( 0 );
- uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() );
- uno::Reference< XSpellChecker1 > xSpell;
-
- OUString rTerm(qTerm);
- OUString pTerm(qTerm);
- sal_uInt16 ct = CAPTYPE_UNKNOWN;
- sal_Int32 stem = 0;
- sal_Int32 stem2 = 0;
-
- sal_Int16 nLanguage = LocaleToLanguage( rLocale );
-
- if (nLanguage == LANGUAGE_NONE || !rTerm.getLength())
- return noMeanings;
-
- if (!hasLocale( rLocale ))
-#ifdef LINGU_EXCEPTIONS
- throw( IllegalArgumentException() );
-#else
- return noMeanings;
-#endif
-
- if (prevTerm == qTerm && prevLocale == nLanguage)
- return prevMeanings;
-
- mentry * pmean = NULL;
- sal_Int32 nmean = 0;
-
- PropertyHelper_Thesaurus &rHelper = GetPropHelper();
- rHelper.SetTmpPropVals( rProperties );
-
- MyThes * pTH = NULL;
- rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
- CharClass * pCC = NULL;
-
- // find the first thesaurus that matches the locale
- for (int i =0; i < numthes; i++)
- {
- if (rLocale == aTLocs[i])
- {
- // open up and intialize this thesaurus if need be
- if (!aThes[i])
- {
- OUString datpath = aTNames[i] + A2OU(".dat");
- OUString idxpath = aTNames[i] + A2OU(".idx");
- OUString ndat;
- OUString nidx;
- osl::FileBase::getSystemPathFromFileURL(datpath,ndat);
- osl::FileBase::getSystemPathFromFileURL(idxpath,nidx);
- OString aTmpidx(OU2ENC(nidx,osl_getThreadTextEncoding()));
- OString aTmpdat(OU2ENC(ndat,osl_getThreadTextEncoding()));
-
-#if defined(WNT)
- // workaround for Windows specifc problem that the
- // path length in calls to 'fopen' is limted to somewhat
- // about 120+ characters which will usually be exceed when
- // using dictionaries as extensions.
- aTmpidx = Win_GetShortPathName( nidx );
- aTmpdat = Win_GetShortPathName( ndat );
-#endif
-
- aThes[i] = new MyThes(aTmpidx.getStr(),aTmpdat.getStr());
- if (aThes[i])
- aTEncs[i] = getTextEncodingFromCharset(aThes[i]->get_th_encoding());
- }
- pTH = aThes[i];
- eEnc = aTEncs[i];
- pCC = aCharSetInfo[i];
-
- if (pTH)
- break;
- }
- }
-
- // we don't want to work with a default text encoding since following incorrect
- // results may occur only for specific text and thus may be hard to notice.
- // Thus better always make a clean exit here if the text encoding is in question.
- // Hopefully something not working at all will raise proper attention quickly. ;-)
- DBG_ASSERT( eEnc != RTL_TEXTENCODING_DONTKNOW, "failed to get text encoding! (maybe incorrect encoding string in file)" );
- if (eEnc == RTL_TEXTENCODING_DONTKNOW)
- return noMeanings;
-
- while (pTH)
- {
- // convert word to all lower case for searching
- if (!stem)
- ct = capitalType(rTerm, pCC);
- OUString nTerm(makeLowerCase(rTerm, pCC));
- OString aTmp( OU2ENC(nTerm, eEnc) );
- nmean = pTH->Lookup(aTmp.getStr(),aTmp.getLength(),&pmean);
-
- if (nmean)
- aMeanings.realloc( nmean );
-
- mentry * pe = pmean;
- OUString codeTerm = qTerm;
- Reference< XSpellAlternatives > xTmpRes2;
-
- if (stem)
- {
- xTmpRes2 = xSpell->spell( A2OU("<?xml?><query type='analyze'><word>") +
- pTerm + A2OU("</word></query>"), nLanguage, rProperties );
- if (xTmpRes2.is())
- {
- Sequence<OUString>seq = xTmpRes2->getAlternatives();
- if (seq.getLength() > 0)
- {
- codeTerm = seq[0];
- stem2 = 1;
- }
-#if 0
- OString o = OUStringToOString(codeTerm, RTL_TEXTENCODING_UTF8);
- fprintf(stderr, "CODETERM: %s\n", o.pData->buffer);
-#endif
- }
- }
-
- for (int j = 0; j < nmean; j++)
- {
- int count = pe->count;
- if (count)
- {
- Sequence< OUString > aStr( count );
- OUString *pStr = aStr.getArray();
-
- for (int i=0; i < count; i++)
- {
- OUString sTerm(pe->psyns[i],strlen(pe->psyns[i]),eEnc );
- sal_Int32 catpos = sTerm.indexOf('(');
- sal_Int32 catpos2 = 0;
- OUString catst;
- OUString catst2;
- if (catpos > 2)
- {
- // remove category name for affixation and casing
- catst = A2OU(" ") + sTerm.copy(catpos);
- sTerm = sTerm.copy(0, catpos);
- sTerm = sTerm.trim();
- }
- // generate synonyms with affixes
- if (stem && stem2)
- {
- Reference< XSpellAlternatives > xTmpRes;
- xTmpRes = xSpell->spell( A2OU("<?xml?><query type='generate'><word>") +
- sTerm + A2OU("</word>") + codeTerm + A2OU("</query>"), nLanguage, rProperties );
- if (xTmpRes.is())
- {
- Sequence<OUString>seq = xTmpRes->getAlternatives();
- if (seq.getLength() > 0)
- sTerm = seq[0];
- }
- }
- if (catpos2)
- sTerm = catst2 + sTerm;
-
- sal_uInt16 ct1 = capitalType(sTerm, pCC);
- if (CAPTYPE_MIXED == ct1)
- ct = ct1;
- OUString cTerm;
- switch (ct)
- {
- case CAPTYPE_ALLCAP:
- cTerm = makeUpperCase(sTerm, pCC);
- break;
- case CAPTYPE_INITCAP:
- cTerm = makeInitCap(sTerm, pCC);
- break;
- default:
- cTerm = sTerm;
- break;
- }
- OUString aAlt( cTerm + catst);
- pStr[i] = aAlt;
- }
-#if 0
- Meaning * pMn = new Meaning(rTerm,nLanguage,rHelper);
-#endif
- Meaning * pMn = new Meaning(rTerm,nLanguage);
- OUString dTerm(pe->defn,strlen(pe->defn),eEnc );
- pMn->SetMeaning(dTerm);
- pMn->SetSynonyms(aStr);
- Reference<XMeaning>* pMeaning = aMeanings.getArray();
- pMeaning[j] = pMn;
- }
- pe++;
- }
- pTH->CleanUpAfterLookup(&pmean,nmean);
-
- if (nmean)
- {
- prevTerm = qTerm;
- prevMeanings = aMeanings;
- prevLocale = nLanguage;
- return aMeanings;
- }
-
- if (stem || !xLngSvcMgr.is())
- return noMeanings;
- stem = 1;
-
- xSpell = uno::Reference< XSpellChecker1 >( xLngSvcMgr->getSpellChecker(), UNO_QUERY );
- if (!xSpell.is() || !xSpell->isValid( A2OU(SPELLML_SUPPORT), nLanguage, rProperties ))
- return noMeanings;
- Reference< XSpellAlternatives > xTmpRes;
- xTmpRes = xSpell->spell( A2OU("<?xml?><query type='stem'><word>") +
- rTerm + A2OU("</word></query>"), nLanguage, rProperties );
- if (xTmpRes.is())
- {
- Sequence<OUString>seq = xTmpRes->getAlternatives();
-#if 0
- for (int i = 0; i < seq.getLength(); i++)
- {
- OString o = OUStringToOString(seq[i], RTL_TEXTENCODING_UTF8);
- fprintf(stderr, "%d: %s\n", i + 1, o.pData->buffer);
- }
-#endif
- if (seq.getLength() > 0)
- {
- rTerm = seq[0]; // XXX Use only the first stem
- continue;
- }
- }
-
- // stem the last word of the synonym (for categories after affixation)
- rTerm = rTerm.trim();
- sal_Int32 pos = rTerm.lastIndexOf(' ');
- if (!pos)
- return noMeanings;
- xTmpRes = xSpell->spell( A2OU("<?xml?><query type='stem'><word>") +
- rTerm.copy(pos + 1) + A2OU("</word></query>"), nLanguage, rProperties );
- if (xTmpRes.is())
- {
- Sequence<OUString>seq = xTmpRes->getAlternatives();
- if (seq.getLength() > 0)
- {
- pTerm = rTerm.copy(pos + 1);
- rTerm = rTerm.copy(0, pos + 1) + seq[0];
-#if 0
- for (int i = 0; i < seq.getLength(); i++)
- {
- OString o = OUStringToOString(seq[i], RTL_TEXTENCODING_UTF8);
- fprintf(stderr, "%d: %s\n", i + 1, o.pData->buffer);
- }
-#endif
- continue;
- }
- }
- break;
- }
- return noMeanings;
-}
-
-
-Reference< XInterface > SAL_CALL Thesaurus_CreateInstance(
- const Reference< XMultiServiceFactory > & /*rSMgr*/ )
- throw(Exception)
-{
- Reference< XInterface > xService = (cppu::OWeakObject*) new Thesaurus;
- return xService;
-}
-
-
-OUString SAL_CALL Thesaurus::getServiceDisplayName( const Locale& /*rLocale*/ )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
- return A2OU( "OpenOffice.org New Thesaurus" );
-}
-
-
-void SAL_CALL Thesaurus::initialize( const Sequence< Any >& rArguments )
- throw(Exception, RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!pPropHelper)
- {
- sal_Int32 nLen = rArguments.getLength();
- if (1 == nLen)
- {
- Reference< XPropertySet > xPropSet;
- rArguments.getConstArray()[0] >>= xPropSet;
-
- //! Pointer allows for access of the non-UNO functions.
- //! And the reference to the UNO-functions while increasing
- //! the ref-count and will implicitly free the memory
- //! when the object is not longer used.
- pPropHelper = new PropertyHelper_Thesaurus( (XThesaurus *) this, xPropSet );
- pPropHelper->AddAsPropListener(); //! after a reference is established
- }
- else
- OSL_FAIL( "wrong number of arguments in sequence" );
- }
-}
-
-
-
-sal_uInt16 SAL_CALL Thesaurus::capitalType(const OUString& aTerm, CharClass * pCC)
-{
- sal_Int32 tlen = aTerm.getLength();
- if ((pCC) && (tlen))
- {
- String aStr(aTerm);
- sal_Int32 nc = 0;
- for (sal_uInt16 tindex = 0; tindex < tlen; tindex++)
- {
- if (pCC->getCharacterType(aStr,tindex) &
- ::com::sun::star::i18n::KCharacterType::UPPER) nc++;
- }
-
- if (nc == 0)
- return (sal_uInt16) CAPTYPE_NOCAP;
- if (nc == tlen)
- return (sal_uInt16) CAPTYPE_ALLCAP;
- if ((nc == 1) && (pCC->getCharacterType(aStr,0) &
- ::com::sun::star::i18n::KCharacterType::UPPER))
- return (sal_uInt16) CAPTYPE_INITCAP;
-
- return (sal_uInt16) CAPTYPE_MIXED;
- }
- return (sal_uInt16) CAPTYPE_UNKNOWN;
-}
-
-
-
-OUString SAL_CALL Thesaurus::makeLowerCase(const OUString& aTerm, CharClass * pCC)
-{
- if (pCC)
- return pCC->toLower_rtl(aTerm, 0, aTerm.getLength());
- return aTerm;
-}
-
-
-OUString SAL_CALL Thesaurus::makeUpperCase(const OUString& aTerm, CharClass * pCC)
-{
- if (pCC)
- return pCC->toUpper_rtl(aTerm, 0, aTerm.getLength());
- return aTerm;
-}
-
-
-OUString SAL_CALL Thesaurus::makeInitCap(const OUString& aTerm, CharClass * pCC)
-{
- sal_Int32 tlen = aTerm.getLength();
- if ((pCC) && (tlen))
- {
- OUString bTemp = aTerm.copy(0,1);
- if (tlen > 1)
- {
- return ( pCC->toUpper_rtl(bTemp, 0, 1)
- + pCC->toLower_rtl(aTerm,1,(tlen-1)) );
- }
-
- return pCC->toUpper_rtl(bTemp, 0, 1);
- }
- return aTerm;
-}
-
-
-
-void SAL_CALL Thesaurus::dispose()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing)
- {
- bDisposing = sal_True;
- EventObject aEvtObj( (XThesaurus *) this );
- aEvtListeners.disposeAndClear( aEvtObj );
- if (pPropHelper)
- {
- pPropHelper->RemoveAsPropListener();
- delete pPropHelper;
- pPropHelper = NULL;
- }
- }
-}
-
-
-void SAL_CALL Thesaurus::addEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing && rxListener.is())
- aEvtListeners.addInterface( rxListener );
-}
-
-
-void SAL_CALL Thesaurus::removeEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- if (!bDisposing && rxListener.is())
- aEvtListeners.removeInterface( rxListener );
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-// Service specific part
-//
-
-OUString SAL_CALL Thesaurus::getImplementationName()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
- return getImplementationName_Static();
-}
-
-
-sal_Bool SAL_CALL Thesaurus::supportsService( const OUString& ServiceName )
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
- return sal_False;
-}
-
-
-Sequence< OUString > SAL_CALL Thesaurus::getSupportedServiceNames()
- throw(RuntimeException)
-{
- MutexGuard aGuard( GetLinguMutex() );
- return getSupportedServiceNames_Static();
-}
-
-
-Sequence< OUString > Thesaurus::getSupportedServiceNames_Static()
- throw()
-{
- MutexGuard aGuard( GetLinguMutex() );
-
- Sequence< OUString > aSNS( 1 ); // auch mehr als 1 Service moeglich
- aSNS.getArray()[0] = A2OU( SN_THESAURUS );
- return aSNS;
-}
-
-void * SAL_CALL Thesaurus_getFactory( const sal_Char * pImplName,
- XMultiServiceFactory * pServiceManager, void * )
-{
- void * pRet = 0;
- if ( !Thesaurus::getImplementationName_Static().compareToAscii( pImplName ) )
- {
-
- Reference< XSingleServiceFactory > xFactory =
- cppu::createOneInstanceFactory(
- pServiceManager,
- Thesaurus::getImplementationName_Static(),
- Thesaurus_CreateInstance,
- Thesaurus::getSupportedServiceNames_Static());
- // acquire, because we return an interface pointer instead of a reference
- xFactory->acquire();
- pRet = xFactory.get();
- }
- return pRet;
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-
-
-#undef CAPTYPE_UNKNOWN
-#undef CAPTYPE_NOCAP
-#undef CAPTYPE_INITCAP
-#undef CAPTYPE_ALLCAP
-#undef CAPTYPE_MIXED
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.hxx b/lingucomponent/source/thesaurus/libnth/nthesimp.hxx
deleted file mode 100644
index ab4783302..000000000
--- a/lingucomponent/source/thesaurus/libnth/nthesimp.hxx
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef _LINGU2_THESIMP_HXX_
-#define _LINGU2_THESIMP_HXX_
-
-#include <uno/lbnames.h> // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
-#include <cppuhelper/implbase1.hxx> // helper for implementations
-#include <cppuhelper/implbase5.hxx> // helper for implementations
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/uno/Sequence.h>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XServiceDisplayName.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyValues.hpp>
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/linguistic2/XMeaning.hpp>
-#include <com/sun/star/linguistic2/XThesaurus.hpp>
-
-#include <com/sun/star/linguistic2/XLinguServiceManager.hpp>
-#include <com/sun/star/linguistic2/XSpellChecker1.hpp>
-
-#include <tools/table.hxx>
-
-#include <unotools/charclass.hxx>
-
-#include <lingutil.hxx>
-#include <linguistic/misc.hxx>
-#include <linguistic/lngprophelp.hxx>
-
-#include <osl/file.hxx>
-#include "mythes.hxx"
-
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::linguistic2;
-
-namespace com { namespace sun { namespace star { namespace beans {
- class XPropertySet;
-}}}}
-
-
-
-///////////////////////////////////////////////////////////////////////////
-
-
-class Thesaurus :
- public cppu::WeakImplHelper5
- <
- XThesaurus,
- XInitialization,
- XComponent,
- XServiceInfo,
- XServiceDisplayName
- >
-{
- Sequence< Locale > aSuppLocales;
-
- ::cppu::OInterfaceContainerHelper aEvtListeners;
- linguistic::PropertyHelper_Thesaurus* pPropHelper;
- sal_Bool bDisposing;
- CharClass ** aCharSetInfo;
- MyThes ** aThes;
- rtl_TextEncoding * aTEncs;
- Locale * aTLocs;
- OUString * aTNames;
- sal_Int32 numthes;
-
- // cache for the Thesaurus dialog
- Sequence < Reference < ::com::sun::star::linguistic2::XMeaning > > prevMeanings;
- OUString prevTerm;
- sal_Int16 prevLocale;
-
- // disallow copy-constructor and assignment-operator for now
- Thesaurus(const Thesaurus &);
- Thesaurus & operator = (const Thesaurus &);
-
- linguistic::PropertyHelper_Thesaurus& GetPropHelper_Impl();
- linguistic::PropertyHelper_Thesaurus& GetPropHelper()
- {
- return pPropHelper ? *pPropHelper : GetPropHelper_Impl();
- }
-
-
-public:
- Thesaurus();
- virtual ~Thesaurus();
-
- // XSupportedLocales (for XThesaurus)
- virtual Sequence< Locale > SAL_CALL getLocales() throw(RuntimeException);
- virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale ) throw(RuntimeException);
-
- // XThesaurus
- virtual Sequence< Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL queryMeanings( const OUString& rTerm, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
-
- // XServiceDisplayName
- virtual OUString SAL_CALL getServiceDisplayName( const Locale& rLocale ) throw(RuntimeException);
-
- // XInitialization
- virtual void SAL_CALL initialize( const Sequence< Any >& rArguments ) throw(Exception, RuntimeException);
-
- // XComponent
- virtual void SAL_CALL dispose() throw(RuntimeException);
- virtual void SAL_CALL addEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
- virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
-
- // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
-
-
- static inline OUString
- getImplementationName_Static() throw();
- static Sequence< OUString >
- getSupportedServiceNames_Static() throw();
-
-private:
- sal_uInt16 SAL_CALL capitalType(const OUString&, CharClass *);
- OUString SAL_CALL makeLowerCase(const OUString&, CharClass *);
- OUString SAL_CALL makeUpperCase(const OUString&, CharClass *);
- OUString SAL_CALL makeInitCap(const OUString&, CharClass *);
-
-/* static ::com::sun::star::uno::Reference<
- ::com::sun::star::linguistic2::XLinguServiceManager > xLngSvcMgr;
- static ::com::sun::star::uno::Reference<
- ::com::sun::star::linguistic2::XSpellChecker1 > xSpell;
-*/
- static ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XLinguServiceManager > GetLngSvcMgr();
-
-};
-
-inline OUString Thesaurus::getImplementationName_Static() throw()
-{
- return A2OU( "org.openoffice.lingu.new.Thesaurus" );
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/lingucomponent/source/thesaurus/libnth/ntreg.cxx b/lingucomponent/source/thesaurus/libnth/ntreg.cxx
deleted file mode 100644
index d9268405b..000000000
--- a/lingucomponent/source/thesaurus/libnth/ntreg.cxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_lingucomponent.hxx"
-
-
-#include <cppuhelper/factory.hxx> // helper for factories
-#include <rtl/string.hxx>
-
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-
-////////////////////////////////////////
-// declaration of external RegEntry-functions defined by the service objects
-//
-
-extern void * SAL_CALL Thesaurus_getFactory(
- const sal_Char * pImplName,
- XMultiServiceFactory * pServiceManager,
- void * /*pRegistryKey*/ );
-
-////////////////////////////////////////
-// definition of the two functions that are used to provide the services
-//
-
-extern "C"
-{
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- void * pRet = Thesaurus_getFactory(
- pImplName,
- reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
- pRegistryKey );
-
- return pRet;
-}
-
-}
-
-///////////////////////////////////////////////////////////////////////////
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */