diff options
author | Rob Mensching <rob@firegiant.com> | 2022-09-27 15:03:47 -0700 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2022-09-27 16:25:20 -0700 |
commit | dfcd6728a9d56ac37a5daa8cbedabbf10c333773 (patch) | |
tree | 95f25aa8009ce3e8eef3e86d33c35c450148299f /src/api | |
parent | 188952d84f5789128ddd32e7adf09e60899af43a (diff) | |
download | wix-dfcd6728a9d56ac37a5daa8cbedabbf10c333773.tar.gz wix-dfcd6728a9d56ac37a5daa8cbedabbf10c333773.tar.bz2 wix-dfcd6728a9d56ac37a5daa8cbedabbf10c333773.zip |
Introduce PatchFilterMap to remove Row.SectionId
A Row's SectionId is not set correctly in most scenarios. It was
only really needed for the old section-based patch filtering. As
section-base patch filtering was replaced in favor of the more
logical filter generation, Row.SectionId was archaic and mostly
outdated/wrong data.
Diffstat (limited to 'src/api')
4 files changed, 15 insertions, 33 deletions
diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs index f44082d3..cbb47492 100644 --- a/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs | |||
@@ -53,17 +53,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
53 | public RowOperation Operation { get; set; } | 53 | public RowOperation Operation { get; set; } |
54 | 54 | ||
55 | /// <summary> | 55 | /// <summary> |
56 | /// Gets or sets wether the row is a duplicate of another row thus redundant. | ||
57 | /// </summary> | ||
58 | public bool Redundant { get; set; } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Gets or sets the SectionId property on the row. | ||
62 | /// </summary> | ||
63 | /// <value>The SectionId property on the row.</value> | ||
64 | public string SectionId { get; set; } | ||
65 | |||
66 | /// <summary> | ||
67 | /// Gets the source file and line number for the row. | 56 | /// Gets the source file and line number for the row. |
68 | /// </summary> | 57 | /// </summary> |
69 | /// <value>Source file and line number.</value> | 58 | /// <value>Source file and line number.</value> |
@@ -276,8 +265,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
276 | 265 | ||
277 | bool empty = reader.IsEmptyElement; | 266 | bool empty = reader.IsEmptyElement; |
278 | RowOperation operation = RowOperation.None; | 267 | RowOperation operation = RowOperation.None; |
279 | bool redundant = false; | ||
280 | string sectionId = null; | ||
281 | SourceLineNumber sourceLineNumbers = null; | 268 | SourceLineNumber sourceLineNumbers = null; |
282 | 269 | ||
283 | while (reader.MoveToNextAttribute()) | 270 | while (reader.MoveToNextAttribute()) |
@@ -287,12 +274,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
287 | case "op": | 274 | case "op": |
288 | operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); | 275 | operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); |
289 | break; | 276 | break; |
290 | case "redundant": | ||
291 | redundant = reader.Value.Equals("yes"); | ||
292 | break; | ||
293 | case "sectionId": | ||
294 | sectionId = reader.Value; | ||
295 | break; | ||
296 | case "sourceLineNumber": | 277 | case "sourceLineNumber": |
297 | sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); | 278 | sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); |
298 | break; | 279 | break; |
@@ -301,8 +282,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
301 | 282 | ||
302 | var row = table.CreateRow(sourceLineNumbers); | 283 | var row = table.CreateRow(sourceLineNumbers); |
303 | row.Operation = operation; | 284 | row.Operation = operation; |
304 | row.Redundant = redundant; | ||
305 | row.SectionId = sectionId; | ||
306 | 285 | ||
307 | // loop through all the fields in a row | 286 | // loop through all the fields in a row |
308 | if (!empty) | 287 | if (!empty) |
@@ -364,16 +343,6 @@ namespace WixToolset.Data.WindowsInstaller | |||
364 | writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); | 343 | writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); |
365 | } | 344 | } |
366 | 345 | ||
367 | if (this.Redundant) | ||
368 | { | ||
369 | writer.WriteAttributeString("redundant", "yes"); | ||
370 | } | ||
371 | |||
372 | if (null != this.SectionId) | ||
373 | { | ||
374 | writer.WriteAttributeString("sectionId", this.SectionId); | ||
375 | } | ||
376 | |||
377 | if (null != this.SourceLineNumbers) | 346 | if (null != this.SourceLineNumbers) |
378 | { | 347 | { |
379 | writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); | 348 | writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); |
diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd index 5d95a59c..94909032 100644 --- a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd | |||
@@ -96,8 +96,6 @@ | |||
96 | </xs:restriction> | 96 | </xs:restriction> |
97 | </xs:simpleType> | 97 | </xs:simpleType> |
98 | </xs:attribute> | 98 | </xs:attribute> |
99 | <xs:attribute name="redundant" type="YesNoType" /> | ||
100 | <xs:attribute name="sectionId" type="xs:string" /> | ||
101 | <xs:attribute name="sourceLineNumber" type="xs:string" /> | 99 | <xs:attribute name="sourceLineNumber" type="xs:string" /> |
102 | </xs:complexType> | 100 | </xs:complexType> |
103 | </xs:element> | 101 | </xs:element> |
diff --git a/src/api/wix/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs b/src/api/wix/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs index a54f05fc..0b31cdd7 100644 --- a/src/api/wix/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs +++ b/src/api/wix/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs | |||
@@ -63,6 +63,13 @@ namespace WixToolset.Extensibility | |||
63 | } | 63 | } |
64 | 64 | ||
65 | /// <summary> | 65 | /// <summary> |
66 | /// See <see cref="IWindowsInstallerBackendBinderExtension.FinalizePatchFilterIds(WindowsInstallerData, IDictionary{Row, string}, string)"/> | ||
67 | /// </summary> | ||
68 | public virtual void FinalizePatchFilterIds(WindowsInstallerData data, IDictionary<Row, string> rowToFilterId, string filterIdPrefix) | ||
69 | { | ||
70 | } | ||
71 | |||
72 | /// <summary> | ||
66 | /// See <see cref="IWindowsInstallerBackendBinderExtension.PreBackendBind(IBindContext)"/> | 73 | /// See <see cref="IWindowsInstallerBackendBinderExtension.PreBackendBind(IBindContext)"/> |
67 | /// </summary> | 74 | /// </summary> |
68 | public virtual IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files) | 75 | public virtual IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files) |
diff --git a/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs b/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs index 067745c2..fdf753c7 100644 --- a/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs +++ b/src/api/wix/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs | |||
@@ -30,6 +30,14 @@ namespace WixToolset.Extensibility | |||
30 | void SymbolsFinalized(IntermediateSection section); | 30 | void SymbolsFinalized(IntermediateSection section); |
31 | 31 | ||
32 | /// <summary> | 32 | /// <summary> |
33 | /// Extension can process the filter ids applied to rows when processing patches. | ||
34 | /// </summary> | ||
35 | /// <param name="data">The <c>WindowsInstallerData</c> with rows to apply filters to.</param> | ||
36 | /// <param name="rowToFilterId">The mapping that applies a filter id to a row.</param> | ||
37 | /// <param name="filterIdPrefix">The prefix to use applying additional filters to rows.</param> | ||
38 | void FinalizePatchFilterIds(WindowsInstallerData data, IDictionary<Row, string> rowToFilterId, string filterIdPrefix); | ||
39 | |||
40 | /// <summary> | ||
33 | /// Finds an existing cabinet that contains the provided files. | 41 | /// Finds an existing cabinet that contains the provided files. |
34 | /// </summary> | 42 | /// </summary> |
35 | /// <param name="cabinetPath">Path to the cabinet.</param> | 43 | /// <param name="cabinetPath">Path to the cabinet.</param> |