changeset 738:52d5ed00f892

Use NSWorkplace to launch GUI applications instead of fork() and exec().
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 15 Mar 2011 22:32:45 +0000
parents 680c7f365d0d
children a0aec9a56914
files mac/dw.m
diffstat 1 files changed, 16 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mac/dw.m	Tue Mar 15 20:06:00 2011 +0000
+++ b/mac/dw.m	Tue Mar 15 22:32:45 2011 +0000
@@ -7639,6 +7639,20 @@
 {
 	int ret = -1;
 	
+    if(type == DW_EXEC_GUI)
+    {
+        if(params && params[0] && params[1])
+        {
+            [[NSWorkspace sharedWorkspace] openFile:[NSString stringWithUTF8String:params[1]]
+                                    withApplication:[NSString stringWithUTF8String:program]];
+        }
+        else
+        {
+            [[NSWorkspace sharedWorkspace] launchApplication:[NSString stringWithUTF8String:program]];
+        }
+        return 0;
+    }
+    
 	if((ret = fork()) == 0)
 	{
 		int i;
@@ -7646,11 +7660,8 @@
 		for (i = 3; i < 256; i++)
 			close(i);
 		setsid();
-		if(type == DW_EXEC_GUI)
-		{
-			execvp(program, params);
-		}
-		else if(type == DW_EXEC_CON)
+        
+		if(type == DW_EXEC_CON)
 		{
 			char **tmpargs;