tdf#161637 linguistic: fix apostrophe in spelling suggestions

Use the correct typographic (curly) apostrophe instead of the
obsolete straight (typewriter or ASCII) apostrophe.

Follow-up to commit e6fade1ce1
"tdf#38395 enable smart apostrophe replacement by default" and
commit 8de1941fe6
"tdf#150582 linguistic: fix always rejected words with U+2019 apostrophe".

Change-Id: Ic0e9aabcce7e95703601dd74e039f2838c89c769
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169087
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
This commit is contained in:
László Németh 2024-06-18 14:43:05 +02:00
parent 5dfa4bda2c
commit ee6bf912d6

View file

@ -59,8 +59,6 @@ class ProposalList
{ {
std::vector< OUString > aVec; std::vector< OUString > aVec;
bool HasEntry( std::u16string_view rText ) const;
public: public:
ProposalList() {} ProposalList() {}
ProposalList(const ProposalList&) = delete; ProposalList(const ProposalList&) = delete;
@ -68,7 +66,7 @@ public:
size_t Count() const; size_t Count() const;
void Prepend( const OUString &rText ); void Prepend( const OUString &rText );
void Append( const OUString &rNew ); void Append( const OUString &rNew, bool bPrepend = false );
void Append( const std::vector< OUString > &rNew ); void Append( const std::vector< OUString > &rNew );
void Append( const Sequence< OUString > &rNew ); void Append( const Sequence< OUString > &rNew );
std::vector< OUString > GetVector() const; std::vector< OUString > GetVector() const;
@ -76,28 +74,29 @@ public:
} }
bool ProposalList::HasEntry( std::u16string_view rText ) const void ProposalList::Prepend( const OUString &rText )
{
Append( rText, /*bPrepend=*/true );
}
void ProposalList::Append( const OUString &rOrig, bool bPrepend )
{ {
bool bFound = false; bool bFound = false;
// convert ASCII apostrophe to the typographic one
const OUString &rText( rOrig.indexOf( '\'' ) > -1 ? rOrig.replace('\'', u'') : rOrig );
size_t nCnt = aVec.size(); size_t nCnt = aVec.size();
for (size_t i = 0; !bFound && i < nCnt; ++i) for (size_t i = 0; !bFound && i < nCnt; ++i)
{ {
if (aVec[i] == rText) if (aVec[i] == rText)
bFound = true; bFound = true;
} }
return bFound; if (!bFound)
} {
if ( bPrepend )
void ProposalList::Prepend( const OUString &rText ) aVec.insert( aVec.begin(), rText );
{ else
if (!HasEntry( rText )) aVec.push_back( rText );
aVec.insert( aVec.begin(), rText ); }
}
void ProposalList::Append( const OUString &rText )
{
if (!HasEntry( rText ))
aVec.push_back( rText );
} }
void ProposalList::Append( const std::vector< OUString > &rNew ) void ProposalList::Append( const std::vector< OUString > &rNew )
@ -106,18 +105,14 @@ void ProposalList::Append( const std::vector< OUString > &rNew )
for ( size_t i = 0; i < nLen; ++i) for ( size_t i = 0; i < nLen; ++i)
{ {
const OUString &rText = rNew[i]; const OUString &rText = rNew[i];
if (!HasEntry( rText )) Append( rText );
Append( rText );
} }
} }
void ProposalList::Append( const Sequence< OUString > &rNew ) void ProposalList::Append( const Sequence< OUString > &rNew )
{ {
for (const OUString& rText : rNew) for (const OUString& rText : rNew)
{ Append( rText );
if (!HasEntry( rText ))
Append( rText );
}
} }
size_t ProposalList::Count() const size_t ProposalList::Count() const