File keymap.patch of Package libvirt-cim

# HG changeset patch
# User Dan Smith <danms@us.ibm.com>
# Date 1225900807 28800
# Node ID 20af5ae5b01c308d2cfab62899b2dbcb8d186567
# Parent  29c875cab8b808655c04d2f971c0d6c9a9f03dbd
Store and preserve keymap attribute for graphics device

This prevents us from discarding the keymap setting when we redefine a domain.

Signed-off-by: Dan Smith <danms@us.ibm.com>

Index: libvirt-cim-0.5.2/libxkutil/device_parsing.c
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/device_parsing.c
+++ libvirt-cim-0.5.2/libxkutil/device_parsing.c
@@ -77,6 +77,7 @@ static void cleanup_graphics_device(stru
         free(dev->type);
         free(dev->port);
         free(dev->host);
+        free(dev->keymap);
 }
 
 void cleanup_virt_device(struct virt_device *dev)
@@ -447,6 +448,7 @@ static int parse_graphics_device(xmlNode
         gdev->type = get_attr_value(node, "type");
         gdev->port = get_attr_value(node, "port");
         gdev->host = get_attr_value(node, "listen");
+        gdev->keymap = get_attr_value(node, "keymap");
 
         if ((gdev->type == NULL) || (gdev->port == NULL))
                 goto err;
@@ -636,6 +638,7 @@ struct virt_device *virt_device_dup(stru
                 DUP_FIELD(dev, _dev, dev.graphics.type);
                 DUP_FIELD(dev, _dev, dev.graphics.port);
                 DUP_FIELD(dev, _dev, dev.graphics.host);
+                DUP_FIELD(dev, _dev, dev.graphics.keymap);
         }
 
         return dev;
Index: libvirt-cim-0.5.2/libxkutil/device_parsing.h
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/device_parsing.h
+++ libvirt-cim-0.5.2/libxkutil/device_parsing.h
@@ -66,6 +66,7 @@ struct graphics_device {
         char *type;
         char *port;
         char *host;
+        char *keymap;
 };
 
 struct virt_device {
Index: libvirt-cim-0.5.2/libxkutil/xmlgen.c
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/xmlgen.c
+++ libvirt-cim-0.5.2/libxkutil/xmlgen.c
@@ -351,9 +351,12 @@ static bool graphics_to_xml(char **xml, 
         struct graphics_device *graphics = &dev->dev.graphics;
 
         ret = asprintf(&_xml,
-                       "<graphics type='%s' port='%s'/>\n",
+                       "<graphics type='%s' port='%s' "
+                       "listen='%s' keymap='%s'/>\n",
                        graphics->type,
-                       graphics->port);
+                       graphics->port,
+                       graphics->host != NULL ? graphics->host : "127.0.0.1",
+                       graphics->keymap != NULL ? graphics->keymap : "en-us");
         if (ret == -1)
                 return false;
         else
openSUSE Build Service is sponsored by