diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-05-16 16:03:25 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-05-17 22:54:13 -0500 |
commit | 0ea53e27361cbfe664df98d717e55005f329aff1 (patch) | |
tree | d75e02fadee9669593ca3ccf28401b67064244af /src/api | |
parent | d5985a1688bc878e42ffd3ce3939fa52303cab16 (diff) | |
download | wix-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.cs | 1 | ||||
-rw-r--r-- | src/api/burn/WixToolset.Mba.Core/VerUtilVersion.cs | 6 | ||||
-rw-r--r-- | src/api/burn/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs | 2 |
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); |