[libvirt] [libvirt-glib 1/2] Add gvir_gconfig_object_remove_attribute helper

Christophe Fergeau cfergeau at redhat.com
Tue Jan 3 09:08:20 UTC 2012


---
 libvirt-gconfig/libvirt-gconfig-object-private.h |    2 ++
 libvirt-gconfig/libvirt-gconfig-object.c         |   11 +++++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/libvirt-gconfig/libvirt-gconfig-object-private.h b/libvirt-gconfig/libvirt-gconfig-object-private.h
index ea06a67..38c129f 100644
--- a/libvirt-gconfig/libvirt-gconfig-object-private.h
+++ b/libvirt-gconfig/libvirt-gconfig-object-private.h
@@ -64,6 +64,8 @@ void gvir_config_object_set_attribute(GVirConfigObject *object,
                                       ...) G_GNUC_NULL_TERMINATED;
 void gvir_config_object_set_attribute_with_type(GVirConfigObject *object,
                                                 ...) G_GNUC_NULL_TERMINATED;
+void gvir_config_object_remove_attribute(GVirConfigObject *object,
+                                         const char *attr_name);
 
 G_END_DECLS
 
diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c
index a75db6e..52a2a0d 100644
--- a/libvirt-gconfig/libvirt-gconfig-object.c
+++ b/libvirt-gconfig/libvirt-gconfig-object.c
@@ -680,3 +680,14 @@ gvir_config_object_attach(GVirConfigObject *parent, GVirConfigObject *child)
         child->priv->doc = g_object_ref(G_OBJECT(parent->priv->doc));
     }
 }
+
+G_GNUC_INTERNAL void
+gvir_config_object_remove_attribute(GVirConfigObject *object,
+                                    const char *attr_name)
+{
+    int status;
+
+    do {
+        status = xmlUnsetProp(object->priv->node, (xmlChar *)attr_name);
+    } while (status == 0);
+}
-- 
1.7.7.4




More information about the libvir-list mailing list