From 9b9e5cfd2fa629b2e1dc4a193e48a4a4e8d34126 Mon Sep 17 00:00:00 2001 From: Gökhan Gurbetoğlu Date: Mon, 20 Jun 2016 17:40:13 +0300 Subject: tdf#99589 - tolower / toupper - dangerous to Turks ... Change-Id: I8b0fe9354232a7b60f3605fa6f90f6741f7bf683 Reviewed-on: https://gerrit.libreoffice.org/26537 Tested-by: Jenkins Reviewed-by: jan iversen --- hwpfilter/source/hbox.cxx | 6 ++++-- hwpfilter/source/hwpeq.cxx | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) (limited to 'hwpfilter') diff --git a/hwpfilter/source/hbox.cxx b/hwpfilter/source/hbox.cxx index e501949ace73..bd30edc2eec1 100644 --- a/hwpfilter/source/hbox.cxx +++ b/hwpfilter/source/hbox.cxx @@ -31,6 +31,8 @@ #include "drawdef.h" #include "hcode.h" +#include + int HBox::boxCount = 0; HBox::HBox(hchar hch) @@ -586,7 +588,7 @@ static void getOutlineNumStr(int style, int level, int num, hchar * hstr) ptr = buf; while (*ptr) { - *ptr = sal::static_int_cast(toupper(*ptr)); + *ptr = sal::static_int_cast(rtl::toAsciiUpperCase(*ptr)); ptr++; } } @@ -688,7 +690,7 @@ hchar_string Outline::GetUnicode() const char *ptr = dest; while( *ptr ) { - *ptr = sal::static_int_cast(toupper(*ptr)); + *ptr = sal::static_int_cast(rtl::toAsciiUpperCase(*ptr)); ptr++; } } diff --git a/hwpfilter/source/hwpeq.cxx b/hwpfilter/source/hwpeq.cxx index dd461103a1a6..b87574cab863 100644 --- a/hwpfilter/source/hwpeq.cxx +++ b/hwpfilter/source/hwpeq.cxx @@ -32,6 +32,8 @@ using namespace std; #include #include +#include + /* @Man: change the hwp formula to LaTeX */ #ifdef _WIN32 # define ENDL "\r\n" @@ -416,15 +418,15 @@ void make_keyword( char *keyword, const char *token) memcpy(keyword, token, len); keyword[len] = 0; - if( (token[0] & 0x80) || islower(token[0]) || strlen(token) < 2 ) + if( (token[0] & 0x80) || rtl::isAsciiLowerCase(token[0]) || strlen(token) < 2 ) return; - int capital = isupper(keyword[1]); + int capital = rtl::isAsciiUpperCase(keyword[1]); for( ptr = keyword + 2; *ptr && result; ptr++ ) { if( (*ptr & 0x80) || - (!capital && isupper(*ptr)) || - (capital && islower(*ptr)) ) + (!capital && rtl::isAsciiUpperCase(*ptr)) || + (capital && rtl::isAsciiLowerCase(*ptr)) ) { result = false; } @@ -435,8 +437,8 @@ void make_keyword( char *keyword, const char *token) ptr = keyword; while( *ptr ) { - if( isupper(*ptr) ) - *ptr = sal::static_int_cast(tolower(*ptr)); + if( rtl::isAsciiUpperCase(*ptr) ) + *ptr = sal::static_int_cast(rtl::toAsciiLowerCase(*ptr)); ptr++; } } @@ -687,8 +689,8 @@ static char eq2ltxconv(MzString& sstr, istream *strm, const char *sentinel) key[0] = '\\'; strcpy(key + 1, eq->key); } - if( (eq->flag & EQ_CASE) && isupper(token[0]) ) - key[1] = sal::static_int_cast(toupper(key[1])); + if( (eq->flag & EQ_CASE) && rtl::isAsciiUpperCase(token[0]) ) + key[1] = sal::static_int_cast(rtl::toAsciiUpperCase(key[1])); token = key; } -- cgit