diff options
author | Lluis Sanchez <lluis@novell.com> | 2010-04-26 20:56:24 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2010-04-26 20:56:24 +0400 |
commit | 940829885758450b9943fa030b9015b6a881545c (patch) | |
tree | 0902f6bf924a017b46d7212a82d2aac94b30c51a /main/src/addins/GnomePlatform | |
parent | cc279afd85a068252939c84b18afe1814f58cd70 (diff) |
* src/addins/GnomePlatform/GnomePlatform.cs:
* src/addins/WindowsPlatform/WindowsPlatform.cs:
* src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/PlatformService.cs:
* src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs:
* src/addins/MonoDevelop.Debugger.Soft/MonoDevelop.Debugger.Soft/SoftDebuggerEngine.cs:
External console processes are now wrapped by a
IProcessAsyncOperation interface, instead of a Process instance. In
this way it is possible to create external consoles which are not
directly bound to a process.
* src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/Mono.Debugger.Soft.dll:
* src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/Mono.Debugger.Soft.dll.mdb:
Updated.
svn path=/trunk/monodevelop/; revision=156114
Diffstat (limited to 'main/src/addins/GnomePlatform')
-rw-r--r-- | main/src/addins/GnomePlatform/ChangeLog | 7 | ||||
-rw-r--r-- | main/src/addins/GnomePlatform/GnomePlatform.cs | 22 |
2 files changed, 18 insertions, 11 deletions
diff --git a/main/src/addins/GnomePlatform/ChangeLog b/main/src/addins/GnomePlatform/ChangeLog index d75e043e63..6e0dfbbae2 100644 --- a/main/src/addins/GnomePlatform/ChangeLog +++ b/main/src/addins/GnomePlatform/ChangeLog @@ -1,3 +1,10 @@ +2010-04-26 Lluis Sanchez Gual <lluis@novell.com> + + * GnomePlatform.cs: External console processes are now wrapped + by a IProcessAsyncOperation interface, instead of a Process + instance. In this way it is possible to create external + consoles which are not directly bound to a process. + 2010-03-29 Lluis Sanchez Gual <lluis@novell.com> * GnomePlatform.cs: Moved external console creation to the diff --git a/main/src/addins/GnomePlatform/GnomePlatform.cs b/main/src/addins/GnomePlatform/GnomePlatform.cs index e8a6210a57..38f40ba8fc 100644 --- a/main/src/addins/GnomePlatform/GnomePlatform.cs +++ b/main/src/addins/GnomePlatform/GnomePlatform.cs @@ -33,6 +33,7 @@ using System.Collections.Generic; using System.Runtime.InteropServices; using System.Diagnostics; using System.IO; +using MonoDevelop.Core.Execution; namespace MonoDevelop.Platform { @@ -182,22 +183,21 @@ namespace MonoDevelop.Platform bool terminal_probed; TerminalRunnerHandler runner; - public override ProcessStartInfo CreateConsoleProcessInfo (string command, string commandArguments, - string workingDirectory, IDictionary<string, string> environmentVariables, string title, bool pauseWhenFinished) + public override IProcessAsyncOperation StartConsoleProcess (ProcessStartInfo psi, string title, bool pauseWhenFinished) { ProbeTerminal (); - string exec = runner (command, commandArguments, workingDirectory, title, pauseWhenFinished); + string exec = runner (psi.FileName, psi.Arguments, psi.WorkingDirectory, title, pauseWhenFinished); - ProcessStartInfo psi = new ProcessStartInfo (terminal_command, exec); - psi.WorkingDirectory = workingDirectory; + psi.FileName = terminal_command; + psi.Arguments = exec; + psi.CreateNoWindow = true; psi.UseShellExecute = false; - - if (environmentVariables != null) - foreach (KeyValuePair<string, string> kvp in environmentVariables) - psi.EnvironmentVariables [kvp.Key] = kvp.Value; - - return psi; + + ProcessWrapper proc = new ProcessWrapper (); + proc.StartInfo = psi; + proc.Start (); + return proc; } #region Terminal runner implementations |