@joebigelow / wix / commits / 453107d7

Use new logic for -sw in DecompileCommand.

Sean Hall committed Jan 19, 2021 at 15:38 UTC 453107d72fa96e7b942ef4698ab10e4bcac91d2e
3 files changed +30 -12
src/WixToolset.Core/CommandLine/DecompileCommand.cs
+27 -10
@@ -128,19 +128,19 @@ namespace WixToolset.Core.CommandLine
128 case "verbose":
129 this.Messaging.ShowVerboseMessages = true;
130 return true;
131 + }
132
132 - case "sw":
133 - case "suppresswarning":
134 - var warning = parser.GetNextArgumentOrError(arg);
135 - if (!String.IsNullOrEmpty(warning))
136 - {
137 - var warningNumber = Convert.ToInt32(warning);
138 - this.Messaging.SuppressWarningMessage(warningNumber);
139 - }
133 + if (parameter.StartsWith("sw"))
134 + {
135 + this.ParseSuppressWarning(parameter, "sw".Length, parser);
136 return true;
137 }
142 -
143 - if (parameter.StartsWith("wx"))
138 + else if (parameter.StartsWith("suppresswarning"))
139 + {
140 + this.ParseSuppressWarning(parameter, "suppresswarning".Length, parser);
141 + return true;
142 + }
143 + else if (parameter.StartsWith("wx"))
144 {
145 this.ParseWarningAsError(parameter, "wx".Length, parser);
146 return true;
@@ -218,6 +218,23 @@ namespace WixToolset.Core.CommandLine
218 return String.IsNullOrEmpty(this.OutputFile) ? Path.ChangeExtension(this.DecompileFilePath, ".wxs") : this.OutputFile;
219 }
220
221 + private void ParseSuppressWarning(string parameter, int offset, ICommandLineParser parser)
222 + {
223 + var paramArg = parameter.Substring(offset);
224 + if (paramArg.Length == 0)
225 + {
226 + this.Messaging.SuppressAllWarnings = true;
227 + }
228 + else if (Int32.TryParse(paramArg, out var suppressWarning) && suppressWarning > 0)
229 + {
230 + this.Messaging.SuppressWarningMessage(suppressWarning);
231 + }
232 + else
233 + {
234 + parser.ReportErrorArgument(parameter, ErrorMessages.IllegalSuppressWarningId(paramArg));
235 + }
236 + }
237 +
238 private void ParseWarningAsError(string parameter, int offset, ICommandLineParser parser)
239 {
240 var paramArg = parameter.Substring(offset);
src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs
+2 -1
@@ -216,9 +216,10 @@ namespace WixToolsetTest.CoreIntegration
216 result.AssertSuccess();
217 Assert.True(File.Exists(msiPath));
218
219 - result = WixRunner.Execute(false, new[]
219 + result = WixRunner.Execute(new[]
220 {
221 "decompile", msiPath,
222 + "-sw1060",
223 "-intermediateFolder", intermediateFolder,
224 "-o", decompiledWxsPath
225 });
src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs
+1 -1
@@ -20,7 +20,7 @@ namespace WixToolsetTest.CoreIntegration
20 var intermediateFolder = fs.GetFolder();
21 var outputPath = Path.Combine(intermediateFolder, @"Actual.wxs");
22
23 - var result = WixRunner.Execute(false, new[]
23 + var result = WixRunner.Execute(new[]
24 {
25 "decompile",
26 Path.Combine(folder, msiName),