[Spice-devel] [PATCH spice-protocol] vd_agent: Add caps for the agent to signal the guest line-ending (rhbz#752350)

Hans de Goede hdegoede at redhat.com
Sun Jun 9 06:06:25 PDT 2013


Hi,

On 06/09/2013 03:03 PM, agilboa at redhat.com wrote:
> So conversion is client-only responsibility, while the agent only needs to advertise its line-ending? seems simpler than conversion in both sides.

Yep, that is the idea! So the windows agent-side patch for bug 872252
should be a one liner :)

Regards,

Hans

>
> On 06/05/2013 04:18 PM, Hans de Goede wrote:
>> When copy and pasting between a Linux guest and a Windows client or visa
>> versa, the line-endings of the text will usually be wrong for the other side,
>> so it is desirable to do automatic conversion.
>>
>> However sometimes it is possible for text in the clipboard on Linux to have
>> MSDOS (CRLF) style line-endings, when copy and pasting from Linux to Linux
>> it is undesirable to automatically convert these, since this would not happen
>> when the apps were running directly on the same machine.
>>
>> So we want to do automatic conversion only if the client and guest native
>> line-endings differ. This means that we cannot simply define one standard
>> line-ending for VD_AGENT_CLIPBOARD_UTF8_TEXT data.
>>
>> Given the above it makes sense to only do conversion on one end. This
>> patch adds new capabilities which allow the guest-agent to advertise what
>> is the native line-ending of the guest.
>>
>> This should be used by the client in the following way:
>> 1) Check if the guest-agent advertises any line-ending type at all, if not
>> the guest line-ending is unknown -> do not convert
>> 2) If the guest's native line-ending matches that of the platform the client
>> is running on, then do no not convert
>> 3) If the guest's native line-ending is different from the client platform,
>> then convert received clipboard data into the client platform's native
>> line-ending, and convert clipboard data which will be send to the guest-agent
>> into the guest's native line-ending.
>>
>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>> ---
>>   spice/vd_agent.h | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/spice/vd_agent.h b/spice/vd_agent.h
>> index 1c4ebaf..c331d84 100644
>> --- a/spice/vd_agent.h
>> +++ b/spice/vd_agent.h
>> @@ -207,6 +207,8 @@ enum {
>>       VD_AGENT_CAP_CLIPBOARD_BY_DEMAND,
>>       VD_AGENT_CAP_CLIPBOARD_SELECTION,
>>       VD_AGENT_CAP_SPARSE_MONITORS_CONFIG,
>> +    VD_AGENT_CAP_GUEST_LINEEND_LF,
>> +    VD_AGENT_CAP_GUEST_LINEEND_CRLF,
>>       VD_AGENT_END_CAP,
>>   };
>


More information about the Spice-devel mailing list