Return-Path: Delivered-To: apmail-apr-commits-archive@www.apache.org Received: (qmail 84571 invoked from network); 22 Jul 2007 16:29:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Jul 2007 16:29:54 -0000 Received: (qmail 95804 invoked by uid 500); 22 Jul 2007 16:29:55 -0000 Delivered-To: apmail-apr-commits-archive@apr.apache.org Received: (qmail 95753 invoked by uid 500); 22 Jul 2007 16:29:55 -0000 Mailing-List: contact commits-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: Reply-To: dev@apr.apache.org List-Id: Delivered-To: mailing list commits@apr.apache.org Received: (qmail 95742 invoked by uid 99); 22 Jul 2007 16:29:55 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 22 Jul 2007 09:29:55 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 22 Jul 2007 09:29:53 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 3C3E71A981A; Sun, 22 Jul 2007 09:29:33 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r558506 - /apr/apr/trunk/misc/win32/misc.c Date: Sun, 22 Jul 2007 16:29:32 -0000 To: commits@apr.apache.org From: davi@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070722162933.3C3E71A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: davi Date: Sun Jul 22 09:29:26 2007 New Revision: 558506 URL: http://svn.apache.org/viewvc?view=rev&rev=558506 Log: misc/win32/misc.c depends on _UNICODE not being set and all Windows API calls being char* based. On WinCE, _UNICODE is forced to be set. This patch modifies the Windows version detection code to use TCHAR and adds the explicit "A" qualifier to LoadLibrary and GetProcAddress so the char* based versions are used regardless. Submitted by: Curt Arnold PR: 39889 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?view=diff&rev=558506&r1=558505&r2=558506 ============================================================================== --- apr/apr/trunk/misc/win32/misc.c (original) +++ apr/apr/trunk/misc/win32/misc.c Sun Jul 22 09:29:26 2007 @@ -19,6 +19,7 @@ #include "apr_arch_file_io.h" #include "assert.h" #include "apr_lib.h" +#include "tchar.h" APR_DECLARE_DATA apr_oslevel_e apr_os_level = APR_WIN_UNK; @@ -33,13 +34,17 @@ if (oslev.dwPlatformId == VER_PLATFORM_WIN32_NT) { static unsigned int servpack = 0; - char *pservpack; + TCHAR *pservpack; if (pservpack = oslev.szCSDVersion) { while (*pservpack && !apr_isdigit(*pservpack)) { pservpack++; } if (*pservpack) +#ifdef _UNICODE + servpack = _wtoi(pservpack); +#else servpack = atoi(pservpack); +#endif } if (oslev.dwMajorVersion < 3) { @@ -100,22 +105,22 @@ } #ifndef WINNT else if (oslev.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { - char *prevision; + TCHAR *prevision; if (prevision = oslev.szCSDVersion) { while (*prevision && !apr_isupper(*prevision)) { prevision++; } } - else prevision = ""; + else prevision = _T(""); if (oslev.dwMinorVersion < 10) { - if (*prevision < 'C') + if (*prevision < _T('C')) apr_os_level = APR_WIN_95; else apr_os_level = APR_WIN_95_OSR2; } else if (oslev.dwMinorVersion < 90) { - if (*prevision < 'A') + if (*prevision < _T('A')) apr_os_level = APR_WIN_98; else apr_os_level = APR_WIN_98_SE; @@ -163,14 +168,21 @@ FARPROC apr_load_dll_func(apr_dlltoken_e fnLib, char* fnName, int ordinal) { if (!lateDllHandle[fnLib]) { - lateDllHandle[fnLib] = LoadLibrary(lateDllName[fnLib]); + lateDllHandle[fnLib] = LoadLibraryA(lateDllName[fnLib]); if (!lateDllHandle[fnLib]) return NULL; } +#if defined(_WIN32_WCE) + if (ordinal) + return GetProcAddressA(lateDllHandle[fnLib], (char *) ordinal); + else + return GetProcAddressA(lateDllHandle[fnLib], fnName); +#else if (ordinal) return GetProcAddress(lateDllHandle[fnLib], (char *) ordinal); else return GetProcAddress(lateDllHandle[fnLib], fnName); +#endif } /* Declared in include/arch/win32/apr_dbg_win32_handles.h @@ -198,10 +210,10 @@ (TlsSetValue)(tlsid, sbuf); sbuf[1023] = '\0'; if (!fh) { - (GetModuleFileName)(NULL, sbuf, 250); + (GetModuleFileNameA)(NULL, sbuf, 250); sprintf(strchr(sbuf, '\0'), ".%d", (GetCurrentProcessId)()); - fh = (CreateFile)(sbuf, GENERIC_WRITE, 0, NULL, + fh = (CreateFileA)(sbuf, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); (InitializeCriticalSection)(&cs); }