From ca0c393161bf5ee7578f1a88a7f3ec8e44118f4b Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Mon, 5 Mar 2012 01:42:11 +0200 Subject: additional checks in math expressions --- stopspam.cpp | 4 ++-- stopspam_10.vcxproj | 18 +++++++++--------- utilities.cpp | 12 +----------- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/stopspam.cpp b/stopspam.cpp index f99e4c9..d39e84e 100755 --- a/stopspam.cpp +++ b/stopspam.cpp @@ -235,7 +235,7 @@ MIRANDA_HOOK_EVENT(ME_DB_EVENT_FILTER_ADD, w, l) std::list args; std::list actions; tstring::size_type p1 = gbQuestion.find(_T("X")), p2 = 0; - const tstring expr_chars = _T("X+-/*"); + const tstring expr_chars = _T("X+-/*"), expr_acts = _T("+-/*"); while(p1 < gbQuestion.length() && p1 != tstring::npos && expr_chars.find(gbQuestion[p1]) != tstring::npos) { std::string arg; @@ -252,7 +252,7 @@ MIRANDA_HOOK_EVENT(ME_DB_EVENT_FILTER_ADD, w, l) tmp_question.replace(p2, arg.size(), arg); #endif args.push_back(atoi(arg.c_str())); - if((p1 < gbQuestion.length()) && (p1 != tstring::npos)) + if((p1 < gbQuestion.length()) && (p1 != tstring::npos) && (expr_acts.find(gbQuestion[p1]) != tstring::npos)) actions.push_back(gbQuestion[p1]); ++p1; } diff --git a/stopspam_10.vcxproj b/stopspam_10.vcxproj index 07e6524..cf2a91b 100755 --- a/stopspam_10.vcxproj +++ b/stopspam_10.vcxproj @@ -252,7 +252,7 @@ $(OutDir)$(ProjectName).dll true - $(OutDir)stopspam.pdb + c:\debug\stopspam.pdb Windows false @@ -297,7 +297,7 @@ Disabled - X:\temp\windows\libs\boost;X:\temp\windows\libs\utf8cpp\include;X:\install\git\miranda\miranda-im\miranda\include;%(AdditionalIncludeDirectories) + X:\temp\windows\libs\Boost\include;X:\temp\windows\libs\utf8cpp\include;X:\install\git\miranda\miranda-im\miranda\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;STOPSPAM_EXPORTS;%(PreprocessorDefinitions);_UNICODE;UNICODE;_CRT_SECURE_NO_DEPRECATE true EnableFastChecks @@ -310,14 +310,14 @@ $(OutDir)$(ProjectName).dll true - $(OutDir)stopspam.pdb + c:\debug\stopspam.pdb Windows false $(OutDir)stopspam.lib MachineX86 - X:\temp\windows\libs\boost\lib;%(AdditionalLibraryDirectories) + X:\temp\windows\libs\Boost\lib64;%(AdditionalLibraryDirectories) @@ -327,7 +327,7 @@ Disabled - C:\Boost\include\boost-1_45;X:\temp\windows\libs\utf8cpp\include;X:\install\git\miranda\miranda-im\miranda\include;%(AdditionalIncludeDirectories) + X:\temp\windows\libs\Boost\include;X:\temp\windows\libs\utf8cpp\include;X:\install\git\miranda\miranda-im\miranda\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;STOPSPAM_EXPORTS;%(PreprocessorDefinitions);_UNICODE;UNICODE;_CRT_SECURE_NO_DEPRECATE EnableFastChecks MultiThreadedDebug @@ -339,13 +339,13 @@ $(OutDir)$(ProjectName).dll true - $(OutDir)stopspam.pdb + c:\debug\stopspam.pdb Windows false $(OutDir)stopspam.lib - C:\Boost\lib-debug-x64;%(AdditionalLibraryDirectories) + X:\temp\windows\libs\Boost\lib64;%(AdditionalLibraryDirectories) @@ -628,7 +628,7 @@ OnlyExplicitInline Size true - X:\temp\windows\libs\boost;X:\temp\windows\libs\utf8cpp\include;X:\install\git\miranda\miranda-im\miranda\include;%(AdditionalIncludeDirectories) + X:\temp\windows\libs\Boost\include;X:\temp\windows\libs\utf8cpp\include;X:\install\git\miranda\miranda-im\miranda\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;STOPSPAM_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) true MultiThreaded @@ -654,7 +654,7 @@ - X:\temp\windows\libs\boost\lib;%(AdditionalLibraryDirectories) + X:\temp\windows\libs\Boost\lib;%(AdditionalLibraryDirectories) diff --git a/utilities.cpp b/utilities.cpp index 660a203..2b2126c 100755 --- a/utilities.cpp +++ b/utilities.cpp @@ -502,17 +502,7 @@ std::string toUTF8(std::wstring str) std::string toUTF8(std::string str) { - std::string ustr; - std::string tmpstr; - try{ - utf8::replace_invalid(str.begin(), str.end(), back_inserter(tmpstr)); - utf8::utf16to8(tmpstr.begin(), tmpstr.end(), back_inserter(ustr)); - } - catch(const std::exception &e) - { - //TODO: handle utf8cpp exceptions - } - return ustr; + return toUTF8(toUTF16(str)); } -- cgit v1.2.3