summaryrefslogtreecommitdiff
path: root/lingucomponent/source
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2017-03-21 22:50:15 +0100
committerStephan Bergmann <sbergman@redhat.com>2017-03-22 09:00:57 +0000
commit7778d9f51bd1f4d086cafe95995406c3157afb89 (patch)
tree9a43660947b78d9f714c45e1be48ef46dd0d082e /lingucomponent/source
parent02bccbe0d59e50a7fd987c81c4d15b2fd4d24538 (diff)
Prevent calls to rtl/character.hxx functions with (signed) char arguments
...that would implicitly be sign extended (for plain char only if it is signed), so non-ASCII char values would trigger the isUnicodeCodePoint assert. Change-Id: Iaf8024ad509e64525558e882fe3fd078cfb4ea91 Reviewed-on: https://gerrit.libreoffice.org/35523 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'lingucomponent/source')
-rw-r--r--lingucomponent/source/languageguessing/simpleguesser.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/lingucomponent/source/languageguessing/simpleguesser.cxx b/lingucomponent/source/languageguessing/simpleguesser.cxx
index 9fef4a402dbb..d5227edbdc01 100644
--- a/lingucomponent/source/languageguessing/simpleguesser.cxx
+++ b/lingucomponent/source/languageguessing/simpleguesser.cxx
@@ -61,7 +61,8 @@ static int startsAsciiCaseInsensitive(const std::string &s1, const std::string &
min = s2.length();
for(i = 0; i < min && s2[i] && s1[i] && !ret; i++){
- ret = rtl::toAsciiUpperCase(s1[i]) - rtl::toAsciiUpperCase(s2[i]);
+ ret = rtl::toAsciiUpperCase(static_cast<unsigned char>(s1[i]))
+ - rtl::toAsciiUpperCase(static_cast<unsigned char>(s2[i]));
if(s1[i] == '.' || s2[i] == '.') {ret = 0;} //. is a neutral character
}
return ret;