mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2024-11-28 01:10:55 +01:00
General: Support EP as version 22621
The final Windows 11 22H2 that is shipped to users is OS build 22621. Unfortunately, I updated EP some time ago to 22622. This creates a discrepancy between the OS build most people have and the version of EP that they might have installed. Furthermore, I currently test EP against OS build 22621. To make things more clear, the next version of EP will have the major build number set to 22621. In order to have EP use version 22621 from now on and not prevent updating from EP 22622... to EP 22621..., I devised this workaround where the EP version is kept to 22622 as far as updates are concerned, but the internal build number of EP really is set to 22621. In the future, if we want to bump the EP version to 22622 again, a regular change in `version.h` will have the setup patcher insert a `!` as the first character in the hash part of the version string, which tells the updater to display that version as a real 22622 build and not artificially decrement it to 22621. The only slight inconvenience is that, when the next update arrives, people will be told they upgrade to EP 22622... still, but they will receive an EP 22621... build. But at least the updater will work and detect the new version. From there on, subsequent versions will be shown as 22621 in the notification if the build number for that version really is 22621.
This commit is contained in:
parent
4cfc2cea4b
commit
33d1518977
@ -229,7 +229,7 @@ BOOL IsUpdateAvailableHelper(
|
||||
*szRealHash = 0;
|
||||
szRealHash++;
|
||||
DWORD dwRemoteLeftMost = atoi(szLeftMost);
|
||||
if (pLeftMost) *pLeftMost = dwRemoteLeftMost;
|
||||
if (pLeftMost) *pLeftMost = dwRemoteLeftMost - ((dwRemoteLeftMost == 22622 && szRealHash[0] != '!') ? 1 : 0);
|
||||
DWORD dwRemoteSecondLeft = atoi(szSecondLeft);
|
||||
if (pSecondLeft) *pSecondLeft = dwRemoteSecondLeft;
|
||||
DWORD dwRemoteSecondRight = atoi(szSecondRight);
|
||||
|
@ -431,11 +431,12 @@ int ComputeFileHash2(HMODULE hModule, LPCWSTR filename, LPSTR hash, DWORD dwHash
|
||||
DWORD dwRightMost = 0;
|
||||
QueryVersionInfo(hModule, VS_VERSION_INFO, &dwLeftMost, &dwSecondLeft, &dwSecondRight, &dwRightMost);
|
||||
|
||||
sprintf_s(hash, 33, "%d.%d.%d.%d.", dwLeftMost, dwSecondLeft, dwSecondRight, dwRightMost);
|
||||
sprintf_s(hash, 33, "%d.%d.%d.%d.", dwLeftMost == 22621 ? 22622 : dwLeftMost, dwSecondLeft, dwSecondRight, dwRightMost);
|
||||
|
||||
char real_hash[33];
|
||||
ComputeFileHash(filename, real_hash, 33);
|
||||
strncpy_s(hash + strlen(hash), dwHash - strlen(hash), real_hash, 32 - strlen(hash));
|
||||
if (dwLeftMost == 22622) *(strchr(strchr(strchr(strchr(hash, '.') + 1, '.') + 1, '.') + 1, '.') + 1) = '!';
|
||||
hash[33] = 0;
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
|
Loading…
Reference in New Issue
Block a user