authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-09-01 10:39:19-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2018-09-01 10:39:19-04:00
log19004cd5db1f0c629ff32e8b62b2e1dd57aadc5a
tree3b3f337329e2d9d80c3b90d8e52e047cea0272b6
parente036f65ac0df91b03dc6bcda8b043484321c6857
parent9e6f53dd5857d04294f8bed3fe2b3dde75196756
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #1444 from kristate/winsdk-vercheck-issue1438

correct version comparison for detecting msvc (fixes #1438)

1 files changed, 7 insertions(+), 2 deletions(-)

src/windows_sdk.cpp+7-2
...@@ -204,7 +204,11 @@ static ZigFindWindowsSdkError find_10_version(ZigWindowsSDKPrivate *priv) {...@@ -204,7 +204,11 @@ static ZigFindWindowsSdkError find_10_version(ZigWindowsSDKPrivate *priv) {
204 // https://developer.microsoft.com/en-us/windows/downloads/sdk-archive204 // https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
205 c2 = 26624;205 c2 = 26624;
206 }206 }
207 if ((c0 > v0) || (c1 > v1) || (c2 > v2) || (c3 > v3)) {207
208 if ( (c0 > v0)
209 || (c0 == v0 && c1 > v1)
210 || (c0 == v0 && c1 == v1 && c2 > v2)
211 || (c0 == v0 && c1 == v1 && c2 == v2 && c3 > v3) ) {
208 v0 = c0, v1 = c1, v2 = c2, v3 = c3;212 v0 = c0, v1 = c1, v2 = c2, v3 = c3;
209 free((void*)priv->base.version10_ptr);213 free((void*)priv->base.version10_ptr);
210 priv->base.version10_ptr = strdup(ffd.cFileName);214 priv->base.version10_ptr = strdup(ffd.cFileName);
...@@ -244,7 +248,8 @@ static ZigFindWindowsSdkError find_81_version(ZigWindowsSDKPrivate *priv) {...@@ -244,7 +248,8 @@ static ZigFindWindowsSdkError find_81_version(ZigWindowsSDKPrivate *priv) {
244 if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {248 if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
245 int c0 = 0, c1 = 0;249 int c0 = 0, c1 = 0;
246 sscanf(ffd.cFileName, "winv%d.%d", &c0, &c1);250 sscanf(ffd.cFileName, "winv%d.%d", &c0, &c1);
247 if ((c0 > v0) || (c1 > v1)) {251
252 if ( (c0 > v0) || (c0 == v0 && c1 > v1) ) {
248 v0 = c0, v1 = c1;253 v0 = c0, v1 = c1;
249 free((void*)priv->base.version81_ptr);254 free((void*)priv->base.version81_ptr);
250 priv->base.version81_ptr = strdup(ffd.cFileName);255 priv->base.version81_ptr = strdup(ffd.cFileName);