@joebigelow / wix / commits / 8e08acb2

Add GetCanonicalRelativePath.

Sean Hall committed Dec 16, 2020 at 18:01 UTC 8e08acb229ade411b7418df63b14198220aaaaa7
2 files changed +22
src/WixToolset.Extensibility/Services/IBackendHelper.cs
+11
@@ -35,6 +35,17 @@ namespace WixToolset.Extensibility.Services
35 /// <returns>Resolved directory.</returns>
36 IResolvedDirectory CreateResolvedDirectory(string directoryParent, string name);
37
38 + /// <summary>
39 + /// Validates path is relative and canonicalizes it.
40 + /// For example, "a\..\c\.\d.exe" => "c\d.exe".
41 + /// </summary>
42 + /// <param name="sourceLineNumbers"></param>
43 + /// <param name="elementName"></param>
44 + /// <param name="attributeName"></param>
45 + /// <param name="relativePath"></param>
46 + /// <returns>The original value if not relative, otherwise the canonicalized relative path.</returns>
47 + string GetCanonicalRelativePath(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string relativePath);
48 +
49 /// <summary>
50 /// Creates a tracked file.
51 /// </summary>
src/WixToolset.Extensibility/Services/IParseHelper.cs
+11
@@ -340,6 +340,17 @@ namespace WixToolset.Extensibility.Services
340 /// <returns>The attribute's YesNoType value.</returns>
341 YesNoDefaultType GetAttributeYesNoDefaultValue(SourceLineNumber sourceLineNumbers, XAttribute attribute);
342
343 + /// <summary>
344 + /// Validates path is relative and canonicalizes it.
345 + /// For example, "a\..\c\.\d.exe" => "c\d.exe".
346 + /// </summary>
347 + /// <param name="sourceLineNumbers"></param>
348 + /// <param name="elementName"></param>
349 + /// <param name="attributeName"></param>
350 + /// <param name="relativePath"></param>
351 + /// <returns>The original value if not relative, otherwise the canonicalized relative path.</returns>
352 + string GetCanonicalRelativePath(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string relativePath);
353 +
354 /// <summary>
355 /// Gets a source line number for an element.
356 /// </summary>