On Sunday, 10 July 2016 at 21:26:29 UTC, Adam Sansier wrote:
For example, I'm trying to compare a wchar buffer with a
wstring using slices:
x[0..$] == y[0..$]
It fails. I think because x has length 1024. If do
x[0..y.length] == str[0..y.length]
it fails, also because y has length 1024(since it was generated
from a buffer and the length wasn't set correctly).
If I fix the length to the size of y, it passes, but isn't
correct since it is a partial match.
also, to lower fails but CharLowerBuff passes(the error in the
previous post)
//str = str.toLower();
CharLowerBuff(cast(LPTSTR)str, str.length);
Using this code
import core.stdc.wchar_; // For wcslen.
wstring toWstring(wchar[] value)
{
return value ? cast(wstring)
value[0..wcslen(cast(wchar*)value)] : null;
}
works and sets the length. Must be a bug in to!wstring!