diff options
Diffstat (limited to 'xorg-server/dix/main.c')
-rw-r--r-- | xorg-server/dix/main.c | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/xorg-server/dix/main.c b/xorg-server/dix/main.c index 16575ceba..7a5a34c33 100644 --- a/xorg-server/dix/main.c +++ b/xorg-server/dix/main.c @@ -116,6 +116,10 @@ Equipment Corporation. #include "dpmsproc.h" #endif +#ifdef _DEBUG +#include <crtdbg.h> +#endif + extern void Dispatch(void); #ifdef XQUARTZ @@ -134,9 +138,49 @@ int main(int argc, char *argv[], char *envp[]) { int i; HWEventQueueType alwaysCheckForInput[2]; - + #ifdef _DEBUG + //int TmpFlag=_CrtSetDbgFlag( _CRTDBG_REPORT_FLAG); + + //TmpFlag|=_CRTDBG_ALLOC_MEM_DF; + //TmpFlag|=_CRTDBG_DELAY_FREE_MEM_DF; + //TmpFlag|=_CRTDBG_CHECK_ALWAYS_DF; + //TmpFlag|=_CRTDBG_CHECK_CRT_DF; + //TmpFlag|=_CRTDBG_LEAK_CHECK_DF; + + //_CrtSetDbgFlag(TmpFlag); + #endif + + ptw32_processInitialize(); display = "0"; + #ifdef WIN32 + + if (InitWSA()<0) + { + printf("Error initialising WSA\n"); + return -1; + } + /* In Win32 we have different threads call Xlib functions (depending + on the commandline options given). + XInitThreads has to be called before + any xlib function is called (aoccording to the man page) */ + XInitThreads(); + /* change the current directory to the directory where the vcxsrv.exe executable is installed. + This is needed because the font directories are relative to the current directory. + */ + { + char ModuleFilename[MAX_PATH]; + char *pSlash; + GetModuleFileName(NULL,ModuleFilename,sizeof(ModuleFilename)); + pSlash=strrchr(ModuleFilename,'\\'); + if (pSlash) + { + *pSlash='\0'; + chdir(ModuleFilename); + } + } + #endif + InitRegions(); CheckUserParameters(argc, argv, envp); @@ -284,6 +328,11 @@ int main(int argc, char *argv[], char *envp[]) NotifyParentProcess(); + #ifdef _MSC_VER + // initialise here because doing it in InitInput failes because keyboard device is not started yet then + winInitializeModeKeyStates (); + #endif + Dispatch(); #ifdef XQUARTZ |