[Libreoffice-commits] core.git: basic/qa basic/source
Andreas Heinisch (via logerrit)
logerrit at kemper.freedesktop.org
Mon Mar 15 14:17:32 UTC 2021
basic/qa/basic_coverage/test_string_replace.vb | 6 ++++++
basic/source/runtime/methods.cxx | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
New commits:
commit ac0b6fb3842201e438950ea99a55ad334f8521ab
Author: Andreas Heinisch <andreas.heinisch at yahoo.de>
AuthorDate: Mon Mar 15 13:41:58 2021 +0100
Commit: Andreas Heinisch <andreas.heinisch at yahoo.de>
CommitDate: Mon Mar 15 15:16:57 2021 +0100
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 at yahoo.de>
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 2e2311078a67..0276a41c1b17 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -1289,7 +1289,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.
More information about the Libreoffice-commits
mailing list