summaryrefslogtreecommitdiff
path: root/lingucomponent/source/hyphenator
diff options
context:
space:
mode:
Diffstat (limited to 'lingucomponent/source/hyphenator')
-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
6 files changed, 0 insertions, 1345 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