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!


Reply via email to