fdo#57545 remove redundant capitalType functions

capitalType functions from the hyphenator, thesaurus and spellchecker
dispatcher have been replaced by a unique function in linguistic/misc.cxx.
The capital type is now represented as an enum.

Change-Id: I0c2768b06f995cf34c105de117c7bab138c727a9
Reviewed-on: https://gerrit.libreoffice.org/1460
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
This commit is contained in:
Quentin Pradet
2012-12-21 16:32:54 +01:00
committed by Eike Rathke
parent bcd97c4adc
commit 4ef5ed9d21
8 changed files with 37 additions and 122 deletions

View File

@@ -35,6 +35,7 @@
#include <rtl/textenc.h>
#include <linguistic/lngprops.hxx>
#include <linguistic/misc.hxx>
#include <unotools/pathoptions.hxx>
#include <unotools/useroptions.hxx>
#include <unotools/lingucfg.hxx>
@@ -57,13 +58,6 @@ 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)
@@ -711,31 +705,6 @@ Reference< XPossibleHyphens > SAL_CALL Hyphenator::createPossibleHyphens( const
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)
@@ -949,10 +918,4 @@ void * SAL_CALL Hyphenator_getFactory( const sal_Char * pImplName,
///////////////////////////////////////////////////////////////////////////
#undef CAPTYPE_UNKNOWN
#undef CAPTYPE_NOCAP
#undef CAPTYPE_INITCAP
#undef CAPTYPE_ALLCAP
#undef CAPTYPE_MIXED
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -132,7 +132,6 @@ public:
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 *);

View File

@@ -43,13 +43,6 @@
#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?>"
@@ -581,34 +574,6 @@ void SAL_CALL Thesaurus::initialize( const Sequence< Any >& rArguments )
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)
@@ -751,11 +716,4 @@ void * SAL_CALL Thesaurus_getFactory( const sal_Char * pImplName,
///////////////////////////////////////////////////////////////////////////
#undef CAPTYPE_UNKNOWN
#undef CAPTYPE_NOCAP
#undef CAPTYPE_INITCAP
#undef CAPTYPE_ALLCAP
#undef CAPTYPE_MIXED
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -134,7 +134,6 @@ public:
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 *);

View File

@@ -82,6 +82,15 @@ namespace linguistic
#define DIC_ERR_UNKNOWN 3
#define DIC_ERR_NOT_EXISTS 4
// values asigned to capitalization types
enum CapType
{
CAPTYPE_UNKNOWN,
CAPTYPE_NOCAP,
CAPTYPE_INITCAP,
CAPTYPE_ALLCAP,
CAPTYPE_MIXED
};
LNG_DLLPUBLIC ::osl::Mutex& GetLinguMutex();
@@ -120,6 +129,7 @@ LNG_DLLPUBLIC sal_Int32 GetPosInWordToCheck( const rtl::OUString &rTxt, sal_Int3
LNG_DLLPUBLIC sal_Bool IsUpper( const String &rText, xub_StrLen nPos, xub_StrLen nLen, sal_Int16 nLanguage );
inline sal_Bool IsUpper( const String &rText, sal_Int16 nLanguage ) { return IsUpper( rText, 0, rText.Len(), nLanguage ); }
LNG_DLLPUBLIC CapType SAL_CALL capitalType(const OUString&, CharClass *);
String ToLower( const String &rText, sal_Int16 nLanguage );
LNG_DLLPUBLIC sal_Bool HasDigits( const ::rtl::OUString &rText );

View File

@@ -592,6 +592,32 @@ sal_Bool IsUpper( const String &rText, xub_StrLen nPos, xub_StrLen nLen, sal_Int
&& !(nFlags & KCharacterType::LOWER);
}
CapType SAL_CALL 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 CAPTYPE_NOCAP;
if (nc == tlen)
return CAPTYPE_ALLCAP;
if ((nc == 1) && (pCC->getCharacterType(aStr,0) &
::com::sun::star::i18n::KCharacterType::UPPER))
return CAPTYPE_INITCAP;
return CAPTYPE_MIXED;
}
return CAPTYPE_UNKNOWN;
}
String ToLower( const String &rText, sal_Int16 nLanguage )
{

View File

@@ -37,13 +37,6 @@
#include "lngsvcmgr.hxx"
#include "linguistic/lngprops.hxx"
// 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
using namespace osl;
using namespace com::sun::star;
using namespace com::sun::star::beans;
@@ -837,32 +830,6 @@ void SpellCheckerDispatcher::setCharClass(const LanguageTag& rLanguageTag)
pCharClass->setLanguageTag(rLanguageTag);
}
sal_uInt16 SAL_CALL SpellCheckerDispatcher::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 SpellCheckerDispatcher::makeLowerCase(const OUString& aTerm, CharClass * pCC)
@@ -872,10 +839,4 @@ OUString SAL_CALL SpellCheckerDispatcher::makeLowerCase(const OUString& aTerm, C
return aTerm;
}
#undef CAPTYPE_UNKNOWN
#undef CAPTYPE_NOCAP
#undef CAPTYPE_INITCAP
#undef CAPTYPE_ALLCAP
#undef CAPTYPE_MIXED
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -124,7 +124,6 @@ public:
private:
void setCharClass(const LanguageTag& rLanguageTag);
sal_uInt16 SAL_CALL capitalType(const OUString&, CharClass *);
OUString SAL_CALL makeLowerCase(const OUString&, CharClass *);
};