summaryrefslogtreecommitdiffstats
path: root/tools/wixl/msi.vala
diff options
context:
space:
mode:
Diffstat (limited to 'tools/wixl/msi.vala')
-rw-r--r--tools/wixl/msi.vala20
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/wixl/msi.vala b/tools/wixl/msi.vala
index cf7d46f..e2b5490 100644
--- a/tools/wixl/msi.vala
+++ b/tools/wixl/msi.vala
@@ -489,6 +489,23 @@ namespace Wixl {
}
}
+ class MsiTableCreateFolder: MsiTable {
+ static construct {
+ name = "CreateFolder";
+ sql_create = "CREATE TABLE `CreateFolder` (`Directory_` CHAR(72) NOT NULL, `Component_` CHAR(72) NOT NULL PRIMARY KEY `Directory_`, `Component_`)";
+ sql_insert = "INSERT INTO `CreateFolder` (`Directory_`, `Component_`) VALUES (?, ?)";
+ }
+
+ public void add (string Directory, string Component) throws GLib.Error {
+ var rec = new Libmsi.Record (2);
+ if (!rec.set_string (1, Directory) ||
+ !rec.set_string (2, Component))
+ throw new Wixl.Error.FAILED ("failed to add record");
+
+ records.append (rec);
+ }
+ }
+
class MsiTableRemoveFile: MsiTable {
static construct {
name = "RemoveFile";
@@ -754,6 +771,7 @@ namespace Wixl {
public MsiTableAppSearch table_app_search;
public MsiTableCustomAction table_custom_action;
public MsiTableRegLocator table_reg_locator;
+ public MsiTableCreateFolder table_create_folder;
public HashTable<string, MsiTable> tables;
@@ -818,6 +836,7 @@ namespace Wixl {
table_app_search = new MsiTableAppSearch ();
table_custom_action = new MsiTableCustomAction ();
table_reg_locator = new MsiTableRegLocator ();
+ table_create_folder = new MsiTableCreateFolder ();
foreach (var t in new MsiTable[] {
table_admin_execute_sequence,
@@ -845,6 +864,7 @@ namespace Wixl {
table_app_search,
table_custom_action,
table_reg_locator,
+ table_create_folder,
new MsiTableError (),
new MsiTableValidation ()
}) {