aboutsummaryrefslogtreecommitdiff
path: root/src/wixext/UtilCompiler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/wixext/UtilCompiler.cs')
-rw-r--r--src/wixext/UtilCompiler.cs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/wixext/UtilCompiler.cs b/src/wixext/UtilCompiler.cs
index 65ca406d..672c3f68 100644
--- a/src/wixext/UtilCompiler.cs
+++ b/src/wixext/UtilCompiler.cs
@@ -49,6 +49,11 @@ namespace WixToolset.Util
49 TypeMask = 0xf, 49 TypeMask = 0xf,
50 } 50 }
51 51
52 internal enum WixPermissionExAttributes
53 {
54 Inheritable = 0x01
55 }
56
52 internal enum WixRemoveFolderExOn 57 internal enum WixRemoveFolderExOn
53 { 58 {
54 Install = 1, 59 Install = 1,
@@ -2367,6 +2372,8 @@ namespace WixToolset.Util
2367 string domain = null; 2372 string domain = null;
2368 string[] specialPermissions = null; 2373 string[] specialPermissions = null;
2369 string user = null; 2374 string user = null;
2375 var inheritable = YesNoType.NotSet;
2376 int attributes = 0;
2370 2377
2371 var permissionType = PermissionType.SecureObjects; 2378 var permissionType = PermissionType.SecureObjects;
2372 2379
@@ -2407,6 +2414,9 @@ namespace WixToolset.Util
2407 } 2414 }
2408 domain = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 2415 domain = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2409 break; 2416 break;
2417 case "Inheritable":
2418 inheritable = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib);
2419 break;
2410 case "User": 2420 case "User":
2411 user = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 2421 user = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2412 break; 2422 break;
@@ -2444,6 +2454,8 @@ namespace WixToolset.Util
2444 this.Messaging.Write(ErrorMessages.GenericReadNotAllowed(sourceLineNumbers)); 2454 this.Messaging.Write(ErrorMessages.GenericReadNotAllowed(sourceLineNumbers));
2445 } 2455 }
2446 2456
2457 attributes |= inheritable == YesNoType.No ? 0 : (int)WixPermissionExAttributes.Inheritable; // default to inheritable.
2458
2447 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); 2459 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
2448 2460
2449 if (!this.Messaging.EncounteredError) 2461 if (!this.Messaging.EncounteredError)
@@ -2457,6 +2469,7 @@ namespace WixToolset.Util
2457 Table = tableName, 2469 Table = tableName,
2458 Domain = domain, 2470 Domain = domain,
2459 User = user, 2471 User = user,
2472 Attributes = attributes,
2460 Permission = permission, 2473 Permission = permission,
2461 ComponentRef = componentId, 2474 ComponentRef = componentId,
2462 }); 2475 });