[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