From e5e491c96946ec6ff6809e4b2b757b1f2d497867 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Sun, 3 Oct 2010 22:54:03 -0400 Subject: [PATCH] Add gvdb_table_get_raw_value() API for GSettings --- gvdb-reader.c | 23 +++++++++++++++++++++++ gvdb-reader.h | 3 +++ 2 files changed, 26 insertions(+) diff --git a/gvdb-reader.c b/gvdb-reader.c index 0b1b2ce8c..fb23393e1 100644 --- a/gvdb-reader.c +++ b/gvdb-reader.c @@ -457,6 +457,29 @@ gvdb_table_get_value (GvdbTable *file, return value; } +/** + * 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 diff --git a/gvdb-reader.h b/gvdb-reader.h index c96064627..9f302c043 100644 --- a/gvdb-reader.h +++ b/gvdb-reader.h @@ -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);