Use test_environment().
[nssm.git] / gui.cpp
diff --git a/gui.cpp b/gui.cpp
index 1c77bfc..67458af 100644 (file)
--- a/gui.cpp
+++ b/gui.cpp
@@ -185,29 +185,12 @@ int install(HWND window) {
       envlen = newlen;\r
 \r
       /* Test the environment is valid. */\r
-      TCHAR path[MAX_PATH];\r
-      GetModuleFileName(0, path, _countof(path));\r
-      STARTUPINFO si;\r
-      ZeroMemory(&si, sizeof(si));\r
-      si.cb = sizeof(si);\r
-      PROCESS_INFORMATION pi;\r
-      ZeroMemory(&pi, sizeof(pi));\r
-      unsigned long flags = CREATE_SUSPENDED;\r
-#ifdef UNICODE\r
-      flags |= CREATE_UNICODE_ENVIRONMENT;\r
-#endif\r
-\r
-      if (! CreateProcess(0, path, 0, 0, 0, flags, env, 0, &si, &pi)) {\r
-        unsigned long error = GetLastError();\r
-        if (error == ERROR_INVALID_PARAMETER) {\r
-          popup_message(MB_OK | MB_ICONEXCLAMATION, NSSM_GUI_INVALID_ENVIRONMENT);\r
-          HeapFree(GetProcessHeap(), 0, env);\r
-          envlen = 0;\r
-        }\r
+      if (test_environment(env)) {\r
+        popup_message(MB_OK | MB_ICONEXCLAMATION, NSSM_GUI_INVALID_ENVIRONMENT);\r
+        HeapFree(GetProcessHeap(), 0, env);\r
         cleanup_nssm_service(service);\r
         return 5;\r
       }\r
-      TerminateProcess(pi.hProcess, 0);\r
 \r
       if (SendDlgItemMessage(tablist[NSSM_TAB_ENVIRONMENT], IDC_ENVIRONMENT_REPLACE, BM_GETCHECK, 0, 0) & BST_CHECKED) {\r
         service->env = env;\r