diff options
author | Andreas Heinisch <andreas.heinisch@yahoo.de> | 2021-03-15 13:41:58 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-03-15 20:46:37 +0100 |
commit | 4e8b26cd67451c73aff284bb800627ed6db05443 (patch) | |
tree | b6254f0b05aebb3bd4e043d8ebe81f984716eeaa /basic | |
parent | 70c33addf14d7ee9db874c0d653fbd8f035ac96e (diff) |
tdf#141045 - fixed copy paste error in the replace function
Change-Id: Id68670fed89e4cc700c5eea395139914bebdb657
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112509
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
(cherry picked from commit ac0b6fb3842201e438950ea99a55ad334f8521ab)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112512
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit fde29198bd8e345c9a61a9f4d4671a3022a84cf9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112521
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'basic')
-rw-r--r-- | basic/qa/basic_coverage/test_string_replace.vb | 6 | ||||
-rw-r--r-- | basic/source/runtime/methods.cxx | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/basic/qa/basic_coverage/test_string_replace.vb b/basic/qa/basic_coverage/test_string_replace.vb index 99eafdba6b14..e2e9ce35962b 100644 --- a/basic/qa/basic_coverage/test_string_replace.vb +++ b/basic/qa/basic_coverage/test_string_replace.vb @@ -23,6 +23,12 @@ Function verify_stringReplace() As String retStr = Replace("АБВабв", "б", "*") TestLog_ASSERT retStr, "А*Ва*в", "case-insensitive non-ASCII: " & retStr + ' tdf#141045 - different length of search and replace string. It is important + ' that the search string starts with the original string in order to test the error. + ' Without the fix in place, the string index calculations result in a crash. + retStr = Replace("a", "abc", "ab") + TestLog_ASSERT retStr, "a", "different length of search and replace string: " & retStr + result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10) verify_stringReplace = result End Function diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index 671cbe0a316d..d8fd7299d9eb 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -1285,7 +1285,7 @@ void SbRtl_Replace(StarBASIC *, SbxArray & rPar, bool) const css::lang::Locale& rLocale = Application::GetSettings().GetUILanguageTag().getLocale(); css::uno::Reference < i18n::XCharacterClassification > xCharClass = vcl::unohelper::CreateCharacterClassification(); aSrcStr = xCharClass->toUpper(aSrcStr, 0, aSrcStr.getLength(), rLocale); - aFindStr = xCharClass->toUpper(aFindStr, 0, aSrcStr.getLength(), rLocale); + aFindStr = xCharClass->toUpper(aFindStr, 0, aFindStr.getLength(), rLocale); } // Note: the result starts from lStartPos, removing everything to the left. See i#94895. |