You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/12/14 06:16:27 UTC
svn commit: r890181 - in /commons/sandbox/runtime/trunk/src/main/native: ./
include/arch/windows/ os/win32/
Author: mturk
Date: Mon Dec 14 05:16:26 2009
New Revision: 890181
URL: http://svn.apache.org/viewvc?rev=890181&view=rev
Log:
Make code consistent
Added:
commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_gui.h (with props)
Modified:
commons/sandbox/runtime/trunk/src/main/native/configure
commons/sandbox/runtime/trunk/src/main/native/os/win32/dhtml.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/dso.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/env.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/fasync.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/file.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysio.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysrw.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/gui.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/main.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/path.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/posix.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/signals.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/syslog.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/temps.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/tfs.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/wutil.c
Modified: commons/sandbox/runtime/trunk/src/main/native/configure
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/configure?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/configure (original)
+++ commons/sandbox/runtime/trunk/src/main/native/configure Mon Dec 14 05:16:26 2009
@@ -98,6 +98,7 @@
has_sysv_mutex=no
has_posix_mutex=no
has_unicode=no
+has_cygwin=no
has_embedded_sqlite=no
has_sqlite=no
@@ -329,7 +330,11 @@
do
if [ -x "$p/$1.exe" ]; then
if [ ".`$p/$1.exe -version 2>/dev/null | head -1 | grep Microsoft`" != . ]; then
- cygpath -w "$p/$1.exe" | sed 's/\\/\\\\/g'
+ if [ ".$has_cygwin" = .yes ]; then
+ cygpath -w "$p/$1.exe" | sed 's;\\;\\\\;g'
+ else
+ echo "`echo "$p/$1.exe" | sed 's;^/\([c-zC-Z]\)/;\1\:/;'`" | sed 's;/;\\\\;g'
+ fi
return
fi
fi
@@ -395,6 +400,7 @@
platform=WINDOWS
host=windows
test ".$cc_set" = .no && cc=cl
+ has_cygwin=yes
;;
mingw* )
platform=WINDOWS
@@ -547,7 +553,7 @@
varadds cxxopts -TP
varadds ldflags kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib
varadds ldflags shell32.lib rpcrt4.lib user32.lib gdi32.lib userenv.lib wtsapi32.lib
- varadds ldflags psapi.lib shlwapi.lib wldap32.lib netapi32.lib iphlpapi.lib
+ varadds ldflags psapi.lib shlwapi.lib wldap32.lib netapi32.lib iphlpapi.lib urlmon.lib
varadds shflags /NOLOGO /OPT:REF
arflags=/NOLOGO
so=.dll
@@ -743,7 +749,7 @@
EOF
rc=0
if [ ".$host" = .windows ]; then
- co="`$cc $ccflags $cppopts $test.c /link /out:$test$exe 2>&1`"
+ co="`$cc $ccflags $cppopts $test.c -link -out:$test$exe 2>&1`"
else
co="`$cc $ccflags $cppopts $test.c -o $test$exe 2>&1`"
fi
@@ -789,7 +795,7 @@
fi
rc=0
if [ ".$host" = .windows ]; then
- co="`$cc $ccflags $cppopts $test.c /link /out:$test$exe $1 2>&1`"
+ co="`$cc $ccflags $cppopts $test.c -link -out:$test$exe $1 2>&1`"
else
co="`$cc $ccflags $cppopts $test.c -o $test$exe -l$1 2>&1`"
fi
@@ -825,7 +831,7 @@
EOF
rc=0
if [ ".$host" = .windows ]; then
- co="`$cc $ccflags $cppopts $ldflags $test.c /link /out:$test$exe 2>&1`"
+ co="`$cc $ccflags $cppopts $ldflags $test.c -link -out:$test$exe 2>&1`"
else
co="`$cc $ccflags $cppopts $ldflags $test.c -o $test$exe 2>&1`"
fi
@@ -880,7 +886,7 @@
EOF
rc=0
if [ ".$host" = .windows ]; then
- co="`$cc $ccflags $cppopts $test.c /link /out:$test$exe 2>&1`"
+ co="`$cc $ccflags $cppopts $test.c -link -out:$test$exe 2>&1`"
else
co="`$cc $ccflags $cppopts $test.c -o $test$exe 2>&1`"
fi
@@ -914,7 +920,7 @@
EOF
rc=0
if [ ".$host" = .windows ]; then
- co="`$cc $ccflags $cppopts $test.c /link /out:$test$exe 2>&1`"
+ co="`$cc $ccflags $cppopts $test.c -link -out:$test$exe 2>&1`"
else
co="`$cc $ccflags $cppopts $test.c -o $test$exe 2>&1`"
fi
@@ -945,7 +951,7 @@
EOF
rc=0
if [ ".$host" = .windows ]; then
- $cc $ccflags $cppopts $ldflags $test.c /link /out:$test$exe >/dev/null 2>&1
+ $cc $ccflags $cppopts $ldflags $test.c -link -out:$test$exe >/dev/null 2>&1
else
$cc $ccflags $cppopts $ldflags $test.c -o $test$exe >/dev/null 2>&1
fi
Added: commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_gui.h
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_gui.h?rev=890181&view=auto
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_gui.h (added)
+++ commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_gui.h Mon Dec 14 05:16:26 2009
@@ -0,0 +1,75 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _ACR_GUI_H
+#define _ACR_GUI_H
+
+#define MGUI_WINDOWS 32
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+ACR_DECLARE(BOOL) GuiInitialize(void);
+ACR_DECLARE(BOOL) GuiTerminate(void);
+ACR_DECLARE(int) GuiRegisterWindow(HWND hWnd);
+ACR_DECLARE(void) GuiUnregisterWindow(int nIndex);
+
+/**
+ * Create a dialog
+ */
+ACR_DECLARE(LPVOID) DHTMLDialogInit(HINSTANCE hResInstance,
+ LPCSTR szHtml);
+
+/**
+ * Run the HTML dialog
+ * @param hParent HANDLE to the parent window.
+ * @param hHtmlDlg Pointer to the dialog created by DHTMLDialogInit
+ * @param szTitle Dialog title.
+ * @param dwWidth Dialog width in pixels
+ * @param dwHeight Dialog height in pixels
+ * @param dwFlags Dialog flags
+ * @param dwTimeout Timeout in miliseconds.
+ * @param szArgumentst Arguments passed to the dialog. Use scripting
+ * to populate dialog objects.
+ */
+ACR_DECLARE(BOOL) DHTMLDialogRun(HWND hParent,
+ LPVOID hHtmlDlg,
+ LPCSTR szTitle,
+ DWORD dwWidth,
+ DWORD dwHeight,
+ DWORD dwFlags,
+ DWORD dwTimeout,
+ LPCSTR szArguments);
+
+/**
+ * Get the dialog retun value. Dialog return value is
+ * constructed by dialog script.
+ */
+ACR_DECLARE(LPSTR) DHTMLDialogResult(LPVOID hHtmlDlg);
+
+/**
+ * Close the dialog and free system allocated resources
+ */
+ACR_DECLARE(void) DHTMLDialogClose(LPVOID hHtmlDlg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ACR_GUI_H */
Propchange: commons/sandbox/runtime/trunk/src/main/native/include/arch/windows/acr_gui.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/dhtml.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/dhtml.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/dhtml.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/dhtml.c Mon Dec 14 05:16:26 2009
@@ -21,9 +21,242 @@
#include "acr_clazz.h"
#include "acr_error.h"
#include "acr_memory.h"
+#include "acr_port.h"
#include "acr_string.h"
#include "acr_tlsd.h"
#include "acr_vm.h"
+#include "acr_gui.h"
/* HTML Dialogs
*/
+#include <urlmon.h>
+#include <mshtmhst.h>
+
+typedef struct _MC_HTML_DIALOG {
+ IMoniker *lpImk;
+ CHAR szReturnVal[ACR_HBUFF_SIZ];
+} MC_HTML_DIALOG, *LPMC_HTML_DIALOG;
+
+typedef struct _DHTML_THREAD_PARAMS {
+ BOOL bDone;
+ HWND hParent;
+ LPMC_HTML_DIALOG hHtmlDlg;
+ WCHAR szOptions[ACR_SBUFF_SIZ];
+ WCHAR szArguments[ACR_PBUFF_SIZ];
+} DHTML_THREAD_PARAMS, *LPDHTML_THREAD_PARAMS;
+
+extern HICON gui_h16Icon;
+static SHOWHTMLDIALOGEXFN *pfnShowHTMLDialog = NULL;
+
+ACR_DECLARE(LPVOID)
+DHTMLDialogInit(
+ HINSTANCE hResInstance,
+ LPCSTR szHtml)
+{
+ LPMC_HTML_DIALOG hDlg;
+ OLECHAR bstr[MAX_PATH];
+
+ hDlg = (LPMC_HTML_DIALOG)x_calloc(sizeof(MC_HTML_DIALOG));
+
+ if (!hDlg)
+ return INVALID_HANDLE_VALUE;
+
+ if (!pfnShowHTMLDialog) {
+ HMODULE gui_hMSHTML;
+
+ gui_hMSHTML = LoadLibraryA("mshtml.dll");
+ if (IS_INVALID_HANDLE(gui_hMSHTML))
+ goto cleanup;
+
+ pfnShowHTMLDialog = (SHOWHTMLDIALOGEXFN*)GetProcAddress(
+ gui_hMSHTML,
+ "ShowHTMLDialogEx");
+ }
+ if (IS_INVALID_HANDLE(pfnShowHTMLDialog))
+ goto cleanup;
+
+ if (hResInstance) {
+ CHAR szTemp[MAX_PATH];
+ strcpy(szTemp, "res://");
+ GetModuleFileNameA(hResInstance, szTemp + strlen(szTemp),
+ ARRAYSIZE(szTemp) - strlen(szTemp));
+ if (*szHtml != '/')
+ strcat(szTemp, "/");
+ strlcat(szTemp, szHtml, MAX_PATH);
+
+ MbsToWcs(CP_UTF8, szTemp, bstr, ARRAYSIZE(bstr));
+ }
+ else
+ MbsToWcs(CP_UTF8, szHtml, bstr, ARRAYSIZE(bstr));
+ CreateURLMoniker(NULL, bstr, &hDlg->lpImk);
+
+ if (!hDlg->lpImk)
+ goto cleanup;
+ return hDlg;
+
+cleanup:
+
+ x_free(hDlg);
+ return INVALID_HANDLE_VALUE;
+}
+
+ACR_DECLARE(void)
+DHTMLDialogClose(LPVOID hHtmlDlg)
+{
+
+ LPMC_HTML_DIALOG hDlg = (LPMC_HTML_DIALOG)hHtmlDlg;
+ if (IS_INVALID_HANDLE(hHtmlDlg))
+ return;
+ hDlg->lpImk->lpVtbl->Release(hDlg->lpImk);
+ x_free(hDlg);
+}
+
+static DWORD WINAPI
+dhtmlRunThread(LPVOID lpParam)
+{
+ DWORD rv = ERROR_SUCCESS;
+ HRESULT hr;
+ VARIANT varArgs, varReturn;
+ DHTML_THREAD_PARAMS *pD = (DHTML_THREAD_PARAMS *)lpParam;
+ LPMC_HTML_DIALOG hDlg = pD->hHtmlDlg;
+
+ if (IS_INVALID_HANDLE(pD->hHtmlDlg)) {
+ rv = ERROR_INVALID_HANDLE;
+ goto cleanup;
+ }
+ VariantInit(&varReturn);
+ varArgs.vt = VT_BSTR;
+ varArgs.bstrVal = SysAllocString(pD->szArguments);
+ hr = (*pfnShowHTMLDialog)(pD->hParent,
+ hDlg->lpImk,
+ HTMLDLG_MODAL | HTMLDLG_VERIFY,
+ &varArgs,
+ pD->szOptions,
+ &varReturn);
+ VariantClear(&varArgs);
+ if (SUCCEEDED(hr)) {
+ switch(varReturn.vt) {
+ case VT_BSTR:
+ WcsToMbs(CP_UTF8, varReturn.bstrVal,
+ hDlg->szReturnVal, ACR_HBUFF_SIZ);
+ break;
+ }
+ VariantClear(&varReturn);
+ rv = ERROR_SUCCESS;
+ }
+ else
+ rv = GetLastError();
+cleanup:
+ pD->bDone = TRUE;
+ ExitThread(rv);
+ return rv;
+}
+
+ACR_DECLARE(BOOL)
+DHTMLDialogRun(
+ HWND hParent,
+ LPVOID hHtmlDlg,
+ LPCSTR szTitle,
+ DWORD dwWidth,
+ DWORD dwHeight,
+ DWORD dwFlags,
+ DWORD dwTimeout,
+ LPCSTR szArguments)
+{
+ DWORD dwThreadId;
+ HANDLE hThread;
+ HWND hWnd = NULL;
+ DWORD i;
+ BOOL rv = FALSE;
+ DHTML_THREAD_PARAMS pD;
+ int w = -1;
+ int ws, rc;
+
+ if (IS_INVALID_HANDLE(hHtmlDlg))
+ return FALSE;
+ pD.hParent = hParent;
+ pD.hHtmlDlg = hHtmlDlg;
+ swprintf(pD.szOptions, ACR_SBUFF_SIZ,
+ L"scroll: no; status: no; help: no; dialogHeight: %dpx; dialogWidth: %dpx",
+ dwHeight, dwWidth);
+ if (dwFlags == 1)
+ wcscat(pD.szOptions, L"; unadorned:yes");
+ if (szArguments)
+ MbsToWcs(CP_UTF8, szArguments, pD.szArguments, ACR_PBUFF_SIZ);
+
+ hThread = CreateThread(NULL,
+ 0,
+ dhtmlRunThread,
+ &pD,
+ 0,
+ &dwThreadId);
+ if (IS_INVALID_HANDLE(hThread))
+ return FALSE;
+
+ /* Hack to change the Icon of HTML Dialog */
+ for (i = 0; i < 1000; i++) {
+ if ((hWnd = FindWindowEx(hParent, NULL, NULL, szTitle))) {
+ w = GuiRegisterWindow(hWnd);
+ SetClassLong(hWnd, GCL_HICONSM, (LONG)gui_h16Icon);
+ break;
+ }
+ if (pD.bDone)
+ break;
+ Sleep(1);
+ }
+ do {
+ rc = 0;
+ ws = ACR_WaitForObjectOrSignal(hThread, dwTimeout);
+ switch (ws) {
+ case WAIT_IO_COMPLETION:
+ case WAIT_ABANDONED_0:
+ case WAIT_ABANDONED_1:
+ case WAIT_OBJECT_0:
+ /* Signal event is set.
+ * Get it's satus.
+ */
+ rc = ACR_DeliverSignals();
+ break;
+ case WAIT_OBJECT_1:
+ /* Dialog ended */
+ rc = 0;
+ break;
+ case WAIT_FAILED:
+ /* We got the error while waiting
+ */
+ rc = ACR_GET_OS_ERROR();
+ break;
+ case WAIT_TIMEOUT:
+ rc = ACR_TIMEUP;
+ break;
+ default:
+ rc = ACR_EINVAL;
+ break;
+ }
+ } while (rc == ACR_EINTR);
+
+ if (rc && hWnd) {
+ SendMessage(hWnd, WM_CLOSE, 0, 0);
+ WaitForSingleObject(hThread, INFINITE);
+ }
+ if (GetExitCodeThread(hThread, &rc) && rc == 0) {
+ rv = TRUE;
+ }
+ else
+ SetLastError(rc);
+ CloseHandle(hThread);
+ GuiUnregisterWindow(w);
+
+ return rv;
+}
+
+ACR_DECLARE(LPSTR)
+DHTMLDialogResult(LPVOID hHtmlDlg)
+{
+
+ LPMC_HTML_DIALOG hDlg = (LPMC_HTML_DIALOG)hHtmlDlg;
+ if (IS_INVALID_HANDLE(hHtmlDlg))
+ return NULL;
+
+ return hDlg->szReturnVal;
+}
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/dso.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/dso.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/dso.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/dso.c Mon Dec 14 05:16:26 2009
@@ -14,9 +14,9 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
#include "acr_error.h"
#include "acr_memory.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/env.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/env.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/env.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/env.c Mon Dec 14 05:16:26 2009
@@ -14,9 +14,9 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
#include "acr_error.h"
#include "acr_memory.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/fasync.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/fasync.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/fasync.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/fasync.c Mon Dec 14 05:16:26 2009
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_arch.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/file.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/file.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/file.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/file.c Mon Dec 14 05:16:26 2009
@@ -14,9 +14,9 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
#include "acr_error.h"
#include "acr_memory.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysio.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysio.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysio.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysio.c Mon Dec 14 05:16:26 2009
@@ -14,8 +14,10 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
+#include "acr_arch.h"
#include "acr_error.h"
#include "acr_string.h"
#include "acr_memory.h"
@@ -23,9 +25,6 @@
#include "acr_pointer.h"
#include "acr_file.h"
#include "acr_fileio.h"
-
-#define ACR_WANT_LATE_DLL
-#include "acr_arch.h"
#include "acr_port.h"
static int file_cleanup(void *file, int type, unsigned int flags)
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysrw.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysrw.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysrw.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/fsysrw.c Mon Dec 14 05:16:26 2009
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_error.h"
@@ -23,8 +24,6 @@
#include "acr_pointer.h"
#include "acr_file.h"
#include "acr_fileio.h"
-
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
#include "acr_port.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/gui.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/gui.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/gui.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/gui.c Mon Dec 14 05:16:26 2009
@@ -24,6 +24,7 @@
#include "acr_string.h"
#include "acr_tlsd.h"
#include "acr_vm.h"
+#include "acr_gui.h"
#include <commdlg.h>
#include <commctrl.h>
@@ -39,7 +40,6 @@
/* GUI Windows functions
*/
#define IDI_MAINICON 101
-#define MGUI_WINDOWS 32
HICON gui_h16Icon = NULL;
HICON gui_h32Icon = NULL;
@@ -51,28 +51,35 @@
static UINT gui_ucNumLines = 3;
static CHAR gui_szWndClass[MAX_PATH];
-
+static CRITICAL_SECTION gui_cLock;
static HWND gui_Windows[MGUI_WINDOWS];
-int GuiRegisterWindow(HWND hWnd)
+ACR_DECLARE(int) GuiRegisterWindow(HWND hWnd)
{
int i;
+ EnterCriticalSection(&gui_cLock);
for (i = 0; i < MGUI_WINDOWS; i++) {
if (!gui_Windows[i]) {
gui_Windows[i] = hWnd;
+ LeaveCriticalSection(&gui_cLock);
return i;
}
}
+ LeaveCriticalSection(&gui_cLock);
+
return -1;
}
-void GuiUnregisterWindow(int nIndex)
+ACR_DECLARE(void) GuiUnregisterWindow(int nIndex)
{
+ EnterCriticalSection(&gui_cLock);
if (nIndex >= 0 && nIndex < MGUI_WINDOWS)
gui_Windows[nIndex] = NULL;
+ LeaveCriticalSection(&gui_cLock);
+
}
-BOOL GuiInitialize()
+ACR_DECLARE(BOOL) GuiInitialize()
{
int i;
INITCOMMONCONTROLSEX stCmn;
@@ -96,18 +103,23 @@
&gui_ucNumLines, 0);
for (i = 0; i < MGUI_WINDOWS; i++)
gui_Windows[i] = NULL;
+ InitializeCriticalSection(&gui_cLock);
+
return TRUE;
}
-BOOL GuiTerminate()
+
+ACR_DECLARE(BOOL) GuiTerminate()
{
int i;
+ EnterCriticalSection(&gui_cLock);
for (i = 0; i < MGUI_WINDOWS; i++) {
if (gui_Windows[i]) {
SendMessage(gui_Windows[i], WM_CLOSE, 0, 0);
gui_Windows[i] = NULL;
}
}
+ DeleteCriticalSection(&gui_cLock);
return TRUE;
}
@@ -116,7 +128,8 @@
* pointer to it. Notice that the buffer is common memory so
* the string must be used before this call is made a second time.
*/
-LPSTR GuiLoadResource(
+ACR_DECLARE(LPSTR)
+GuiLoadResource(
UINT wID,
UINT nBuf)
{
@@ -129,7 +142,7 @@
return "";
}
-void GuiCenterWindow(HWND hWnd)
+ACR_DECLARE(void) GuiCenterWindow(HWND hWnd)
{
RECT rc, rw;
int cw, ch;
@@ -157,8 +170,9 @@
SWP_NOSIZE | SWP_SHOWWINDOW);
}
-BOOL GuiBrowseForFolderW(HWND hWnd, LPCWSTR szTitle,
- LPWSTR szPath, int iFlags)
+ACR_DECLARE(BOOL)
+GuiBrowseForFolderW(HWND hWnd, LPCWSTR szTitle,
+ LPWSTR szPath, int iFlags)
{
BOOL rv = FALSE;
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/main.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/main.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/main.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/main.c Mon Dec 14 05:16:26 2009
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_arch.h"
@@ -22,8 +23,6 @@
#include "acr_signals.h"
#include "acr_tlsd.h"
#include "acr_vm.h"
-
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
/**
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c Mon Dec 14 05:16:26 2009
@@ -14,15 +14,13 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_arch.h"
#include "acr_error.h"
#include "acr_string.h"
-#define ACR_WANT_LATE_DLL
-#include "acr_arch.h"
-
static const char unknown[] = "unknown";
ACR_JNI_EXPORT_DECLARE(jint, Os, type)(ACR_JNISTDARGS)
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/path.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/path.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/path.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/path.c Mon Dec 14 05:16:26 2009
@@ -14,9 +14,9 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
#include "acr_clazz.h"
#include "acr_error.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/posix.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/posix.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/posix.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/posix.c Mon Dec 14 05:16:26 2009
@@ -14,13 +14,15 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_arch.h"
#include "acr_error.h"
#include "acr_memory.h"
#include "acr_string.h"
-
+#include "acr_port.h"
+#include "acr_env.h"
/* Something that is missing from CRT
*/
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/signals.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/signals.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/signals.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/signals.c Mon Dec 14 05:16:26 2009
@@ -23,9 +23,9 @@
*
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
#include "acr_port.h"
#include "acr_clazz.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/syslog.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/syslog.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/syslog.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/syslog.c Mon Dec 14 05:16:26 2009
@@ -14,15 +14,13 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_arch.h"
#include "acr_error.h"
#include "acr_string.h"
-#define ACR_WANT_LATE_DLL
-#include "acr_arch.h"
-
#define LOG_MSG_EMERG 0xC0000001L
#define LOG_MSG_ERROR 0xC0000002L
#define LOG_MSG_NOTICE 0x80000003L
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/temps.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/temps.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/temps.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/temps.c Mon Dec 14 05:16:26 2009
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_error.h"
@@ -22,8 +23,6 @@
#include "acr_descriptor.h"
#include "acr_env.h"
#include "acr_file.h"
-
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
#include "acr_port.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/tfs.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/tfs.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/tfs.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/tfs.c Mon Dec 14 05:16:26 2009
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_arch.h"
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/wutil.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/wutil.c?rev=890181&r1=890180&r2=890181&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/wutil.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/wutil.c Mon Dec 14 05:16:26 2009
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#define ACR_WANT_LATE_DLL
#include "acr.h"
#include "acr_private.h"
#include "acr_clazz.h"
@@ -22,8 +23,6 @@
#include "acr_string.h"
#include "acr_descriptor.h"
#include "acr_crypto.h"
-
-#define ACR_WANT_LATE_DLL
#include "acr_arch.h"
#include <direct.h>