diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2020-12-27 12:46:59 -0500 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2020-12-27 12:46:59 -0500 |
commit | a78f0158a28734f965218b834ea8c0b166b7353f (patch) | |
tree | dca70268e2a41d49658e7eed783c6fc243d119cd /PC/launcher.c | |
parent | ec8e6895a3ce9cd69b6ceb75a15fcc74d4a522dc (diff) | |
parent | bf64d9064ab641b1ef9a0c4bda097ebf1204faf4 (diff) | |
download | cpython-git-revert-23107-revert-13893-fix-issue-37193.tar.gz |
Merge branch 'master' into revert-23107-revert-13893-fix-issue-37193revert-23107-revert-13893-fix-issue-37193
Diffstat (limited to 'PC/launcher.c')
-rw-r--r-- | PC/launcher.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/PC/launcher.c b/PC/launcher.c index 106fc66075..cc2d35b2c4 100644 --- a/PC/launcher.c +++ b/PC/launcher.c @@ -425,11 +425,21 @@ compare_pythons(const void * p1, const void * p2) INSTALLED_PYTHON * ip1 = (INSTALLED_PYTHON *) p1; INSTALLED_PYTHON * ip2 = (INSTALLED_PYTHON *) p2; /* note reverse sorting on version */ - int result = wcscmp(ip2->version, ip1->version); - - if (result == 0) - result = ip2->bits - ip1->bits; /* 64 before 32 */ - return result; + int result = CompareStringW(LOCALE_INVARIANT, SORT_DIGITSASNUMBERS, + ip2->version, -1, ip1->version, -1); + switch (result) { + case 0: + error(0, L"CompareStringW failed"); + return 0; + case CSTR_LESS_THAN: + return -1; + case CSTR_EQUAL: + return ip2->bits - ip1->bits; /* 64 before 32 */ + case CSTR_GREATER_THAN: + return 1; + default: + return 0; // This should never be reached. + } } static void @@ -1248,6 +1258,7 @@ static PYC_MAGIC magic_values[] = { { 3390, 3399, L"3.7" }, { 3400, 3419, L"3.8" }, { 3420, 3429, L"3.9" }, + { 3430, 3439, L"3.10" }, { 0 } }; |