[Spice-devel] [PATCH] [vd_agent] fix bug: display error when dragging file with CJK characters in name
Christophe Fergeau
cfergeau at redhat.com
Wed Aug 13 07:18:44 PDT 2014
On Tue, Aug 12, 2014 at 06:52:00PM +0800, Cody Chan wrote:
>
> I submitted a patch several months ago about this issue,
> here
> http://lists.freedesktop.org/archives/spice-devel/2014-February/016158.html
>
> I check it again, and find that the value of
> g_key_file_to_data(keyfile,...) is always utf-8,
> for the value of g_uri_list_extract_uris() is utf8 urlencode.
>
> So the display problem is caused by vd_agent, but how it displays depends
> on the
> language of system, the following two screenshots show the difference:
> http://int64ago-tmp.qiniudn.com/guest-Chinese.png
> http://int64ago-tmp.qiniudn.com/guest-English.png
>
>
> ---
> vdagent/file_xfer.cpp | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/vdagent/file_xfer.cpp b/vdagent/file_xfer.cpp
> index e402eb2..96b7394 100644
> --- a/vdagent/file_xfer.cpp
> +++ b/vdagent/file_xfer.cpp
> @@ -46,6 +46,7 @@ void FileXfer::handle_start(VDAgentFileXferStartMessage*
> start,
> uint64_t file_size;
> HANDLE handle;
> AsUser as_user;
> + int wlen;
>
> status->id = start->id;
> status->result = VD_AGENT_FILE_XFER_STATUS_ERROR;
> @@ -81,7 +82,20 @@ void FileXfer::handle_start(VDAgentFileXferStartMessage*
> start,
>
> strcat(file_path, "\\");
> strcat(file_path, file_name);
> - handle = CreateFileA(file_path, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0,
> NULL);
> + if((wlen = MultiByteToWideChar(CP_UTF8, 0, file_path, -1, NULL, 0)) ==
> 0){
> + vd_printf("failed getting WideChar length of %s", file_path);
> + return;
> + }
> + TCHAR *wfile_path = new TCHAR[wlen];
> + if (MultiByteToWideChar(CP_UTF8, 0, file_path, -1, wfile_path, wlen)
> == 0){
> + vd_printf("failed converting file_path:%s to WindChar", file_path);
> + if (wfile_path)
> + delete[] wfile_path;
delete[] NULL; is a noop so the explicit check for wfile__path is not
needed. I'll fix this before pushing this patch. ACK :)
Thanks!
Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20140813/2f692931/attachment-0001.sig>
More information about the Spice-devel
mailing list