summaryrefslogtreecommitdiffstats
path: root/libmsi/libmsi-query.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-12-15 01:16:04 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2013-01-09 13:56:06 +0100
commitab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84 (patch)
tree976ff7ecb007cbd8338ddfdbd25b282fe1acc49a /libmsi/libmsi-query.c
parent032e8f05e3381311a0ea37531e2cdc6b29e80bf5 (diff)
downloadmsitools-ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84.tar.gz
msitools-ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84.tar.xz
msitools-ab8e8a0cd0f9b5611f07c71a94ec17ffd9bd4e84.zip
query: make get_column_info() GObject-like
Diffstat (limited to 'libmsi/libmsi-query.c')
-rw-r--r--libmsi/libmsi-query.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/libmsi/libmsi-query.c b/libmsi/libmsi-query.c
index 17b80d2..848fbfa 100644
--- a/libmsi/libmsi-query.c
+++ b/libmsi/libmsi-query.c
@@ -532,7 +532,7 @@ static void msi_set_record_type_string( LibmsiRecord *rec, unsigned field,
libmsi_record_set_string( rec, field, szType );
}
-unsigned _libmsi_query_get_column_info( LibmsiQuery *query, LibmsiColInfo info, LibmsiRecord **prec )
+LibmsiResult _libmsi_query_get_column_info( LibmsiQuery *query, LibmsiColInfo info, LibmsiRecord **prec )
{
unsigned r = LIBMSI_RESULT_FUNCTION_FAILED, i, count = 0, type;
LibmsiRecord *rec;
@@ -571,26 +571,28 @@ unsigned _libmsi_query_get_column_info( LibmsiQuery *query, LibmsiColInfo info,
return LIBMSI_RESULT_SUCCESS;
}
-LibmsiResult libmsi_query_get_column_info(LibmsiQuery *query, LibmsiColInfo info, LibmsiRecord **prec)
+LibmsiRecord *
+libmsi_query_get_column_info (LibmsiQuery *query, LibmsiColInfo info, GError **error)
{
+ LibmsiRecord *rec;
unsigned r;
- TRACE("%d %d %p\n", query, info, prec);
-
- if( !prec )
- return LIBMSI_RESULT_INVALID_PARAMETER;
+ TRACE("%p %d\n", query, info);
- if( info != LIBMSI_COL_INFO_NAMES && info != LIBMSI_COL_INFO_TYPES )
- return LIBMSI_RESULT_INVALID_PARAMETER;
+ if (info != LIBMSI_COL_INFO_NAMES && info != LIBMSI_COL_INFO_TYPES)
+ return NULL;
- if( !query )
- return LIBMSI_RESULT_INVALID_HANDLE;
+ if (!query)
+ return NULL;
g_object_ref(query);
- r = _libmsi_query_get_column_info( query, info, prec );
+ r = _libmsi_query_get_column_info( query, info, &rec);
g_object_unref(query);
- return r;
+ if (r != LIBMSI_RESULT_SUCCESS)
+ g_set_error_literal (error, LIBMSI_RESULT_ERROR, r, G_STRFUNC);
+
+ return rec;
}
void