aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-05-16 16:03:25 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-05-17 22:54:13 -0500
commit0ea53e27361cbfe664df98d717e55005f329aff1 (patch)
treed75e02fadee9669593ca3ccf28401b67064244af /src/api
parentd5985a1688bc878e42ffd3ce3939fa52303cab16 (diff)
downloadwix-0ea53e27361cbfe664df98d717e55005f329aff1.tar.gz
wix-0ea53e27361cbfe664df98d717e55005f329aff1.tar.bz2
wix-0ea53e27361cbfe664df98d717e55005f329aff1.zip
Store the prefix character in VERUTIL_VERSION.
Fix edge case where version string is all v's.
Diffstat (limited to 'src/api')
-rw-r--r--src/api/burn/WixToolset.Mba.Core/VerUtil.cs1
-rw-r--r--src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs6
-rw-r--r--src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs2
3 files changed, 9 insertions, 0 deletions
diff --git a/src/api/burn/WixToolset.Mba.Core/VerUtil.cs b/src/api/burn/WixToolset.Mba.Core/VerUtil.cs
index a342f85c..611f9710 100644
--- a/src/api/burn/WixToolset.Mba.Core/VerUtil.cs
+++ b/src/api/burn/WixToolset.Mba.Core/VerUtil.cs
@@ -59,6 +59,7 @@ namespace WixToolset.Mba.Core
59 internal struct VersionStruct 59 internal struct VersionStruct
60 { 60 {
61 public IntPtr sczVersion; 61 public IntPtr sczVersion;
62 public char chPrefix;
62 public uint dwMajor; 63 public uint dwMajor;
63 public uint dwMinor; 64 public uint dwMinor;
64 public uint dwPatch; 65 public uint dwPatch;
diff --git a/src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs b/src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs
index 7408c26f..731dedaf 100644
--- a/src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs
+++ b/src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs
@@ -17,6 +17,7 @@ namespace WixToolset.Mba.Core
17 var pVersion = handle.DangerousGetHandle(); 17 var pVersion = handle.DangerousGetHandle();
18 var version = (VerUtil.VersionStruct)Marshal.PtrToStructure(pVersion, typeof(VerUtil.VersionStruct)); 18 var version = (VerUtil.VersionStruct)Marshal.PtrToStructure(pVersion, typeof(VerUtil.VersionStruct));
19 this.Version = Marshal.PtrToStringUni(version.sczVersion); 19 this.Version = Marshal.PtrToStringUni(version.sczVersion);
20 this.Prefix = version.chPrefix;
20 this.Major = version.dwMajor; 21 this.Major = version.dwMajor;
21 this.Minor = version.dwMinor; 22 this.Minor = version.dwMinor;
22 this.Patch = version.dwPatch; 23 this.Patch = version.dwPatch;
@@ -39,6 +40,11 @@ namespace WixToolset.Mba.Core
39 public string Version { get; private set; } 40 public string Version { get; private set; }
40 41
41 /// <summary> 42 /// <summary>
43 /// Prefix character that was stripped from <c>Version</c>, or the null character if there was no prefix.
44 /// </summary>
45 public char Prefix { get; private set; }
46
47 /// <summary>
42 /// For version A.B.C.D, Major is A. It is 0 if not specified. 48 /// For version A.B.C.D, Major is A. It is 0 if not specified.
43 /// </summary> 49 /// </summary>
44 public uint Major { get; private set; } 50 public uint Major { get; private set; }
diff --git a/src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs b/src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs
index 44142e3d..ceb1b12a 100644
--- a/src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs
+++ b/src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs
@@ -49,6 +49,7 @@ namespace WixToolsetTest.Mba.Core
49 49
50 using var parsedVersion = VerUtil.VersionFromQword(qwVersion); 50 using var parsedVersion = VerUtil.VersionFromQword(qwVersion);
51 Assert.Equal("100.200.300.400", parsedVersion.Version); 51 Assert.Equal("100.200.300.400", parsedVersion.Version);
52 Assert.Equal('\0', parsedVersion.Prefix);
52 Assert.Equal(100u, parsedVersion.Major); 53 Assert.Equal(100u, parsedVersion.Major);
53 Assert.Equal(200u, parsedVersion.Minor); 54 Assert.Equal(200u, parsedVersion.Minor);
54 Assert.Equal(300u, parsedVersion.Patch); 55 Assert.Equal(300u, parsedVersion.Patch);
@@ -65,6 +66,7 @@ namespace WixToolsetTest.Mba.Core
65 66
66 using var parsedVersion = VerUtil.ParseVersion(version, strict: false); 67 using var parsedVersion = VerUtil.ParseVersion(version, strict: false);
67 Assert.Equal(version, parsedVersion.Version); 68 Assert.Equal(version, parsedVersion.Version);
69 Assert.Equal('\0', parsedVersion.Prefix);
68 Assert.Equal(1u, parsedVersion.Major); 70 Assert.Equal(1u, parsedVersion.Major);
69 Assert.Equal(2u, parsedVersion.Minor); 71 Assert.Equal(2u, parsedVersion.Minor);
70 Assert.Equal(3u, parsedVersion.Patch); 72 Assert.Equal(3u, parsedVersion.Patch);