Add git_has_win32_version helper

This commit is contained in:
Philip Kelley 2013-03-31 22:22:33 -04:00
parent 8cc2f2d86f
commit 5c5eeba6fd
4 changed files with 25 additions and 8 deletions

View File

@ -29,9 +29,10 @@
# include "win32/msvc-compat.h"
# include "win32/mingw-compat.h"
# include "win32/error.h"
# include "win32/version.h"
# ifdef GIT_THREADS
# include "win32/pthread.h"
#endif
# endif
#else

View File

@ -509,11 +509,7 @@ replay:
/* Check for Windows 7. This workaround is only necessary on
* Windows Vista and earlier. Windows 7 is version 6.1. */
DWORD dwVersion = GetVersion();
if (LOBYTE(LOWORD(dwVersion)) < 6 ||
(LOBYTE(LOWORD(dwVersion)) == 6 &&
HIBYTE(LOWORD(dwVersion)) < 1)) {
if (!git_has_win32_version(6, 1)) {
wchar_t *location;
DWORD location_length;
int redirect_cmp;
@ -991,7 +987,7 @@ static int winhttp_receivepack(
{
/* WinHTTP only supports Transfer-Encoding: chunked
* on Windows Vista (NT 6.0) and higher. */
s->chunked = LOBYTE(LOWORD(GetVersion())) >= 6;
s->chunked = git_has_win32_version(6, 0);
if (s->chunked)
s->parent.write = winhttp_stream_write_chunked;

View File

@ -45,7 +45,7 @@ char *git_win32_get_error_message(DWORD error_code)
(LPWSTR)&lpMsgBuf, 0, NULL)) {
/* Invalid code point check supported on Vista+ only */
if (LOBYTE(LOWORD(GetVersion())) >= 6)
if (git_has_win32_version(6, 0))
dwFlags = WC_ERR_INVALID_CHARS;
else
dwFlags = 0;

20
src/win32/version.h Normal file
View File

@ -0,0 +1,20 @@
/*
* Copyright (C) the libgit2 contributors. All rights reserved.
*
* This file is part of libgit2, distributed under the GNU GPL v2 with
* a Linking Exception. For full terms see the included COPYING file.
*/
#ifndef INCLUDE_win32_version_h__
#define INCLUDE_win32_version_h__
#include <windows.h>
GIT_INLINE(int) git_has_win32_version(int major, int minor)
{
WORD wVersion = LOWORD(GetVersion());
return LOBYTE(wVersion) > major ||
(LOBYTE(wVersion) == major && HIBYTE(wVersion) >= minor);
}
#endif