summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmsi/libmsi-database.c41
-rw-r--r--tests/data/Icon/firefox.16.0.2.0.ico.exe (renamed from tests/data/icon/firefox.16.0.2.0.ico.exe)bin25214 -> 25214 bytes
-rw-r--r--tests/testdatabase.c4
-rw-r--r--tests/testsuite.at4
4 files changed, 10 insertions, 39 deletions
diff --git a/libmsi/libmsi-database.c b/libmsi/libmsi-database.c
index 3c50a06..5ef0dac 100644
--- a/libmsi/libmsi-database.c
+++ b/libmsi/libmsi-database.c
@@ -968,33 +968,8 @@ done:
return r;
}
-static char *msi_import_stream_filename(const char *path, const char *name)
-{
- unsigned len;
- char *fullname;
- char *ptr;
-
- len = strlen(path) + strlen(name) + 1;
- fullname = msi_alloc(len);
- if (!fullname)
- return NULL;
-
- strcpy( fullname, path );
-
- /* chop off extension from path */
- ptr = strrchr(fullname, '.');
- if (!ptr)
- {
- msi_free (fullname);
- return NULL;
- }
- strcpy( ptr, G_DIR_SEPARATOR_S );
- strcat( ptr, name );
- return fullname;
-}
-
static unsigned construct_record(unsigned num_columns, char **types,
- char **data, const char *path, LibmsiRecord **rec)
+ char **data, const char *name, LibmsiRecord **rec)
{
unsigned i;
@@ -1017,12 +992,9 @@ static unsigned construct_record(unsigned num_columns, char **types,
if (*data[i])
{
unsigned r;
- char *file = msi_import_stream_filename(path, data[i]);
- if (!file)
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
+ char *file = g_build_filename (name, data[i], NULL);
r = _libmsi_record_load_stream_from_file(*rec, i + 1, file);
- msi_free (file);
+ g_free (file);
if (r != LIBMSI_RESULT_SUCCESS)
return LIBMSI_RESULT_FUNCTION_FAILED;
}
@@ -1039,8 +1011,7 @@ static unsigned construct_record(unsigned num_columns, char **types,
static unsigned msi_add_records_to_table(LibmsiDatabase *db, char **columns, char **types,
char **labels, char ***records,
- int num_columns, int num_records,
- const char *path)
+ int num_columns, int num_records)
{
unsigned r, num_rows, num_cols;
int i;
@@ -1064,7 +1035,7 @@ static unsigned msi_add_records_to_table(LibmsiDatabase *db, char **columns, cha
for (i = 0; i < num_records; i++)
{
- r = construct_record(num_columns, types, records[i], path, &rec);
+ r = construct_record(num_columns, types, records[i], labels[0], &rec);
if (r != LIBMSI_RESULT_SUCCESS)
goto done;
@@ -1169,7 +1140,7 @@ static unsigned _libmsi_database_import(LibmsiDatabase *db, const char *path)
}
}
- r = msi_add_records_to_table( db, columns, types, labels, records, num_columns, num_records, path );
+ r = msi_add_records_to_table( db, columns, types, labels, records, num_columns, num_records);
}
done:
diff --git a/tests/data/icon/firefox.16.0.2.0.ico.exe b/tests/data/Icon/firefox.16.0.2.0.ico.exe
index ce218a0..ce218a0 100644
--- a/tests/data/icon/firefox.16.0.2.0.ico.exe
+++ b/tests/data/Icon/firefox.16.0.2.0.ico.exe
Binary files differ
diff --git a/tests/testdatabase.c b/tests/testdatabase.c
index 381e178..c7f4e62 100644
--- a/tests/testdatabase.c
+++ b/tests/testdatabase.c
@@ -2034,8 +2034,8 @@ static void test_binary_import(void)
/* create files to import */
write_file("bin_import.idt", bin_import_dat,
(sizeof(bin_import_dat) - 1) * sizeof(char));
- mkdir("bin_import", 0755);
- create_file_data("bin_import/filename1.ibd", "just some words", 15);
+ mkdir("Binary", 0755);
+ create_file_data("Binary/filename1.ibd", "just some words", 15);
/* import files into database */
hdb = libmsi_database_new(msifile, LIBMSI_DB_OPEN_CREATE, NULL);
diff --git a/tests/testsuite.at b/tests/testsuite.at
index c20a60e..ce5b9d9 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -183,13 +183,13 @@ AT_SETUP([Add table with streams])
AT_MSIDATA([tables.txt])
AT_MSIDATA([columns.txt])
AT_MSIDATA([icon.txt])
-AT_MSIDATA([icon/firefox.16.0.2.0.ico.exe])
+AT_MSIDATA([Icon/firefox.16.0.2.0.ico.exe])
AT_CHECK_MSIBUILD([out.msi -i tables.txt columns.txt icon.txt])
cp icon.txt expout
AT_CHECK_MSIINFO([streams out.msi | grep -v SummaryInformation], [0],
[Icon.firefox.16.0.2.0.ico.exe
])
-cp icon/firefox.16.0.2.0.ico.exe expout
+cp Icon/firefox.16.0.2.0.ico.exe expout
AT_CHECK_MSIINFO([extract out.msi Icon.firefox.16.0.2.0.ico.exe > stdout], [0])
AT_CHECK([cmp stdout expout])
AT_CLEANUP