James Hawkins : msi: Factor out the table insertion code.
Alexandre Julliard
julliard at winehq.org
Tue Nov 4 07:29:06 CST 2008
Module: wine
Branch: master
Commit: 2abb8bba13f432c84547a4bfa5721d769bd3cfb7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2abb8bba13f432c84547a4bfa5721d769bd3cfb7
Author: James Hawkins <jhawkins at codeweavers.com>
Date: Mon Nov 3 22:16:26 2008 -0600
msi: Factor out the table insertion code.
---
dlls/msi/tests/db.c | 111 +++++++++++++++------------------------------------
1 files changed, 32 insertions(+), 79 deletions(-)
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index 3561eeb..6f92a21 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -241,85 +241,38 @@ static UINT create_binary_table( MSIHANDLE hdb )
"PRIMARY KEY `Name` )" );
}
-static UINT add_component_entry( MSIHANDLE hdb, const char *values )
-{
- char insert[] = "INSERT INTO `Component` "
- "(`Component`, `ComponentId`, `Directory_`, `Attributes`, `Condition`, `KeyPath`) "
- "VALUES( %s )";
- char *query;
- UINT sz, r;
-
- sz = strlen(values) + sizeof insert;
- query = HeapAlloc(GetProcessHeap(),0,sz);
- sprintf(query,insert,values);
- r = run_query( hdb, 0, query );
- HeapFree(GetProcessHeap(), 0, query);
- return r;
-}
+#define make_add_entry(type, qtext) \
+ static UINT add##_##type##_##entry( MSIHANDLE hdb, const char *values ) \
+ { \
+ char insert[] = qtext; \
+ char *query; \
+ UINT sz, r; \
+ sz = strlen(values) + sizeof insert; \
+ query = HeapAlloc(GetProcessHeap(),0,sz); \
+ sprintf(query,insert,values); \
+ r = run_query( hdb, 0, query ); \
+ HeapFree(GetProcessHeap(), 0, query); \
+ return r; \
+ }
-static UINT add_custom_action_entry( MSIHANDLE hdb, const char *values )
-{
- char insert[] = "INSERT INTO `CustomAction` "
- "(`Action`, `Type`, `Source`, `Target`) "
- "VALUES( %s )";
- char *query;
- UINT sz, r;
-
- sz = strlen(values) + sizeof insert;
- query = HeapAlloc(GetProcessHeap(),0,sz);
- sprintf(query,insert,values);
- r = run_query( hdb, 0, query );
- HeapFree(GetProcessHeap(), 0, query);
- return r;
-}
+make_add_entry(component,
+ "INSERT INTO `Component` "
+ "(`Component`, `ComponentId`, `Directory_`, "
+ "`Attributes`, `Condition`, `KeyPath`) VALUES( %s )")
-static UINT add_feature_components_entry( MSIHANDLE hdb, const char *values )
-{
- char insert[] = "INSERT INTO `FeatureComponents` "
- "(`Feature_`, `Component_`) "
- "VALUES( %s )";
- char *query;
- UINT sz, r;
-
- sz = strlen(values) + sizeof insert;
- query = HeapAlloc(GetProcessHeap(),0,sz);
- sprintf(query,insert,values);
- r = run_query( hdb, 0, query );
- HeapFree(GetProcessHeap(), 0, query);
- return r;
-}
+make_add_entry(custom_action,
+ "INSERT INTO `CustomAction` "
+ "(`Action`, `Type`, `Source`, `Target`) VALUES( %s )")
-static UINT add_std_dlls_entry( MSIHANDLE hdb, const char *values )
-{
- char insert[] = "INSERT INTO `StdDlls` "
- "(`File`, `Binary_`) "
- "VALUES( %s )";
- char *query;
- UINT sz, r;
-
- sz = strlen(values) + sizeof insert;
- query = HeapAlloc(GetProcessHeap(),0,sz);
- sprintf(query,insert,values);
- r = run_query( hdb, 0, query );
- HeapFree(GetProcessHeap(), 0, query);
- return r;
-}
+make_add_entry(feature_components,
+ "INSERT INTO `FeatureComponents` "
+ "(`Feature_`, `Component_`) VALUES( %s )")
-static UINT add_binary_entry( MSIHANDLE hdb, const char *values )
-{
- char insert[] = "INSERT INTO `Binary` "
- "(`Name`, `Data`) "
- "VALUES( %s )";
- char *query;
- UINT sz, r;
-
- sz = strlen(values) + sizeof insert;
- query = HeapAlloc(GetProcessHeap(),0,sz);
- sprintf(query,insert,values);
- r = run_query( hdb, 0, query );
- HeapFree(GetProcessHeap(), 0, query);
- return r;
-}
+make_add_entry(std_dlls,
+ "INSERT INTO `StdDlls` (`File`, `Binary_`) VALUES( %s )")
+
+make_add_entry(binary,
+ "INSERT INTO `Binary` (`Name`, `Data`) VALUES( %s )")
static void test_msiinsert(void)
{
More information about the wine-cvs
mailing list