aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2020-11-16 22:13:33 -0500
committerBob Arnson <bob@firegiant.com>2020-11-16 22:19:41 -0500
commit2a8f47e357bfbfe20c962cade4455793e45dae7c (patch)
treeb13563d0df7652d01bd11bfb1d2e7d67ae040c1e
parentaf854e4c8341cc90fb41c8b5122d4308574e8a9a (diff)
downloadwix-2a8f47e357bfbfe20c962cade4455793e45dae7c.tar.gz
wix-2a8f47e357bfbfe20c962cade4455793e45dae7c.tar.bz2
wix-2a8f47e357bfbfe20c962cade4455793e45dae7c.zip
Support an empty multiString registry value
-rw-r--r--src/WixToolset.Core/Compiler_2.cs7
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs2
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs2
3 files changed, 4 insertions, 7 deletions
diff --git a/src/WixToolset.Core/Compiler_2.cs b/src/WixToolset.Core/Compiler_2.cs
index f55264e5..1922a70b 100644
--- a/src/WixToolset.Core/Compiler_2.cs
+++ b/src/WixToolset.Core/Compiler_2.cs
@@ -1977,16 +1977,11 @@ namespace WixToolset.Core
1977 } 1977 }
1978 } 1978 }
1979 1979
1980 if (multiStringValue == null)
1981 {
1982 this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value"));
1983 }
1984
1985 this.Core.VerifyNoInnerText(sourceLineNumbers, node); 1980 this.Core.VerifyNoInnerText(sourceLineNumbers, node);
1986 1981
1987 this.Core.ParseForExtensionElements(node); 1982 this.Core.ParseForExtensionElements(node);
1988 1983
1989 return (null == value) ? multiStringValue : String.Concat(value, "[~]", multiStringValue); 1984 return null == value ? multiStringValue ?? "[~]" : String.Concat(value, "[~]", multiStringValue);
1990 } 1985 }
1991 1986
1992 /// <summary> 1987 /// <summary>
diff --git a/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
index 2a1e2a49..699155d4 100644
--- a/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
@@ -74,7 +74,7 @@ namespace WixToolsetTest.CoreIntegration
74 Assert.Equal(new[] 74 Assert.Equal(new[]
75 { 75 {
76 "Registry:regitq_Wx9LfvJuNSc2un6gIHAzr4A\t2\tPath\\To\\AnotherKey\tSecret\t#x\tMultiStringComponent", 76 "Registry:regitq_Wx9LfvJuNSc2un6gIHAzr4A\t2\tPath\\To\\AnotherKey\tSecret\t#x\tMultiStringComponent",
77 "Registry:regmeTJMpOD41igfxhTcUVZ7kNG1Mo\t2\tPath\\To\\Key\t\ta[~]b[~]c\tMultiStringComponent", 77 "Registry:regmeTJMpOD41igfxhTcUVZ7kNG1Mo\t2\tPath\\To\\Key\t\ta[~]b[~][~]c[~]\tMultiStringComponent",
78 }, results); 78 }, results);
79 } 79 }
80 } 80 }
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs
index d5c680ee..c62c571d 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs
@@ -6,7 +6,9 @@
6 <RegistryValue Root="HKLM" Key="Path\To\Key" Type="multiString" KeyPath="yes"> 6 <RegistryValue Root="HKLM" Key="Path\To\Key" Type="multiString" KeyPath="yes">
7 <MultiString Value="a" /> 7 <MultiString Value="a" />
8 <MultiStringValue Value="b" /> 8 <MultiStringValue Value="b" />
9 <MultiStringValue />
9 <MultiString Value="c" /> 10 <MultiString Value="c" />
11 <MultiStringValue />
10 </RegistryValue> 12 </RegistryValue>
11 <RegistryValue Root="HKLM" Key="Path\To\AnotherKey" Name="Secret" Type="binary" /> 13 <RegistryValue Root="HKLM" Key="Path\To\AnotherKey" Name="Secret" Type="binary" />
12 </Component> 14 </Component>