[Spice-devel] [PATCH spice 1/1] spicec-win: map title string from utf8 to utf16

Hans de Goede hdegoede at redhat.com
Mon Oct 25 00:25:39 PDT 2010


Hi,

On 10/24/2010 05:54 PM, Arnon Gilboa wrote:
> Fix win client broken by the utf8 patch.
> ---
>   client/windows/red_window.cpp |    9 ++++++++-
>   1 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/client/windows/red_window.cpp b/client/windows/red_window.cpp
> index 8248aee..145f6b2 100644
> --- a/client/windows/red_window.cpp
> +++ b/client/windows/red_window.cpp
> @@ -448,7 +448,14 @@ RedWindow::~RedWindow()
>
>   void RedWindow::set_title(std::string&  title)
>   {
> -    SetWindowText(_win, title.c_str());
> +    int len = MultiByteToWideChar(CP_UTF8, 0, title.c_str(), title.length(), NULL, 0) + 1;
> +    WCHAR* wtitle = new WCHAR[len * sizeof(WCHAR)];
> +
> +    if (MultiByteToWideChar(CP_UTF8, 0, title.c_str(), title.length(), wtitle, len)) {
> +        wtitle[len - 1] = L'\0';
> +        SetWindowText(_win, wtitle);
> +    }
> +    delete []wtitle;
>   }
>
>   void RedWindow::set_icon(Icon* icon)


Hmm, sorry about this, the reason that I assumed that using SetWindowText with a
UTF-8 string would work fine is because Microsoft's documentation says that
it takes a const char *, not a const wchar *:
http://msdn.microsoft.com/en-us/library/ms633546%28VS.85%29.aspx

Are we compiling with some define which turns all non unicode functions into
their unicode equivalents?

Regards,

Hans


More information about the Spice-devel mailing list