Add gvdb_table_get_raw_value() API for GSettings
authorRyan Lortie <desrt@desrt.ca>
Mon, 4 Oct 2010 02:54:03 +0000 (22:54 -0400)
committerRyan Lortie <desrt@desrt.ca>
Mon, 4 Oct 2010 03:02:45 +0000 (23:02 -0400)
gvdb-reader.c
gvdb-reader.h

index 0b1b2ce..fb23393 100644 (file)
@@ -458,6 +458,29 @@ gvdb_table_get_value (GvdbTable    *file,
 }
 
 /**
+ * gvdb_table_get_raw_value:
+ * @table: a #GvdbTable
+ * @key: a string
+ * @returns: a #GVariant, or %NULL
+ *
+ * Looks up a value named @key in @file.
+ *
+ * This call is equivalent to gvdb_table_get_value() except that it
+ * never byteswaps the value.
+ **/
+GVariant *
+gvdb_table_get_raw_value (GvdbTable   *table,
+                          const gchar *key)
+{
+  const struct gvdb_hash_item *item;
+
+  if ((item = gvdb_table_lookup (table, key, 'v')) == NULL)
+    return NULL;
+
+  return gvdb_table_value_from_item (table, item);
+}
+
+/**
  * gvdb_table_get_table:
  * @file: a #GvdbTable
  * @key: a string
index c960646..9f302c0 100644 (file)
@@ -42,6 +42,9 @@ G_GNUC_INTERNAL
 GvdbTable *             gvdb_table_get_table                            (GvdbTable    *table,
                                                                          const gchar  *key);
 G_GNUC_INTERNAL
+GVariant *              gvdb_table_get_raw_value                        (GvdbTable    *table,
+                                                                         const gchar  *key);
+G_GNUC_INTERNAL
 GVariant *              gvdb_table_get_value                            (GvdbTable    *table,
                                                                          const gchar  *key);