You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by iv...@apache.org on 2019/06/11 16:48:20 UTC

svn commit: r1861049 - /apr/apr/trunk/misc/win32/misc.c

Author: ivan
Date: Tue Jun 11 16:48:19 2019
New Revision: 1861049

URL: http://svn.apache.org/viewvc?rev=1861049&view=rev
Log:
* misc/win32/misc.c
  (apr_get_oslevel): Use GetVersionExW() with OSVERSIONINFOEXW to version
   information with service pack info.

Modified:
    apr/apr/trunk/misc/win32/misc.c

Modified: apr/apr/trunk/misc/win32/misc.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/misc/win32/misc.c?rev=1861049&r1=1861048&r2=1861049&view=diff
==============================================================================
--- apr/apr/trunk/misc/win32/misc.c (original)
+++ apr/apr/trunk/misc/win32/misc.c Tue Jun 11 16:48:19 2019
@@ -27,27 +27,15 @@ apr_status_t apr_get_oslevel(apr_oslevel
 {
     if (apr_os_level == APR_WIN_UNK) 
     {
-        OSVERSIONINFO oslev;
-        oslev.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-        if (!GetVersionEx(&oslev)) {
+        OSVERSIONINFOEXW oslev;
+        oslev.dwOSVersionInfoSize = sizeof(oslev);
+        if (!GetVersionExW((OSVERSIONINFOW*) &oslev)) {
             return apr_get_os_error();
         }
 
         if (oslev.dwPlatformId == VER_PLATFORM_WIN32_NT) 
         {
-            unsigned int servpack = 0;
-            TCHAR *pservpack;
-            if ((pservpack = oslev.szCSDVersion)) {
-                while (*pservpack && !apr_isdigit(*pservpack)) {
-                    pservpack++;
-                }
-                if (*pservpack)
-#ifdef _UNICODE
-                    servpack = _wtoi(pservpack);
-#else
-                    servpack = atoi(pservpack);
-#endif
-            }
+            unsigned int servpack = oslev.wServicePackMajor;
 
             if (oslev.dwMajorVersion < 3) {
                 apr_os_level = APR_WIN_UNSUP;