aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-06-17 14:07:26 -0700
committerRob Mensching <rob@firegiant.com>2020-06-23 02:10:31 -0700
commit06e86dadb969ad1d337db11956814a1f79bbcd02 (patch)
tree897300b277c758a2e9bb6db223e7ccee40a583ee /src
parent099a5bc83bfde2a713a94d47e613dba16fdcee2a (diff)
downloadwix-06e86dadb969ad1d337db11956814a1f79bbcd02.tar.gz
wix-06e86dadb969ad1d337db11956814a1f79bbcd02.tar.bz2
wix-06e86dadb969ad1d337db11956814a1f79bbcd02.zip
Moved more inner text to attribute
Diffstat (limited to 'src')
-rw-r--r--src/WixToolset.Core/Compiler_2.cs341
-rw-r--r--src/WixToolset.Core/Compiler_EmbeddedUI.cs11
-rw-r--r--src/WixToolset.Core/Compiler_UI.cs38
3 files changed, 253 insertions, 137 deletions
diff --git a/src/WixToolset.Core/Compiler_2.cs b/src/WixToolset.Core/Compiler_2.cs
index 84961f9b..234c1ebc 100644
--- a/src/WixToolset.Core/Compiler_2.cs
+++ b/src/WixToolset.Core/Compiler_2.cs
@@ -2621,6 +2621,9 @@ namespace WixToolset.Core
2621 this.Core.UnexpectedAttribute(child, attrib); 2621 this.Core.UnexpectedAttribute(child, attrib);
2622 } 2622 }
2623 break; 2623 break;
2624 case "Condition":
2625 condition = this.Core.GetAttributeValue(childSourceLineNumbers, attrib);
2626 break;
2624 case "Dialog": 2627 case "Dialog":
2625 if (showDialog) 2628 if (showDialog)
2626 { 2629 {
@@ -2678,7 +2681,10 @@ namespace WixToolset.Core
2678 } 2681 }
2679 2682
2680 // Get the condition from the inner text of the element. 2683 // Get the condition from the inner text of the element.
2681 condition = this.Core.GetConditionInnerText(child); 2684 if (condition == null)
2685 {
2686 condition = this.Core.GetConditionInnerText(child);
2687 }
2682 2688
2683 if (customAction && "Custom" == actionName) 2689 if (customAction && "Custom" == actionName)
2684 { 2690 {
@@ -2901,128 +2907,7 @@ namespace WixToolset.Core
2901 switch (child.Name.LocalName) 2907 switch (child.Name.LocalName)
2902 { 2908 {
2903 case "RequiredPrivilege": 2909 case "RequiredPrivilege":
2904 var privilege = this.Core.GetTrimmedInnerText(child); 2910 requiredPrivileges = this.ParseRequiredPrivilege(child, requiredPrivileges);
2905 switch (privilege)
2906 {
2907 case "assignPrimaryToken":
2908 privilege = "SeAssignPrimaryTokenPrivilege";
2909 break;
2910 case "audit":
2911 privilege = "SeAuditPrivilege";
2912 break;
2913 case "backup":
2914 privilege = "SeBackupPrivilege";
2915 break;
2916 case "changeNotify":
2917 privilege = "SeChangeNotifyPrivilege";
2918 break;
2919 case "createGlobal":
2920 privilege = "SeCreateGlobalPrivilege";
2921 break;
2922 case "createPagefile":
2923 privilege = "SeCreatePagefilePrivilege";
2924 break;
2925 case "createPermanent":
2926 privilege = "SeCreatePermanentPrivilege";
2927 break;
2928 case "createSymbolicLink":
2929 privilege = "SeCreateSymbolicLinkPrivilege";
2930 break;
2931 case "createToken":
2932 privilege = "SeCreateTokenPrivilege";
2933 break;
2934 case "debug":
2935 privilege = "SeDebugPrivilege";
2936 break;
2937 case "enableDelegation":
2938 privilege = "SeEnableDelegationPrivilege";
2939 break;
2940 case "impersonate":
2941 privilege = "SeImpersonatePrivilege";
2942 break;
2943 case "increaseBasePriority":
2944 privilege = "SeIncreaseBasePriorityPrivilege";
2945 break;
2946 case "increaseQuota":
2947 privilege = "SeIncreaseQuotaPrivilege";
2948 break;
2949 case "increaseWorkingSet":
2950 privilege = "SeIncreaseWorkingSetPrivilege";
2951 break;
2952 case "loadDriver":
2953 privilege = "SeLoadDriverPrivilege";
2954 break;
2955 case "lockMemory":
2956 privilege = "SeLockMemoryPrivilege";
2957 break;
2958 case "machineAccount":
2959 privilege = "SeMachineAccountPrivilege";
2960 break;
2961 case "manageVolume":
2962 privilege = "SeManageVolumePrivilege";
2963 break;
2964 case "profileSingleProcess":
2965 privilege = "SeProfileSingleProcessPrivilege";
2966 break;
2967 case "relabel":
2968 privilege = "SeRelabelPrivilege";
2969 break;
2970 case "remoteShutdown":
2971 privilege = "SeRemoteShutdownPrivilege";
2972 break;
2973 case "restore":
2974 privilege = "SeRestorePrivilege";
2975 break;
2976 case "security":
2977 privilege = "SeSecurityPrivilege";
2978 break;
2979 case "shutdown":
2980 privilege = "SeShutdownPrivilege";
2981 break;
2982 case "syncAgent":
2983 privilege = "SeSyncAgentPrivilege";
2984 break;
2985 case "systemEnvironment":
2986 privilege = "SeSystemEnvironmentPrivilege";
2987 break;
2988 case "systemProfile":
2989 privilege = "SeSystemProfilePrivilege";
2990 break;
2991 case "systemTime":
2992 case "modifySystemTime":
2993 privilege = "SeSystemtimePrivilege";
2994 break;
2995 case "takeOwnership":
2996 privilege = "SeTakeOwnershipPrivilege";
2997 break;
2998 case "tcb":
2999 case "trustedComputerBase":
3000 privilege = "SeTcbPrivilege";
3001 break;
3002 case "timeZone":
3003 case "modifyTimeZone":
3004 privilege = "SeTimeZonePrivilege";
3005 break;
3006 case "trustedCredManAccess":
3007 case "trustedCredentialManagerAccess":
3008 privilege = "SeTrustedCredManAccessPrivilege";
3009 break;
3010 case "undock":
3011 privilege = "SeUndockPrivilege";
3012 break;
3013 case "unsolicitedInput":
3014 privilege = "SeUnsolicitedInputPrivilege";
3015 break;
3016 default:
3017 // allow everything else to pass through that are hopefully "formatted" Properties.
3018 break;
3019 }
3020
3021 if (null != requiredPrivileges)
3022 {
3023 requiredPrivileges = String.Concat(requiredPrivileges, "[~]");
3024 }
3025 requiredPrivileges = String.Concat(requiredPrivileges, privilege);
3026 break; 2911 break;
3027 default: 2912 default:
3028 this.Core.UnexpectedElement(node, child); 2913 this.Core.UnexpectedElement(node, child);
@@ -3128,6 +3013,157 @@ namespace WixToolset.Core
3128 } 3013 }
3129 } 3014 }
3130 3015
3016 private string ParseRequiredPrivilege(XElement node, string requiredPrivileges)
3017 {
3018 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
3019 string privilege = null;
3020
3021 foreach (var attrib in node.Attributes())
3022 {
3023 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || CompilerCore.WixNamespace == attrib.Name.Namespace)
3024 {
3025 switch (attrib.Name.LocalName)
3026 {
3027 case "Name":
3028 privilege = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
3029 switch (privilege)
3030 {
3031 case "assignPrimaryToken":
3032 privilege = "SeAssignPrimaryTokenPrivilege";
3033 break;
3034 case "audit":
3035 privilege = "SeAuditPrivilege";
3036 break;
3037 case "backup":
3038 privilege = "SeBackupPrivilege";
3039 break;
3040 case "changeNotify":
3041 privilege = "SeChangeNotifyPrivilege";
3042 break;
3043 case "createGlobal":
3044 privilege = "SeCreateGlobalPrivilege";
3045 break;
3046 case "createPagefile":
3047 privilege = "SeCreatePagefilePrivilege";
3048 break;
3049 case "createPermanent":
3050 privilege = "SeCreatePermanentPrivilege";
3051 break;
3052 case "createSymbolicLink":
3053 privilege = "SeCreateSymbolicLinkPrivilege";
3054 break;
3055 case "createToken":
3056 privilege = "SeCreateTokenPrivilege";
3057 break;
3058 case "debug":
3059 privilege = "SeDebugPrivilege";
3060 break;
3061 case "enableDelegation":
3062 privilege = "SeEnableDelegationPrivilege";
3063 break;
3064 case "impersonate":
3065 privilege = "SeImpersonatePrivilege";
3066 break;
3067 case "increaseBasePriority":
3068 privilege = "SeIncreaseBasePriorityPrivilege";
3069 break;
3070 case "increaseQuota":
3071 privilege = "SeIncreaseQuotaPrivilege";
3072 break;
3073 case "increaseWorkingSet":
3074 privilege = "SeIncreaseWorkingSetPrivilege";
3075 break;
3076 case "loadDriver":
3077 privilege = "SeLoadDriverPrivilege";
3078 break;
3079 case "lockMemory":
3080 privilege = "SeLockMemoryPrivilege";
3081 break;
3082 case "machineAccount":
3083 privilege = "SeMachineAccountPrivilege";
3084 break;
3085 case "manageVolume":
3086 privilege = "SeManageVolumePrivilege";
3087 break;
3088 case "profileSingleProcess":
3089 privilege = "SeProfileSingleProcessPrivilege";
3090 break;
3091 case "relabel":
3092 privilege = "SeRelabelPrivilege";
3093 break;
3094 case "remoteShutdown":
3095 privilege = "SeRemoteShutdownPrivilege";
3096 break;
3097 case "restore":
3098 privilege = "SeRestorePrivilege";
3099 break;
3100 case "security":
3101 privilege = "SeSecurityPrivilege";
3102 break;
3103 case "shutdown":
3104 privilege = "SeShutdownPrivilege";
3105 break;
3106 case "syncAgent":
3107 privilege = "SeSyncAgentPrivilege";
3108 break;
3109 case "systemEnvironment":
3110 privilege = "SeSystemEnvironmentPrivilege";
3111 break;
3112 case "systemProfile":
3113 privilege = "SeSystemProfilePrivilege";
3114 break;
3115 case "systemTime":
3116 case "modifySystemTime":
3117 privilege = "SeSystemtimePrivilege";
3118 break;
3119 case "takeOwnership":
3120 privilege = "SeTakeOwnershipPrivilege";
3121 break;
3122 case "tcb":
3123 case "trustedComputerBase":
3124 privilege = "SeTcbPrivilege";
3125 break;
3126 case "timeZone":
3127 case "modifyTimeZone":
3128 privilege = "SeTimeZonePrivilege";
3129 break;
3130 case "trustedCredManAccess":
3131 case "trustedCredentialManagerAccess":
3132 privilege = "SeTrustedCredManAccessPrivilege";
3133 break;
3134 case "undock":
3135 privilege = "SeUndockPrivilege";
3136 break;
3137 case "unsolicitedInput":
3138 privilege = "SeUnsolicitedInputPrivilege";
3139 break;
3140 default:
3141 // allow everything else to pass through that are hopefully "formatted" Properties.
3142 break;
3143 }
3144 break;
3145 default:
3146 this.Core.UnexpectedAttribute(node, attrib);
3147 break;
3148 }
3149 }
3150 }
3151
3152 if (privilege == null)
3153 {
3154 privilege = Common.GetInnerText(node);
3155 }
3156
3157 if (privilege == null)
3158 {
3159 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Name"));
3160 }
3161
3162 this.Core.ParseForExtensionElements(node);
3163
3164 return (requiredPrivileges == null) ? privilege : String.Concat(requiredPrivileges, "[~]", privilege);
3165 }
3166
3131 /// <summary> 3167 /// <summary>
3132 /// Parses a service config failure actions element. 3168 /// Parses a service config failure actions element.
3133 /// </summary> 3169 /// </summary>
@@ -3427,11 +3463,7 @@ namespace WixToolset.Core
3427 switch (child.Name.LocalName) 3463 switch (child.Name.LocalName)
3428 { 3464 {
3429 case "ServiceArgument": 3465 case "ServiceArgument":
3430 if (null != arguments) 3466 arguments = this.ParseServiceArgument(child, arguments);
3431 {
3432 arguments = String.Concat(arguments, "[~]");
3433 }
3434 arguments = String.Concat(arguments, this.Core.GetTrimmedInnerText(child));
3435 break; 3467 break;
3436 default: 3468 default:
3437 this.Core.UnexpectedElement(node, child); 3469 this.Core.UnexpectedElement(node, child);
@@ -3462,6 +3494,42 @@ namespace WixToolset.Core
3462 } 3494 }
3463 } 3495 }
3464 3496
3497 private string ParseServiceArgument(XElement node, string arguments)
3498 {
3499 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
3500 string argument = null;
3501
3502 foreach (var attrib in node.Attributes())
3503 {
3504 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || CompilerCore.WixNamespace == attrib.Name.Namespace)
3505 {
3506 switch (attrib.Name.LocalName)
3507 {
3508 case "Value":
3509 argument = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
3510 break;
3511 default:
3512 this.Core.UnexpectedAttribute(node, attrib);
3513 break;
3514 }
3515 }
3516 }
3517
3518 if (argument == null)
3519 {
3520 argument = this.Core.GetTrimmedInnerText(node);
3521 }
3522
3523 if (argument == null)
3524 {
3525 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value"));
3526 }
3527
3528 this.Core.ParseForExtensionElements(node);
3529
3530 return (arguments == null) ? argument : String.Concat(arguments, "[~]", argument);
3531 }
3532
3465 /// <summary> 3533 /// <summary>
3466 /// Parses a service dependency element. 3534 /// Parses a service dependency element.
3467 /// </summary> 3535 /// </summary>
@@ -3746,6 +3814,9 @@ namespace WixToolset.Core
3746 case "Action": 3814 case "Action":
3747 actionName = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); 3815 actionName = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
3748 break; 3816 break;
3817 case "Condition":
3818 condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
3819 break;
3749 case "Id": 3820 case "Id":
3750 id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); 3821 id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
3751 this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Directory, id); 3822 this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Directory, id);
@@ -3786,7 +3857,10 @@ namespace WixToolset.Core
3786 } 3857 }
3787 } 3858 }
3788 3859
3789 condition = this.Core.GetConditionInnerText(node); 3860 if (condition == null)
3861 {
3862 condition = this.Core.GetConditionInnerText(node);
3863 }
3790 3864
3791 if (null == id) 3865 if (null == id)
3792 { 3866 {
@@ -3831,6 +3905,7 @@ namespace WixToolset.Core
3831 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); 3905 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
3832 string actionName = null; 3906 string actionName = null;
3833 string id = null; 3907 string id = null;
3908 string condition = null;
3834 string afterAction = null; 3909 string afterAction = null;
3835 string beforeAction = null; 3910 string beforeAction = null;
3836 var executionType = CustomActionExecutionType.Immediate; 3911 var executionType = CustomActionExecutionType.Immediate;
@@ -3849,6 +3924,9 @@ namespace WixToolset.Core
3849 case "Id": 3924 case "Id":
3850 id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); 3925 id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
3851 break; 3926 break;
3927 case "Condition":
3928 condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
3929 break;
3852 case "After": 3930 case "After":
3853 afterAction = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); 3931 afterAction = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
3854 break; 3932 break;
@@ -3914,7 +3992,10 @@ namespace WixToolset.Core
3914 } 3992 }
3915 } 3993 }
3916 3994
3917 var condition = this.Core.GetConditionInnerText(node); 3995 if (condition == null)
3996 {
3997 condition = this.Core.GetConditionInnerText(node);
3998 }
3918 3999
3919 if (null == id) 4000 if (null == id)
3920 { 4001 {
diff --git a/src/WixToolset.Core/Compiler_EmbeddedUI.cs b/src/WixToolset.Core/Compiler_EmbeddedUI.cs
index 706fe6e9..1827a200 100644
--- a/src/WixToolset.Core/Compiler_EmbeddedUI.cs
+++ b/src/WixToolset.Core/Compiler_EmbeddedUI.cs
@@ -23,6 +23,7 @@ namespace WixToolset.Core
23 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); 23 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
24 Identifier id = null; 24 Identifier id = null;
25 string commandLine = null; 25 string commandLine = null;
26 string condition = null;
26 string source = null; 27 string source = null;
27 var type = 0; 28 var type = 0;
28 29
@@ -47,6 +48,9 @@ namespace WixToolset.Core
47 case "CommandLine": 48 case "CommandLine":
48 commandLine = this.Core.GetAttributeValue(sourceLineNumbers, attrib); 49 commandLine = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
49 break; 50 break;
51 case "Condition":
52 condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
53 break;
50 case "FileSource": 54 case "FileSource":
51 if (null != source) 55 if (null != source)
52 { 56 {
@@ -76,8 +80,11 @@ namespace WixToolset.Core
76 } 80 }
77 } 81 }
78 82
79 // Get the condition from the inner text of the element. 83 if (condition == null)
80 var condition = this.Core.GetConditionInnerText(node); 84 {
85 // Get the condition from the inner text of the element.
86 condition = this.Core.GetConditionInnerText(node);
87 }
81 88
82 if (null == id) 89 if (null == id)
83 { 90 {
diff --git a/src/WixToolset.Core/Compiler_UI.cs b/src/WixToolset.Core/Compiler_UI.cs
index 19c2fdcc..0b5b3980 100644
--- a/src/WixToolset.Core/Compiler_UI.cs
+++ b/src/WixToolset.Core/Compiler_UI.cs
@@ -666,6 +666,7 @@ namespace WixToolset.Core
666 { 666 {
667 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); 667 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
668 string action = null; 668 string action = null;
669 string message = null;
669 string template = null; 670 string template = null;
670 671
671 foreach (var attrib in node.Attributes()) 672 foreach (var attrib in node.Attributes())
@@ -677,6 +678,9 @@ namespace WixToolset.Core
677 case "Action": 678 case "Action":
678 action = this.Core.GetAttributeValue(sourceLineNumbers, attrib); 679 action = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
679 break; 680 break;
681 case "Message":
682 message = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
683 break;
680 case "Template": 684 case "Template":
681 template = this.Core.GetAttributeValue(sourceLineNumbers, attrib); 685 template = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
682 break; 686 break;
@@ -696,6 +700,11 @@ namespace WixToolset.Core
696 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action")); 700 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Action"));
697 } 701 }
698 702
703 if (null == message)
704 {
705 message = Common.GetInnerText(node);
706 }
707
699 this.Core.ParseForExtensionElements(node); 708 this.Core.ParseForExtensionElements(node);
700 709
701 if (!this.Core.EncounteredError) 710 if (!this.Core.EncounteredError)
@@ -703,7 +712,7 @@ namespace WixToolset.Core
703 this.Core.AddTuple(new ActionTextTuple(sourceLineNumbers) 712 this.Core.AddTuple(new ActionTextTuple(sourceLineNumbers)
704 { 713 {
705 Action = action, 714 Action = action,
706 Description = Common.GetInnerText(node), 715 Description = message,
707 Template = template, 716 Template = template,
708 }); 717 });
709 } 718 }
@@ -728,6 +737,9 @@ namespace WixToolset.Core
728 case "Id": 737 case "Id":
729 id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib); 738 id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib);
730 break; 739 break;
740 case "Value":
741 text = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
742 break;
731 default: 743 default:
732 this.Core.UnexpectedAttribute(node, attrib); 744 this.Core.UnexpectedAttribute(node, attrib);
733 break; 745 break;
@@ -739,7 +751,10 @@ namespace WixToolset.Core
739 } 751 }
740 } 752 }
741 753
742 text = Common.GetInnerText(node); 754 if (null == text)
755 {
756 text = Common.GetInnerText(node);
757 }
743 758
744 if (null == id) 759 if (null == id)
745 { 760 {
@@ -1406,6 +1421,9 @@ namespace WixToolset.Core
1406 case "SourceFile": 1421 case "SourceFile":
1407 sourceFile = this.Core.GetAttributeValue(childSourceLineNumbers, attrib); 1422 sourceFile = this.Core.GetAttributeValue(childSourceLineNumbers, attrib);
1408 break; 1423 break;
1424 case "Value":
1425 text = this.Core.GetAttributeValue(childSourceLineNumbers, attrib);
1426 break;
1409 default: 1427 default:
1410 this.Core.UnexpectedAttribute(child, attrib); 1428 this.Core.UnexpectedAttribute(child, attrib);
1411 break; 1429 break;
@@ -1417,10 +1435,14 @@ namespace WixToolset.Core
1417 } 1435 }
1418 } 1436 }
1419 1437
1420 text = Common.GetInnerText(child); 1438 if (null == text)
1439 {
1440 text = Common.GetInnerText(child);
1441 }
1442
1421 if (!String.IsNullOrEmpty(text) && null != sourceFile) 1443 if (!String.IsNullOrEmpty(text) && null != sourceFile)
1422 { 1444 {
1423 this.Core.Write(ErrorMessages.IllegalAttributeWithInnerText(childSourceLineNumbers, child.Name.LocalName, "SourceFile")); 1445 this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttribute(childSourceLineNumbers, child.Name.LocalName, "SourceFile", "Text"));
1424 } 1446 }
1425 break; 1447 break;
1426 default: 1448 default:
@@ -1589,6 +1611,9 @@ namespace WixToolset.Core
1589 { 1611 {
1590 switch (attrib.Name.LocalName) 1612 switch (attrib.Name.LocalName)
1591 { 1613 {
1614 case "Condition":
1615 condition = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
1616 break;
1592 case "Control": 1617 case "Control":
1593 if (null != control) 1618 if (null != control)
1594 { 1619 {
@@ -1627,7 +1652,10 @@ namespace WixToolset.Core
1627 } 1652 }
1628 } 1653 }
1629 1654
1630 condition = this.Core.GetConditionInnerText(node); 1655 if (null == condition)
1656 {
1657 condition = this.Core.GetConditionInnerText(node);
1658 }
1631 1659
1632 if (null == control) 1660 if (null == control)
1633 { 1661 {