aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xwin/winprocarg.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xwin/winprocarg.c')
-rw-r--r--xorg-server/hw/xwin/winprocarg.c54
1 files changed, 29 insertions, 25 deletions
diff --git a/xorg-server/hw/xwin/winprocarg.c b/xorg-server/hw/xwin/winprocarg.c
index f20598db9..2c4999884 100644
--- a/xorg-server/hw/xwin/winprocarg.c
+++ b/xorg-server/hw/xwin/winprocarg.c
@@ -1,6 +1,7 @@
/*
Copyright 1993, 1998 The Open Group
+Copyright (C) Colin Harrison 2005-2008
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
@@ -38,7 +39,8 @@ from The Open Group.
#include "winconfig.h"
#include "winprefs.h"
#include "winmsg.h"
-
+#define COMPILE_MULTIMON_STUBS
+#include <multimon.h>
/*
* References to external symbols
*/
@@ -57,6 +59,7 @@ extern char * g_pszLogFile;
extern Bool g_fLogFileChanged;
#endif
extern Bool g_fXdmcpEnabled;
+extern Bool g_fAuthEnabled;
extern char * g_pszCommandLine;
extern Bool g_fKeyboardHookLL;
extern Bool g_fNoHelpMessageBox;
@@ -75,30 +78,10 @@ struct GetMonitorInfoData {
int monitorWidth;
};
-typedef wBOOL (*ENUMDISPLAYMONITORSPROC)(HDC,LPCRECT,MONITORENUMPROC,LPARAM);
-ENUMDISPLAYMONITORSPROC _EnumDisplayMonitors;
-
wBOOL CALLBACK getMonitorInfo(HMONITOR hMonitor, HDC hdc, LPRECT rect, LPARAM _data);
static Bool QueryMonitor(int index, struct GetMonitorInfoData *data)
{
- /* Load EnumDisplayMonitors from DLL */
- HMODULE user32;
- FARPROC func;
- user32 = LoadLibrary("user32.dll");
- if (user32 == NULL)
- {
- winW32Error(2, "Could not open user32.dll");
- return FALSE;
- }
- func = GetProcAddress(user32, "EnumDisplayMonitors");
- if (func == NULL)
- {
- winW32Error(2, "Could not resolve EnumDisplayMonitors: ");
- return FALSE;
- }
- _EnumDisplayMonitors = (ENUMDISPLAYMONITORSPROC)func;
-
/* prepare data */
if (data == NULL)
return FALSE;
@@ -106,10 +89,8 @@ static Bool QueryMonitor(int index, struct GetMonitorInfoData *data)
data->requestedMonitor = index;
/* query information */
- _EnumDisplayMonitors(NULL, NULL, getMonitorInfo, (LPARAM) data);
+ xEnumDisplayMonitors(NULL, NULL, getMonitorInfo, (LPARAM) data);
- /* cleanup */
- FreeLibrary(user32);
return TRUE;
}
@@ -1289,6 +1270,29 @@ ddxProcessArgument (int argc, char *argv[], int i)
}
/*
+ * Look for the '-auth' argument
+ */
+ if (IS_OPTION ("-auth"))
+ {
+#ifdef __MINGW32__
+ HANDLE hFile;
+ char * pszFile;
+ CHECK_ARGS (1);
+ pszFile = argv[++i];
+ hFile = CreateFile(pszFile,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
+ if (hFile == INVALID_HANDLE_VALUE)
+ winMessageBoxF ("This authorization file for the -auth option could not be opened...\n"
+ "\"%s\"\n"
+ "You should use an \"Xauthority\" file in your HOME directory.\n"
+ "\nIgnoring and continuing.\n",
+ MB_ICONINFORMATION,
+ pszFile);
+#endif
+ g_fAuthEnabled = TRUE;
+ return 0; /* Let DIX parse this again */
+ }
+
+ /*
* Look for the '-indirect' or '-broadcast' arguments
*/
if (IS_OPTION ("-indirect")
@@ -1512,7 +1516,7 @@ winLogVersionInfo (void)
return;
s_fBeenHere = TRUE;
- ErrorF ("Welcome to the XWin X Server\n");
+ ErrorF ("Welcome to the VcXsrv X Server\n");
ErrorF ("Vendor: %s\n", VENDOR_STRING);
ErrorF ("Release: %d.%d.%d.%d (%d)\n\n", XORG_VERSION_MAJOR, XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP, XORG_VERSION_CURRENT);
ErrorF ("Contact: %s\n\n", VENDOR_CONTACT);