summaryrefslogtreecommitdiffstats
path: root/libmsi
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2012-10-23 13:25:47 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2012-12-06 20:30:30 +0100
commitb4520f9ebf388a13d51461e20f3c60ac89ac277d (patch)
tree43209ff8e77d183866b7930bed32af74ea8ba1ee /libmsi
parent021e34abc22eea0b914ab474562f02625d7ec4eb (diff)
downloadmsitools-b4520f9ebf388a13d51461e20f3c60ac89ac277d.tar.gz
msitools-b4520f9ebf388a13d51461e20f3c60ac89ac277d.tar.xz
msitools-b4520f9ebf388a13d51461e20f3c60ac89ac277d.zip
make MsiDatabaseApplyTransform ASCII-only
Diffstat (limited to 'libmsi')
-rw-r--r--libmsi/msipriv.h4
-rw-r--r--libmsi/msiquery.c37
2 files changed, 13 insertions, 28 deletions
diff --git a/libmsi/msipriv.h b/libmsi/msipriv.h
index 236193f..d1c2290 100644
--- a/libmsi/msipriv.h
+++ b/libmsi/msipriv.h
@@ -341,8 +341,8 @@ extern unsigned write_stream_data( IStorage *stg, const WCHAR *stname,
/* transform functions */
extern unsigned msi_table_apply_transform( LibmsiDatabase *db, IStorage *stg );
-extern unsigned MSI_DatabaseApplyTransformW( LibmsiDatabase *db,
- const WCHAR *szTransformFile, int iErrorCond );
+extern unsigned MSI_DatabaseApplyTransform( LibmsiDatabase *db,
+ const char *szTransformFile, int iErrorCond );
extern void append_storage_to_db( LibmsiDatabase *db, IStorage *stg );
/* record internals */
diff --git a/libmsi/msiquery.c b/libmsi/msiquery.c
index 63d4194..2a57300 100644
--- a/libmsi/msiquery.c
+++ b/libmsi/msiquery.c
@@ -678,17 +678,20 @@ LibmsiObject * MsiGetLastErrorRecord( void )
return 0;
}
-unsigned MSI_DatabaseApplyTransformW( LibmsiDatabase *db,
- const WCHAR *szTransformFile, int iErrorCond )
+unsigned MSI_DatabaseApplyTransform( LibmsiDatabase *db,
+ const char *szTransformFile, int iErrorCond )
{
HRESULT r;
unsigned ret = ERROR_FUNCTION_FAILED;
IStorage *stg = NULL;
STATSTG stat;
+ WCHAR *szwTransformFile = NULL;
- TRACE("%p %s %d\n", db, debugstr_w(szTransformFile), iErrorCond);
+ TRACE("%p %s %d\n", db, debugstr_a(szTransformFile), iErrorCond);
+ szwTransformFile = strdupAtoW(szTransformFile);
+ if (!szwTransformFile) goto end;
- r = StgOpenStorage( szTransformFile, NULL,
+ r = StgOpenStorage( szwTransformFile, NULL,
STGM_DIRECT|STGM_READ|STGM_SHARE_DENY_WRITE, NULL, 0, &stg);
if ( FAILED(r) )
{
@@ -709,13 +712,14 @@ unsigned MSI_DatabaseApplyTransformW( LibmsiDatabase *db,
ret = msi_table_apply_transform( db, stg );
end:
+ msi_free(szwTransformFile);
IStorage_Release( stg );
return ret;
}
-unsigned MsiDatabaseApplyTransformW( LibmsiObject *hdb,
- const WCHAR *szTransformFile, int iErrorCond)
+unsigned MsiDatabaseApplyTransform( LibmsiObject *hdb,
+ const char *szTransformFile, int iErrorCond)
{
LibmsiDatabase *db;
unsigned r;
@@ -723,30 +727,11 @@ unsigned MsiDatabaseApplyTransformW( LibmsiObject *hdb,
db = msihandle2msiinfo( hdb, LIBMSI_OBJECT_TYPE_DATABASE );
if( !db )
return ERROR_INVALID_HANDLE;
- r = MSI_DatabaseApplyTransformW( db, szTransformFile, iErrorCond );
+ r = MSI_DatabaseApplyTransform( db, szTransformFile, iErrorCond );
msiobj_release( &db->hdr );
return r;
}
-unsigned MsiDatabaseApplyTransformA( LibmsiObject *hdb,
- const char *szTransformFile, int iErrorCond)
-{
- WCHAR *wstr;
- unsigned ret;
-
- TRACE("%d %s %d\n", hdb, debugstr_a(szTransformFile), iErrorCond);
-
- wstr = strdupAtoW( szTransformFile );
- if( szTransformFile && !wstr )
- return ERROR_NOT_ENOUGH_MEMORY;
-
- ret = MsiDatabaseApplyTransformW( hdb, wstr, iErrorCond);
-
- msi_free( wstr );
-
- return ret;
-}
-
unsigned MsiDatabaseCommit( LibmsiObject *hdb )
{
LibmsiDatabase *db;