| Index: src/plugin/PluginUtil.cpp |
| =================================================================== |
| --- a/src/plugin/PluginUtil.cpp |
| +++ b/src/plugin/PluginUtil.cpp |
| @@ -53,8 +53,26 @@ |
| return std::wstring(locationUrl, locationUrl.Length()); |
| } |
| +/** |
| + * \par Implementation Note |
| + * This function '_wcslwr()' uses the current locale to determine case. |
|
sergei
2015/12/16 10:32:44
I don't think we need this line because it's alrea
Eric
2015/12/16 13:53:26
It's not the same. The header says is it uses the
|
| + * This is the same function used within 'CStringW::MakeLower()', which this function replaces. |
|
sergei
2015/12/16 10:32:44
The comment on this line is not necessary to be in
Eric
2015/12/16 13:53:26
I wavered on this one. I had decided to leave it i
|
| + */ |
| std::wstring ToLowerString(const std::wstring& s) |
| { |
| - return ToWstring(ToCString(s).MakeLower()); |
| + std::wstring lower(s); // copy the argument |
| + /* |
| + * C++11 provides that 'c_str()' returns the internal array in which the string holds its value. |
| + * Thus we can modify in-place after casting away the 'const' modifier from 'c_str()'. |
| + * |
| + * C++11 also provides that 'c_str()' return a null-terminated string. |
| + * On the other hand, '_wcslwr_s' throws an assertion failure saying that it's not null-terminated. |
| + * So we're using the "insecure" version and suppressing the deprecation warning. |
|
sergei
2015/12/16 10:32:44
Although "insecure" version might work good becaus
Eric
2015/12/16 13:53:26
I had tried it once and it had failed. It turns ou
|
| + */ |
| +#pragma warning (push) |
| +#pragma warning(disable : 4996) |
| + _wcslwr(const_cast<wchar_t*>(lower.data())); |
|
sergei
2015/12/16 10:32:45
What about returning of an empty string in case of
Eric
2015/12/16 13:53:26
The tests aren't returning an error code, now that
sergei
2015/12/16 15:53:16
Still I would like to check the return value and h
Eric
2015/12/16 16:38:06
Don't need to. According to the documentation, it
|
| +#pragma warning (pop) |
| + return lower; |
| } |