]> gitweb.factorcode.org Git - factor.git/blobdiff - vm/main-windows-nt.cpp
Use ParseCommandLineArgvw() on Windows again, instead of hand-rolled parser. Update...
[factor.git] / vm / main-windows-nt.cpp
old mode 100644 (file)
new mode 100755 (executable)
index eaaad0f..64e2cce
@@ -1,24 +1,29 @@
 #include "master.hpp"
 
+VM_C_API int wmain(int argc, wchar_t **argv)
+{
+       factor::init_globals();
+#ifdef FACTOR_MULTITHREADED
+       factor::THREADHANDLE thread = factor::start_standalone_factor_in_new_thread(argv,argc);
+       WaitForSingleObject(thread, INFINITE);
+#else
+       factor::start_standalone_factor(argc,argv);
+#endif
+       return 0;
+}
+
 int WINAPI WinMain(
        HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nCmdShow)
 {
-       LPWSTR *szArglist;
-       int nArgs;
-
-       szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
-       if(NULL == szArglist)
-       {
-               puts("CommandLineToArgvW failed");
-               return 1;
-       }
-
-       factor::start_standalone_factor(nArgs,szArglist);
+       int argc;
+       wchar_t **argv;
 
-       LocalFree(szArglist);
+       argv = CommandLineToArgvW(GetCommandLine(),&argc);
+       wmain(argc,argv);
 
+       // memory leak from malloc, wcsdup
        return 0;
 }