diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-06-05 14:23:52 +0200 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2013-06-05 14:23:52 +0200 |
commit | 7be0e88e7e03a956b364cc847aad11b96ed47273 (patch) | |
tree | f8cb7fb27d71a996cd5f4a0b589fcc06805d1d9a | |
parent | 4f868cc354b617f55a0983fd2b2eafcb223b5772 (diff) |
vd_agent: Add caps for the agent to signal the guest line-ending (rhbz#752350)
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@redhat.com>
-rw-r--r-- | spice/vd_agent.h | 2 |
1 files changed, 2 insertions, 0 deletions
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, }; |