@joebigelow / wix-1 / commits / 6155da0b

Small tuple based fixes

Rob Mensching committed Oct 18, 2019 at 11:30 UTC 6155da0bc9e7faa97612d15def98dd68ea2557cd
5 files changed +58 -39
src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs
+43 -7
@@ -50,13 +50,17 @@ namespace WixToolset.Core.WindowsInstaller.Bind
50 switch (tuple.Definition.Type)
51 {
52 case TupleDefinitionType.Binary:
53 - this.AddTupleDefaultly(tuple, output, true);
53 + this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true);
54 break;
55
56 case TupleDefinitionType.BBControl:
57 this.AddBBControlTuple((BBControlTuple)tuple, output);
58 break;
59
60 + case TupleDefinitionType.Class:
61 + this.AddClassTuple((ClassTuple)tuple, output);
62 + break;
63 +
64 case TupleDefinitionType.Control:
65 this.AddControlTuple((ControlTuple)tuple, output);
66 break;
@@ -89,6 +93,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind
93 this.AddFileTuple((FileTuple)tuple, output);
94 break;
95
96 + case TupleDefinitionType.Icon:
97 + this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true);
98 + break;
99 +
100 case TupleDefinitionType.IniFile:
101 this.AddIniFileTuple((IniFileTuple)tuple, output);
102 break;
@@ -118,7 +126,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
126 break;
127
128 case TupleDefinitionType.MsiShortcutProperty:
121 - this.AddTupleDefaultly(tuple, output, true);
129 + this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true);
130 break;
131
132 case TupleDefinitionType.MoveFile:
@@ -146,7 +154,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
154 break;
155
156 case TupleDefinitionType.ReserveCost:
149 - this.AddTupleDefaultly(tuple, output, true);
157 + this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true);
158 break;
159
160 case TupleDefinitionType.ServiceControl:
@@ -162,7 +170,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
170 break;
171
172 case TupleDefinitionType.Signature:
165 - this.AddTupleDefaultly(tuple, output, true);
173 + this.AddTupleDefaultly(tuple, output, idIsPrimaryKey: true);
174 break;
175
176 case TupleDefinitionType.SummaryInformation:
@@ -228,6 +236,25 @@ namespace WixToolset.Core.WindowsInstaller.Bind
236 row[8] = tuple.Text;
237 }
238
239 + private void AddClassTuple(ClassTuple tuple, Output output)
240 + {
241 + var table = output.EnsureTable(this.TableDefinitions["Class"]);
242 + var row = table.CreateRow(tuple.SourceLineNumbers);
243 + row[0] = tuple.CLSID;
244 + row[1] = tuple.Context;
245 + row[2] = tuple.ComponentRef;
246 + row[3] = tuple.DefaultProgIdRef;
247 + row[4] = tuple.Description;
248 + row[5] = tuple.AppIdRef;
249 + row[6] = tuple.FileTypeMask;
250 + row[7] = tuple.IconRef;
251 + row[8] = tuple.IconIndex;
252 + row[9] = tuple.DefInprocHandler;
253 + row[10] = tuple.Argument;
254 + row[11] = tuple.FeatureRef;
255 + row[12] = tuple.RelativePath ? (int?)1 : null;
256 + }
257 +
258 private void AddControlTuple(ControlTuple tuple, Output output)
259 {
260 var text = tuple.Text;
@@ -326,7 +353,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
353 row[1] = type;
354 row[2] = tuple.Source;
355 row[3] = tuple.Target;
329 - row[4] = tuple.PatchUninstall ? WindowsInstallerConstants.MsidbCustomActionTypePatchUninstall : 0;
356 + row[4] = tuple.PatchUninstall ? (int?)WindowsInstallerConstants.MsidbCustomActionTypePatchUninstall : null;
357 }
358
359 private void AddDialogTuple(DialogTuple tuple, Output output)
@@ -775,13 +802,22 @@ namespace WixToolset.Core.WindowsInstaller.Bind
802 styleBits |= tuple.Strike ? WindowsInstallerConstants.MsidbTextStyleStyleBitsStrike : 0;
803 styleBits |= tuple.Underline ? WindowsInstallerConstants.MsidbTextStyleStyleBitsUnderline : 0;
804
805 + long? color = null;
806 +
807 + if (tuple.Red.HasValue || tuple.Green.HasValue || tuple.Blue.HasValue)
808 + {
809 + color = tuple.Red ?? 0;
810 + color += (long)(tuple.Green ?? 0) * 256;
811 + color += (long)(tuple.Blue ?? 0) * 65536;
812 + }
813 +
814 var table = output.EnsureTable(this.TableDefinitions["TextStyle"]);
815 var row = table.CreateRow(tuple.SourceLineNumbers);
816 row[0] = tuple.Id.Id;
817 row[1] = tuple.FaceName;
818 row[2] = tuple.Size;
783 - row[3] = tuple.Color;
784 - row[4] = styleBits;
819 + row[3] = color;
820 + row[4] = styleBits == 0 ? null : (int?)styleBits;
821 }
822
823 private void AddUpgradeTuple(UpgradeTuple tuple, Output output)
src/WixToolset.Core/Compiler_2.cs
+1 -1
@@ -27,7 +27,7 @@ namespace WixToolset.Core
27 {
28 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
29 var codepage = 65001;
30 - string productCode = "*";
30 + var productCode = "*";
31 string upgradeCode = null;
32 string manufacturer = null;
33 string version = null;
src/WixToolset.Core/Compiler_UI.cs
+10 -27
@@ -746,7 +746,9 @@ namespace WixToolset.Core
746 {
747 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
748 Identifier id = null;
749 - var color = CompilerConstants.IntegerNotSet;
749 + int? red = null;
750 + int? green = null;
751 + int? blue = null;
752 var bold = false;
753 var italic = false;
754 var strike = false;
@@ -769,42 +771,21 @@ namespace WixToolset.Core
771 var redColor = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Byte.MaxValue);
772 if (CompilerConstants.IllegalInteger != redColor)
773 {
772 - if (CompilerConstants.IntegerNotSet == color)
773 - {
774 - color = redColor;
775 - }
776 - else
777 - {
778 - color += redColor;
779 - }
774 + red = redColor;
775 }
776 break;
777 case "Green":
778 var greenColor = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Byte.MaxValue);
779 if (CompilerConstants.IllegalInteger != greenColor)
780 {
786 - if (CompilerConstants.IntegerNotSet == color)
787 - {
788 - color = greenColor * 256;
789 - }
790 - else
791 - {
792 - color += greenColor * 256;
793 - }
781 + green = greenColor;
782 }
783 break;
784 case "Blue":
785 var blueColor = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 0, Byte.MaxValue);
786 if (CompilerConstants.IllegalInteger != blueColor)
787 {
800 - if (CompilerConstants.IntegerNotSet == color)
801 - {
802 - color = blueColor * 65536;
803 - }
804 - else
805 - {
806 - color += blueColor * 65536;
807 - }
788 + blue = blueColor;
789 }
790 break;
791
@@ -843,7 +824,7 @@ namespace WixToolset.Core
824
825 if (null == id)
826 {
846 - this.Core.CreateIdentifier("txs", faceName, size.ToString(), color.ToString(), bold.ToString(), italic.ToString(), strike.ToString(), underline.ToString());
827 + this.Core.CreateIdentifier("txs", faceName, size.ToString(), (red ?? 0).ToString(), (green ?? 0).ToString(), (blue ?? 0).ToString(), bold.ToString(), italic.ToString(), strike.ToString(), underline.ToString());
828 }
829
830 if (null == faceName)
@@ -858,7 +839,9 @@ namespace WixToolset.Core
839 var tuple = new TextStyleTuple(sourceLineNumbers, id)
840 {
841 FaceName = faceName,
861 - Color = color,
842 + Red = red,
843 + Green = green,
844 + Blue = blue,
845 Bold = bold,
846 Italic = italic,
847 Strike = strike,
src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
+3 -3
@@ -146,7 +146,7 @@ namespace WixToolsetTest.CoreIntegration
146 }
147 }
148
149 - [Fact(Skip = "Test demonstrates failure")]
149 + [Fact]
150 public void PopulatesClassTablesWhenIconIndexIsZero()
151 {
152 var folder = TestData.Get(@"TestData");
@@ -218,7 +218,7 @@ namespace WixToolsetTest.CoreIntegration
218 }
219 }
220
221 - [Fact(Skip = "Test demonstrates failure")]
221 + [Fact]
222 public void PopulatesCustomActionTable()
223 {
224 var folder = TestData.Get(@"TestData");
@@ -647,7 +647,7 @@ namespace WixToolsetTest.CoreIntegration
647 }
648 }
649
650 - [Fact(Skip = "Test demonstrates failure")]
650 + [Fact]
651 public void PopulatesTextStyleTableWhenColorIsNull()
652 {
653 var folder = TestData.Get(@"TestData");
src/test/WixToolsetTest.CoreIntegration/WixlibQueryFixture.cs
+1 -1
@@ -43,7 +43,7 @@ namespace WixToolsetTest.CoreIntegration
43 }
44 }
45
46 - [Fact(Skip = "Test demonstrates failure")]
46 + [Fact]
47 public void TypeLibLanguageAsStringReturnsZero()
48 {
49 var folder = TestData.Get(@"TestData\TypeLib");