diff dmd/man.c @ 876:27a379f288bf

Merged DMD 1.039
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Wed, 07 Jan 2009 19:34:48 +0100
parents 330f999ade44
children c57e71c5586f
line wrap: on
line diff
--- a/dmd/man.c	Tue Jan 06 16:33:51 2009 +0100
+++ b/dmd/man.c	Wed Jan 07 19:34:48 2009 +0100
@@ -37,7 +37,7 @@
     pid_t childpid;
     const char *args[3];
 
-    const char *browser = getenv("BROWSER");
+    char *browser = getenv("BROWSER");
     if (browser)
 	browser = strdup(browser);
     else
@@ -58,3 +58,43 @@
 
 #endif
 
+#if __APPLE__
+
+#include	<sys/types.h>
+#include	<sys/wait.h>
+#include	<unistd.h>
+
+void browse(const char *url)
+{
+    pid_t childpid;
+    const char *args[5];
+
+    char *browser = getenv("BROWSER");
+    if (browser)
+    {	browser = strdup(browser);
+	args[0] = browser;
+	args[1] = url;
+	args[2] = NULL;
+    }
+    else
+    {
+	//browser = "/Applications/Safari.app/Contents/MacOS/Safari";
+	args[0] = "open";
+	args[1] = "-a";
+	args[2] = "/Applications/Safari.app";
+	args[3] = url;
+	args[4] = NULL;
+    }
+
+    childpid = fork();
+    if (childpid == 0)
+    {
+	execvp(args[0], (char**)args);
+	perror(args[0]);		// failed to execute
+	return;
+    }
+}
+
+#endif
+
+