summaryrefslogtreecommitdiffstats
path: root/basic/source/classes/sb.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'basic/source/classes/sb.cxx')
-rw-r--r--basic/source/classes/sb.cxx11
1 files changed, 9 insertions, 2 deletions
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index 74eacdb504c6..75d5fea70640 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -47,6 +47,9 @@
#include <memory>
#include <unordered_map>
+#include <global.hxx>
+#include <unotools/transliterationwrapper.hxx>
+
#include <com/sun/star/script/ModuleType.hpp>
#include <com/sun/star/script/ModuleInfo.hpp>
@@ -2059,11 +2062,15 @@ sal_Int32 BasicCollection::implGetIndexForName(std::u16string_view rName)
sal_Int32 nIndex = -1;
sal_Int32 nCount = xItemArray->Count();
sal_Int32 nNameHash = MakeHashCode( rName );
+
+ // tdf#144245 - case-insensitive operation for non-ASCII characters
+ utl::TransliterationWrapper& rTransliteration = SbGlobal::GetTransliteration();
+
for( sal_Int32 i = 0 ; i < nCount ; i++ )
{
SbxVariable* pVar = xItemArray->Get(i);
- if( pVar->GetHashCode() == nNameHash &&
- pVar->GetName().equalsIgnoreAsciiCase( rName ) )
+ if (pVar->GetHashCode() == nNameHash
+ && rTransliteration.isEqual(pVar->GetName(), OUString(rName)))
{
nIndex = i;
break;