Browse Source

WIP: Linux port
- MonoDevelop integration functional

Marko Pintera 8 years ago
parent
commit
b893a905c6

+ 12 - 5
Source/BansheeEditor/CodeEditor/BsMDCodeEditor.cpp

@@ -53,13 +53,20 @@ namespace bs
 		ShellExecuteW(0, L"open", pathStr.c_str(), args.c_str(), NULL, SW_HIDE);
 #elif BS_PLATFORM == BS_PLATFORM_LINUX
 		String narrowArgs = UTF8::fromWide(args);
-		const char* commandPattern = "flatpak run com.xamarin.MonoDevelop %s";
+		pid_t pid = fork();
 
-		char* commandStr = (char*)bs_stack_alloc((UINT32)narrowArgs.size() + (UINT32)strlen(commandPattern) + 1);
-		sprintf(commandStr, commandPattern, narrowArgs.c_str());
+		if(pid == 0)
+		{
+			const char* commandPattern = "flatpak run com.xamarin.MonoDevelop %s";
+
+			char* commandStr = (char*) malloc((UINT32) narrowArgs.size() + (UINT32) strlen(commandPattern) + 1);
+			sprintf(commandStr, commandPattern, narrowArgs.c_str());
 
-		system(commandStr);
-		bs_stack_free(commandStr);
+			system(commandStr);
+			free(commandStr);
+
+			exit(1);
+		}
 #endif
 	}
 

+ 1 - 1
Source/MBansheeEditor/Windows/Library/LibraryUtility.cs

@@ -99,7 +99,7 @@ namespace BansheeEditor
         /// <param name="folder">Folder relative to project library to create the C# script in.</param>
         public static void CreateEmptyCSScript(string folder)
         {
-            string path = Path.Combine(folder, "New Script.cs");
+            string path = Path.Combine(folder, "NewScript.cs");
             path = Path.Combine(ProjectLibrary.ResourceFolder, path);
             path = GetUniquePath(path);